Skip to content

docs: Domain Configuration Apps — config and secrets live in the app that owns their domain - #5823

Merged
meshweaver-cloud[bot] merged 2 commits into
mainfrom
docs/domain-config-apps
Sep 27, 2026
Merged

meshweaver-cloud[bot] merged 2 commits into
mainfrom
docs/domain-config-apps

Conversation

@rbuergi

@rbuergi rbuergi commented Sep 27, 2026

Copy link
Copy Markdown
Contributor

What

The design for policy domain-config-apps (the maintainer asked that configuration and secrets move out of ad-hoc GUIs and into domain apps: an AI app for all AI providers and keys, a DB app for databases, and so on).

New page: Doc/Architecture/DomainConfigurationApps

Also in this PR:

Docs only. No code, no catalog keys.

Verification

  • dotnet build test/MeshWeaver.Documentation.Test -c Release -warnaserror: 0 warnings, 0 errors.
  • DocumentationLinkIntegrityTest and ArchitectureTopicMapTest: 5 of 5 passed.

Mirror-sync: none — no catalog key added or changed.
Pairs-with: none — docs only, no public surface removed.

🤖 Generated with Claude Code

…that owns their domain

The design for policy domain-config-apps: AI, Databases, Sign-in, Email, Payments and
Integrations each get a fleet app on the control instance (/Hosting/{X}/Deployment/{id}:
the record's block bound to the record, the domain's vault objects write-only, Apply files a
governed Reconcile), and instance-scope settings stay in each instance's Admin app under the
same domain names. The Deployment record page links to the apps and loses its secret dialog
and panels as each domain lands. Includes the inventory of every entry point today and where
it moves, the gates, how a change reaches the portal, and the build order (AI first).

Also: register the policy, list the page in the topic map, and point SecretsWriteOnlyEntry's
"Where each GUI lives" at the domain apps (its "owed, not on main" sentence was stale since
#5791), with the platform master key named as belonging to no app.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings September 27, 2026 17:57

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Resolve the documented cross-page contradictions and incomplete ownership guidance before approval.

Review effort: Lite
Findings: 1 Medium severity

Open (1)
What changed in this PR

Documents domain-owned configuration and secret management across fleet and instance scopes.

Changes:

  • Adds the Domain Configuration Apps architecture page.
  • Registers the policy and topic-map entry.
  • Updates secret ownership and GUI guidance.

Several documentation consistency issues remain across ownership, scope, inventory, and synchronization guidance.

File Summary
src/​MeshWeaver.Documentation/​Data/​Architecture/​SecretsWriteOnlyEntry.md Updates secret GUI locations and ownership.
src/​MeshWeaver.Documentation/​Data/​Architecture/​PolicyNotProse.md Registers the domain configuration policy.
src/​MeshWeaver.Documentation/​Data/​Architecture/​DomainConfigurationApps.md Adds the domain-app design and migration inventory.
src/​MeshWeaver.Documentation/​Data/​Architecture.md Adds the new architecture topic.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +96 to +100
The key that signs a deployment's self-update hand-over is generated where it is used: on the target
instance, in its Admin app's **Control lane** tab (InstanceSecrets `Hosting:ControlInbox:Secret`,
live, no restart). The control instance only has to VERIFY signatures, so it holds the same value
under the per-sender slot `Hosting:PlatformWebhookSecret:{id}`. The Integrations app's
**Announcement key** section is a `WriteOnlySecretSection` over that slot: an admin pastes the key

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed: two shipped procedures must not disagree. Fixed in f47f8ee. The section now opens with a Target design, not yet the procedure note. It says that until MeshWeaver.Plugins#2435 lands, operators follow Self-Update Announcement Key, where the control instance issues the key. It also says the change set that moves the flow will rewrite that page and the Instance Secrets summary. I did not rewrite those pages here, because the flow they describe is still the one that is implemented.

@github-actions

github-actions Bot commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 3)

0 tests   - 461   0 ✅  - 461   0s ⏱️ -58s
0 suites  -   3   0 💤 ±  0 
0 files    -   3   0 ❌ ±  0 

Results for commit f47f8ee. ± Comparison against base commit f78fcf6.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 5)

0 tests   0 ✅  0s ⏱️
0 suites  0 💤
0 files    0 ❌

Results for commit f47f8ee.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 4)

0 files   -     3  0 suites   - 3   0s ⏱️ - 6m 24s
0 tests  - 2 232  0 ✅  - 2 232  0 💤 ±0  0 ❌ ±0 
0 runs   - 2 233  0 ✅  - 2 233  0 💤 ±0  0 ❌ ±0 

Results for commit f47f8ee. ± Comparison against base commit f78fcf6.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 1)

0 tests   - 1 696   0 ✅  - 1 696   0s ⏱️ - 4m 49s
0 suites  -     2   0 💤 ±    0 
0 files    -     2   0 ❌ ±    0 

Results for commit f47f8ee. ± Comparison against base commit f78fcf6.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 2)

649 tests   - 115   649 ✅ + 76   31s ⏱️ - 6m 36s
  1 suites  -   2     0 💤  - 191 
  1 files    -   2     0 ❌ ±  0 

Results for commit f47f8ee. ± Comparison against base commit f78fcf6.

This pull request removes 780 and adds 649 tests. Note that renamed tests count towards both.

   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---, expected: True)
 ---> (Inner Exception #1) MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest+ProviderException (0x80004005): Failed to connect to 10.42.18.4:5432<---
 ---> (Inner Exception #1) System.InvalidOperationException: boom<---
 ---> (Inner Exception #1) System.InvalidOperationException: source B is misconfigured<---
 ---> (Inner Exception #1) System.Net.Sockets.SocketException (0xFFFDFFFF): Name or service not known<---
 ---> MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest+ProviderException (0x80004005): Failed to connect to 10.42.18.4:5432
 ---> System.AggregateException: One or more errors occurred. (Failed to connect to 10.42.18.4:5432)
 ---> System.AggregateException: One or more errors occurred. (Failed to connect to 10.42.18.4:5432) (boom)
…
MeshWeaver.Documentation.Test.AWebhookIssueSnapshotKeepsItsCloseDecisionTest ‑ ADuplicateCloseSurvivesTheWebhook
MeshWeaver.Documentation.Test.AWebhookIssueSnapshotKeepsItsCloseDecisionTest ‑ AnOpenIssueCarriesNoCloseDecision
MeshWeaver.Documentation.Test.AWebhookIssueSnapshotKeepsItsCloseDecisionTest ‑ TheTwoMappersAgree(wireValue: "completed", expected: Completed)
MeshWeaver.Documentation.Test.AWebhookIssueSnapshotKeepsItsCloseDecisionTest ‑ TheTwoMappersAgree(wireValue: "duplicate", expected: Duplicate)
MeshWeaver.Documentation.Test.AWebhookIssueSnapshotKeepsItsCloseDecisionTest ‑ TheTwoMappersAgree(wireValue: "not_planned", expected: NotPlanned)
MeshWeaver.Documentation.Test.AgentsRuleAndSkillAgreementGuard ‑ BothDetectorsSeeTheDefectTheyWereWrittenFor
MeshWeaver.Documentation.Test.AgentsRuleAndSkillAgreementGuard ‑ EveryPairsRuleIsStillStatedInAgentsMd
MeshWeaver.Documentation.Test.AgentsRuleAndSkillAgreementGuard ‑ NoSkillCarriesASupersededRulesWording
MeshWeaver.Documentation.Test.AgentsRuleAndSkillAgreementGuard ‑ NoSkillMintsAFileUnderAWhatsNewPath
MeshWeaver.Documentation.Test.AmbientCultureRatchetGuard ‑ NoSourceFile_ReachesForAnAmbientCulture
…

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 0)

  1 files  ±0    1 suites  ±0   3m 14s ⏱️ +34s
348 tests ±0  348 ✅ ±0  0 💤 ±0  0 ❌ ±0 
352 runs  ±0  352 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit f47f8ee. ± Comparison against base commit f78fcf6.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Test Results

    2 files   -    15      2 suites   - 15   3m 46s ⏱️ - 33m 8s
  997 tests  - 8 785    997 ✅  - 8 592  0 💤  - 193  0 ❌ ±0 
1 001 runs   - 8 790  1 001 ✅  - 8 597  0 💤  - 193  0 ❌ ±0 

Results for commit f47f8ee. ± Comparison against base commit f78fcf6.

This pull request removes 8803 tests.

   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---, expected: True)
   --- End of inner exception stack trace ---, isDenial: True)
 ---> (Inner Exception #1) MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest+ProviderException (0x80004005): Failed to connect to 10.42.18.4:5432<---
 ---> (Inner Exception #1) System.InvalidOperationException: boom<---
 ---> (Inner Exception #1) System.InvalidOperationException: source B is misconfigured<---
 ---> (Inner Exception #1) System.Net.Sockets.SocketException (0xFFFDFFFF): Name or service not known<---
 ---> MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest+ProviderException (0x80004005): Failed to connect to 10.42.18.4:5432
 ---> System.AggregateException: One or more errors occurred. (Failed to connect to 10.42.18.4:5432)
…

♻️ This comment has been updated with latest results.

…target design; the shipped procedure stays SelfUpdateAnnouncementKey until Plugins#2435

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@meshweaver-cloud
meshweaver-cloud Bot merged commit e63156e into main Sep 27, 2026
47 checks passed
@rbuergi
rbuergi deleted the docs/domain-config-apps branch October 10, 2026 13:09
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