You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit b2c0b27
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: architecture/gateway.md
+29Lines changed: 29 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -275,6 +275,13 @@ their profile payloads.
275
275
276
276
The CLI exposes reusable profile definitions through `openshell profile`, with `list` and `describe` reading the same effective catalog used by provider creation. Export, import, update, lint, and delete share that top-level command group. Import and lint accept local files, local directories, or a single HTTP or HTTPS URL; the CLI fetches and parses remote content before submitting it to the gateway. Workspace selection and explicit platform scope apply at the existing profile API boundary; `openshell provider` manages credential-bearing instances.
277
277
278
+
CLI warnings for credentials passed through `--env` derive setup suggestions from
279
+
that catalog. Static credentials retain existing-token setup; gateway-mintable
280
+
credentials recommend runtime creation and explicit refresh configuration when
281
+
the profile supports runtime creation. Other runtime setups use generic provider
282
+
guidance. Shared environment aliases do not identify the authentication method:
283
+
GitHub tokens and GitHub App installations remain separate choices.
284
+
278
285
Each logical gateway request captures the selected sources into one validated,
279
286
immutable effective catalog before deriving provider behavior. Policy layers,
280
287
credential scope, injected environment material, dynamic token grants, and
@@ -790,6 +797,28 @@ credential storage for defense in depth. Multi-replica deployments can use that
790
797
default with a shared database and shared key-encryption key, or opt into an
791
798
external backend such as Vault or Kubernetes Secrets.
792
799
800
+
GitHub App installation refresh signs an app JWT at the gateway and exchanges it
801
+
for an installation token using a profile-owned endpoint and its default REST API
802
+
version, allowing GitHub Enterprise Server endpoints to use their supported version.
803
+
Each provider pins one installation and explicit repository IDs and permissions
804
+
in its refresh material; there is no workload-selected scope or installation-wide
805
+
default. The token's logical profile name resolves to the configured environment
806
+
alias, or the first declared alias before configuration. Refresh configuration
807
+
reserves one alias per logical GitHub App credential under the provider mutation
808
+
lock, including pending and failed grants. Management operations use the same
809
+
resolution; exact-key deletion remains available to clean up legacy conflicts.
810
+
The app key is secret material, and only the installation token enters the
811
+
existing credential distribution path. Refresh honors the issuer expiry, caps
812
+
local use at one hour, and preserves the existing authorization epoch during
813
+
routine rotation. Explicit
814
+
reconfiguration revokes the old workload handles. Network policy remains an
815
+
independent constraint on token use. GitHub mint failures use gateway-owned
816
+
recovery classifications without storing issuer-controlled error prose.
817
+
Transport diagnostics classify typed timeout, TLS, and connection failures
818
+
without exposing request material or raw error chains.
819
+
The Go SDK exposes this strategy as `v1.RefreshStrategyGitHubAppInstallation`
820
+
through its curated `openshell/v1` package for use in `v1.RefreshConfig`.
821
+
793
822
The Vault credential driver requires HTTPS for every non-loopback backend,
794
823
never follows HTTP redirects, and keeps standard certificate hostname
795
824
verification enabled. Operators can add private Vault trust roots with a PEM
0 commit comments