Skip to content

feat(siteops): support extra trusted site directories#11

Merged
digimaun merged 1 commit intoAzure:mainfrom
digimaun:feat/orchestrator-extra-trusted-sites
Apr 20, 2026
Merged

feat(siteops): support extra trusted site directories#11
digimaun merged 1 commit intoAzure:mainfrom
digimaun:feat/orchestrator-extra-trusted-sites

Conversation

@digimaun
Copy link
Copy Markdown
Member

Add extra_trusted_sites_dirs to the orchestrator and expose it via --extra-sites-dir (repeatable) and the SITEOPS_EXTRA_SITES_DIRS env var (platform-separated: ; on Windows, : on Unix). Files in these directories are treated like the workspace's sites/ folder: discoverable by siteops sites and allowed to declare inherits.

Merge order: inherits target -> sites/ -> extra trusted dirs ->
sites.local/. A site still has exactly one inheritance chain; the first trusted directory containing the file establishes the base, and all later files (other trusted dirs or sites.local/) have inherits stripped. The sites.local/ security invariant is preserved.

Collisions with the workspace's own sites/ or sites.local/ are rejected at construction; the sites.local/ case is refused specifically to prevent overlays from being elevated to a trusted source of inheritance.

Enables use cases like CI/E2E sites kept out of production config, cross-repo site libraries, and shared blueprint catalogs.

Add `extra_trusted_sites_dirs` to the orchestrator and expose it via
`--extra-sites-dir` (repeatable) and the `SITEOPS_EXTRA_SITES_DIRS`
env var (platform-separated: `;` on Windows, `:` on Unix). Files in
these directories are treated like the workspace's `sites/` folder:
discoverable by `siteops sites` and allowed to declare `inherits`.

Merge order: inherits target -> sites/ -> extra trusted dirs ->
sites.local/. A site still has exactly one inheritance chain; the
first trusted directory containing the file establishes the base, and
all later files (other trusted dirs or sites.local/) have `inherits`
stripped. The sites.local/ security invariant is preserved.

Collisions with the workspace's own sites/ or sites.local/ are
rejected at construction; the sites.local/ case is refused specifically
to prevent overlays from being elevated to a trusted source of
inheritance.

Enables use cases like CI/E2E sites kept out of production config,
cross-repo site libraries, and shared blueprint catalogs.
@digimaun digimaun merged commit a3a3560 into Azure:main Apr 20, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants