docs: ADR-0025 — service→resource permission grants (#117)#122
Merged
Conversation
0c520c8 to
91343c7
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #117.
Docs-only slice that gates the code slices of #117 — designs the general capability of granting a service a permission on a resource, materialized as a credential/secret delivered to that service, with its two first consumers landing together.
The model
grants:list on the service manifest. Distinct from theref:Source DSL (which only reads an existing output) and from meshpki:membership (intrinsic identity).ro/rwpermission, mapped per-resource: DB read-only/read-write user; PKIverify= CA cert vsissue= root signing key.outputs:block composes env vars over{FIELD}placeholders. Value fields ride the ADR-0010 env-secret path; file fields ride the existingfiles:/projectFilesprojection —inforge-bootstrapis unchanged.…/pki/<name>/manifest.yaml, root-only), scope/region like any resource, no cross-region. Distinct from the env-root meshpki.enc.yaml; separation is topology-enforced (grants target only root-only PKIs;pki:membership names only two-tier meshes). Its key is a CLI-generated age-encrypted sidecar, encrypted to the CI recipient ("warm").connectionUrl; DB creds flow only through grants.ref:stays for non-credential outputs.Files
docs/adr/0025-service-resource-permission-grants.md— the decision record.internal/CONTEXT.md— glossary terms: Grant, Grantable, PKI resource, Field, Output, Database credential access.Gates run clean (build /
go test -race/ lint) despite being docs-only.