@r8s/recipes 0.3.2 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -138,6 +138,25 @@ export interface ClientConfig {
138
138
  serviceAccountsEnabled?: boolean;
139
139
  /** Direct access grants enabled */
140
140
  directAccessGrantsEnabled?: boolean;
141
+ /**
142
+ * Put Keycloak group memberships in the JWT `groups` claim.
143
+ *
144
+ * Renders a dedicated client scope (`<clientId>-groups`) with an
145
+ * `oidc-group-membership-mapper` and wires it as a default client scope —
146
+ * the path Netbird (and other group-aware apps) use to sync IdP groups.
147
+ */
148
+ groupsClaim?: boolean;
149
+ /**
150
+ * Plain named client scopes this client may request (e.g. `['api']` —
151
+ * the scope netbird's PKCE flow adds on top of `openid profile email
152
+ * offline_access`). Modern Keycloak rejects authorization requests
153
+ * naming unregistered scopes with `invalid_scope`, so a requested scope
154
+ * must exist: each name renders a realm-level client scope (no mappers —
155
+ * pure pass-through, tokens unchanged) and is assigned to this client as
156
+ * an optional client scope. Names already rendered by `groupsClaim` are
157
+ * not shadowed.
158
+ */
159
+ clientScopes?: string[];
141
160
  /** Client secret (from secrets backend) */
142
161
  secret?: string;
143
162
  }
@@ -150,6 +169,7 @@ export interface ClientProps extends ClientConfig {
150
169
  * <Client id="api" type="bearer-only" />
151
170
  * <Client id="web" type="public" redirectUris={['https://app.example.com/*']} />
152
171
  * <Client id="backend" type="confidential" secret="${env:BACKEND_SECRET}" />
172
+ * <Client id="netbird" type="confidential" redirectUris={['https://netbird.example.com/*']} groupsClaim clientScopes={['api']} />
153
173
  */
154
174
  export declare function Client(props: ClientProps): import("@r8s/core").r8sElement;
155
175
  export interface RealmsProps {
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/auth/components.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/auth/components.tsx"],"names":[],"mappings":"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"}
@@ -121,6 +121,7 @@ function Clients(props) {
121
121
  * <Client id="api" type="bearer-only" />
122
122
  * <Client id="web" type="public" redirectUris={['https://app.example.com/*']} />
123
123
  * <Client id="backend" type="confidential" secret="${env:BACKEND_SECRET}" />
124
+ * <Client id="netbird" type="confidential" redirectUris={['https://netbird.example.com/*']} groupsClaim clientScopes={['api']} />
124
125
  */
125
126
  function Client(props) {
126
127
  return (0, core_1.jsx)(core_1.Fragment, {});
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sourceRoot":"","sources":["../../src/auth/components.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../../src/auth/components.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAa/C,MAAM,WAAW,SAAS;IACxB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAA;IACZ,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,oCAAoC;IACpC,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,kCA4GpC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAa/C,MAAM,WAAW,SAAS;IACxB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAA;IACZ,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,oCAAoC;IACpC,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,kCAiMpC"}
package/dist/auth.js CHANGED
@@ -132,6 +132,54 @@ function Auth(props) {
132
132
  // Process children (Realms) to create KeycloakRealmImport resources
133
133
  const realms = collectRealms(children);
134
134
  for (const realm of realms) {
135
+ // One `<clientId>-groups` client scope per groupsClaim client — the
136
+ // oidc-group-membership-mapper puts the user's Keycloak group
137
+ // memberships in the JWT `groups` claim (the path Netbird et al. use
138
+ // to sync IdP groups). Config keys are verified against Keycloak's
139
+ // GroupMembershipMapper + OIDCAttributeMapperHelper (dotted keys, no
140
+ // spacing); values are strings — the realm representation's mapper
141
+ // config is Map<String, String> and `useFullPath` string-compares.
142
+ const groupScopes = (realm.clients ?? [])
143
+ .filter((client) => client.groupsClaim)
144
+ .map((client) => ({
145
+ name: `${client.id}-groups`,
146
+ protocol: 'openid-connect',
147
+ attributes: { 'include.in.token.scope': 'true' },
148
+ protocolMappers: [
149
+ {
150
+ name: 'groups',
151
+ protocol: 'openid-connect',
152
+ protocolMapper: 'oidc-group-membership-mapper',
153
+ config: {
154
+ 'full.path': 'false',
155
+ 'id.token.claim': 'true',
156
+ 'access.token.claim': 'true',
157
+ 'claim.name': 'groups',
158
+ },
159
+ },
160
+ ],
161
+ }));
162
+ // Plain named scopes declared via <Client clientScopes={[...]}> —
163
+ // minimal realm-level definitions with NO mappers (pure pass-through:
164
+ // the scope must exist so the authorization request validates — modern
165
+ // Keycloak answers unknown requested scopes with invalid_scope — while
166
+ // tokens stay unchanged). Deduped by name across clients; a name
167
+ // already defined by a groupsClaim scope wins (mapper-carrying).
168
+ const clientScopeDefs = new Map();
169
+ for (const groupScope of groupScopes)
170
+ clientScopeDefs.set(groupScope.name, groupScope);
171
+ for (const client of realm.clients ?? []) {
172
+ for (const scopeName of client.clientScopes ?? []) {
173
+ if (!clientScopeDefs.has(scopeName)) {
174
+ clientScopeDefs.set(scopeName, {
175
+ name: scopeName,
176
+ protocol: 'openid-connect',
177
+ attributes: { 'include.in.token.scope': 'true' },
178
+ });
179
+ }
180
+ }
181
+ }
182
+ const clientScopes = [...clientScopeDefs.values()];
135
183
  resources.push((0, core_1.jsx)('KeycloakRealmImport', {
136
184
  apiVersion: 'k8s.keycloak.org/v2alpha1',
137
185
  kind: 'KeycloakRealmImport',
@@ -150,18 +198,53 @@ function Auth(props) {
150
198
  trustEmail: idp.trustEmail ?? false,
151
199
  config: idp.config,
152
200
  })),
153
- clients: realm.clients?.map((client) => ({
154
- clientId: client.id,
155
- name: client.name ?? client.id,
156
- publicClient: client.type === 'public',
157
- standardFlowEnabled: client.type === 'public',
158
- bearerOnly: client.type === 'bearer-only',
159
- serviceAccountsEnabled: client.type === 'confidential' ? true : undefined,
160
- secret: client.secret,
161
- redirectUris: client.redirectUris,
162
- webOrigins: client.webOrigins,
163
- directAccessGrantsEnabled: client.directAccessGrantsEnabled ?? false,
164
- })),
201
+ clients: realm.clients?.map((client) => {
202
+ // Scope names already covered by the default set (this
203
+ // client's own groupsClaim scope) don't repeat as optional
204
+ const declaredScopes = (client.clientScopes ?? []).filter((name) => !(client.groupsClaim && name === `${client.id}-groups`));
205
+ return {
206
+ clientId: client.id,
207
+ name: client.name ?? client.id,
208
+ publicClient: client.type === 'public',
209
+ // Redirect URIs exist exactly for the authorization-code
210
+ // (standard) flow — a confidential client that declares any is
211
+ // browser-facing (e.g. the netbird PKCE/dashboard flow), so the
212
+ // flow must be on for it to work
213
+ standardFlowEnabled: client.type === 'public' || (client.redirectUris?.length ?? 0) > 0,
214
+ bearerOnly: client.type === 'bearer-only',
215
+ serviceAccountsEnabled: client.type === 'confidential' ? true : undefined,
216
+ secret: client.secret,
217
+ redirectUris: client.redirectUris,
218
+ webOrigins: client.webOrigins,
219
+ directAccessGrantsEnabled: client.directAccessGrantsEnabled ?? false,
220
+ // Scopes this client may request at runtime (optional client
221
+ // scopes — granted when named in the request's scope param)
222
+ ...(declaredScopes.length ? { optionalClientScopes: declaredScopes } : {}),
223
+ ...(client.groupsClaim
224
+ ? {
225
+ // Keycloak replaces the client's default-scope set with
226
+ // this field when present, so the long-stable stock
227
+ // scopes ride along — dropping them would strip
228
+ // profile/email claims from this client's tokens.
229
+ // Deliberately NOT adding 'acr' (KC 24+) / 'basic'
230
+ // (KC 25+): defaultClientScopes referencing an unknown
231
+ // scope fails the realm import on older Keycloaks, while
232
+ // omitting them only skips auth_time/sid/acr claims.
233
+ defaultClientScopes: [
234
+ 'profile',
235
+ 'email',
236
+ 'roles',
237
+ 'web-origins',
238
+ `${client.id}-groups`,
239
+ ],
240
+ }
241
+ : {}),
242
+ };
243
+ }),
244
+ // Realm-level client scopes (rendered only when a groupsClaim
245
+ // or clientScopes declaration exists — imports without either
246
+ // stay byte-identical)
247
+ ...(clientScopes.length > 0 ? { clientScopes } : {}),
165
248
  },
166
249
  },
167
250
  }));
package/dist/auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.tsx"],"names":[],"mappings":"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"}
@@ -83,16 +83,71 @@ export interface DatabaseProps {
83
83
  postInitSQL?: string[];
84
84
  /**
85
85
  * Where database credentials come from. Default `'backend'`: when a
86
- * secrets backend is configured on the Platform, the credentials secret
87
- * is provisioned through it (rotation pod restarts). `'cnpg'` forces
88
- * CNPG-managed bootstrap credentials **even with a backend** the
89
- * operator generates the secret in-cluster (incl. `fqdn-uri`), matching
90
- * apps that reference the CNPG-generated secret directly.
86
+ * provisioning secrets backend is configured on the Platform, the
87
+ * credentials secret (`<name>-db-credentials`) is provisioned through
88
+ * it (rotation pod restarts) and CNPG adopts it via
89
+ * `bootstrap.initdb.secret` see `databaseCredentialsRef` for the
90
+ * exact resolution contract. `'cnpg'` forces CNPG-managed bootstrap
91
+ * credentials **even with a backend** — the operator generates the
92
+ * secret in-cluster (incl. `fqdn-uri`), matching apps that reference
93
+ * the CNPG-generated secret directly.
94
+ *
95
+ * Without a backend (or under passive backends that render no
96
+ * referenceable credentials Secret) the contract is the CNPG-generated
97
+ * `<name>-app` secret: `bootstrap.initdb.secret` is omitted and the
98
+ * operator generates the credentials in-cluster. App packages resolve
99
+ * the password secret through `databaseCredentialsRef` — never hardcode
100
+ * a `-db-credentials` name.
91
101
  */
92
102
  credentialsMode?: 'backend' | 'cnpg';
93
103
  /** Child components rendered with this database's connection info in context */
94
104
  children?: unknown;
95
105
  }
106
+ /**
107
+ * Resolve the bootstrap credentials Secret for a CNPG `Database` — the
108
+ * single resolution contract for app packages. Every DB-password
109
+ * `secretKeyRef` must point at the Secret this helper resolves, never at
110
+ * a hardcoded name.
111
+ *
112
+ * Resolution rule:
113
+ *
114
+ * | secrets backend | credentialsMode | resolved Secret | provisioned by |
115
+ * |--------------------------------|-----------------|--------------------------|----------------|
116
+ * | openbao / vault | 'backend' | `<name>-db-credentials` | the backend (CNPG adopts it via `bootstrap.initdb.secret`; rotation → pod restarts) |
117
+ * | sealed-secrets | 'backend' | `<name>-db-credentials` | the `SealedSecret` the Database recipe renders (sealed by the operator) |
118
+ * | none | (any) | `<name>-app` | CNPG generates it in-cluster (`bootstrap.initdb.secret` is omitted) |
119
+ * | openbao / vault / sealed-secrets | 'cnpg' | `<name>-app` | CNPG generates it in-cluster |
120
+ * | kubernetes / manual-secrets (passive) | 'backend' | `<name>-app` | CNPG generates it in-cluster — nothing provisions a referenceable Secret |
121
+ *
122
+ * **Shared clusters** (a surrounding `<Cluster>` recipe instead of a
123
+ * dedicated CNPG cluster) always resolve `<name>-db-credentials` when a
124
+ * provisioning backend is in scope: CNPG only generates credentials for
125
+ * dedicated clusters, so the backend is the only provisioner there — an
126
+ * explicit `credentialsMode: 'cnpg'` cannot be honored and resolves as
127
+ * `'backend'` (`createSecretResources` throws without a backend).
128
+ *
129
+ * The name resolution matters because CloudNativePG (≥ 1.20, verified on
130
+ * 1.27) does **not** auto-create a Secret referenced from
131
+ * `bootstrap.initdb.secret` — referencing `<name>-db-credentials` without
132
+ * a backend that provisions it is a guaranteed
133
+ * `CreateContainerConfigError` on every consuming pod. When the helper
134
+ * resolves `<name>-app`, the `Database` recipe omits `initdb.secret` so
135
+ * the operator natively generates the credentials Secret (including the
136
+ * `fqdn-uri` key).
137
+ *
138
+ * `key` is always `'password'` — apps that instead read the operator
139
+ * bundle (e.g. `fqdn-uri`) use the resolved `name` with their own key.
140
+ *
141
+ * @param name Database (CNPG Cluster) resource name
142
+ * @param secretProvider The `SecretContext` value (null without a Platform secrets backend)
143
+ * @param credentialsMode The Database's `credentialsMode` (defaults to 'backend')
144
+ */
145
+ export declare function databaseCredentialsRef(name: string, secretProvider: {
146
+ backend: string;
147
+ } | null, credentialsMode?: 'backend' | 'cnpg'): {
148
+ name: string;
149
+ key: string;
150
+ };
96
151
  /**
97
152
  * CloudNativePG PostgreSQL database.
98
153
  *
@@ -104,8 +159,11 @@ export interface DatabaseProps {
104
159
  * connection info via DatabaseContext automatically.
105
160
  *
106
161
  * Credentials are managed by the secrets backend configured on the Platform.
107
- * Without a backend, credentials are CNPG-managed (bootstrap secret is
108
- * generated automatically in-cluster). Plaintext password props are NOT
162
+ * Without a backend, credentials are CNPG-managed: `bootstrap.initdb.secret`
163
+ * is omitted and the operator generates the `<name>-app` credentials Secret
164
+ * in-cluster — apps resolve the password Secret through
165
+ * `databaseCredentialsRef(name, secretProvider, credentialsMode)` instead of
166
+ * hardcoding a name. Plaintext password props are NOT
109
167
  * supported — rendered YAML is committed to git and applied to clusters,
110
168
  * so a plaintext password there is a credential leak.
111
169
  *
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAyC,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAEvF;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,qIAAqI;IACrI,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,qHAAqH;IACrH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;IACzC,yCAAyC;IACzC,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,GAAG,KAAK,GAAG;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,CAAA;IACnF;;;;OAIG;IACH,qBAAqB,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC9E,yFAAyF;IACzF,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IACpC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,oCAqS5C"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAyC,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAEvF;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,qIAAqI;IACrI,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,qHAAqH;IACrH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;IACzC,yCAAyC;IACzC,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,GAAG,KAAK,GAAG;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,CAAA;IACnF;;;;OAIG;IACH,qBAAqB,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC9E,yFAAyF;IACzF,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB;;;;;;;;;;;;;;;;;OAiBG;IACH,eAAe,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IACpC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAoBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EAC1C,eAAe,GAAE,SAAS,GAAG,MAAkB,GAC9C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAM/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0EG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,oCA6T5C"}
package/dist/database.js CHANGED
@@ -1,11 +1,73 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.databaseCredentialsRef = databaseCredentialsRef;
3
4
  exports.Database = Database;
4
5
  const core_1 = require("@r8s/core");
5
6
  const operator_cnpg_1 = require("@r8s/operator-cnpg");
6
7
  const defaults_1 = require("@r8s/core/defaults");
7
8
  const secret_provider_1 = require("./secret-provider");
8
9
  const s3_provider_1 = require("./s3-provider");
10
+ /**
11
+ * Does this Platform secrets backend render a Secret that the Database
12
+ * bootstrap reference can point at (the `<name>-db-credentials`
13
+ * destination createSecretResources renders)? Single source for the
14
+ * "provisioning" notion shared by `databaseCredentialsRef` and the
15
+ * backend switch in `createSecretResources` — keep the two aligned, a
16
+ * drift silently flips app references between the backend-provisioned
17
+ * Secret and the CNPG-generated `<name>-app`.
18
+ */
19
+ function provisionsBootstrapSecret(secretProvider) {
20
+ return (secretProvider !== null &&
21
+ (secretProvider.backend === 'openbao' ||
22
+ secretProvider.backend === 'vault' ||
23
+ secretProvider.backend === 'sealed-secrets'));
24
+ }
25
+ /**
26
+ * Resolve the bootstrap credentials Secret for a CNPG `Database` — the
27
+ * single resolution contract for app packages. Every DB-password
28
+ * `secretKeyRef` must point at the Secret this helper resolves, never at
29
+ * a hardcoded name.
30
+ *
31
+ * Resolution rule:
32
+ *
33
+ * | secrets backend | credentialsMode | resolved Secret | provisioned by |
34
+ * |--------------------------------|-----------------|--------------------------|----------------|
35
+ * | openbao / vault | 'backend' | `<name>-db-credentials` | the backend (CNPG adopts it via `bootstrap.initdb.secret`; rotation → pod restarts) |
36
+ * | sealed-secrets | 'backend' | `<name>-db-credentials` | the `SealedSecret` the Database recipe renders (sealed by the operator) |
37
+ * | none | (any) | `<name>-app` | CNPG generates it in-cluster (`bootstrap.initdb.secret` is omitted) |
38
+ * | openbao / vault / sealed-secrets | 'cnpg' | `<name>-app` | CNPG generates it in-cluster |
39
+ * | kubernetes / manual-secrets (passive) | 'backend' | `<name>-app` | CNPG generates it in-cluster — nothing provisions a referenceable Secret |
40
+ *
41
+ * **Shared clusters** (a surrounding `<Cluster>` recipe instead of a
42
+ * dedicated CNPG cluster) always resolve `<name>-db-credentials` when a
43
+ * provisioning backend is in scope: CNPG only generates credentials for
44
+ * dedicated clusters, so the backend is the only provisioner there — an
45
+ * explicit `credentialsMode: 'cnpg'` cannot be honored and resolves as
46
+ * `'backend'` (`createSecretResources` throws without a backend).
47
+ *
48
+ * The name resolution matters because CloudNativePG (≥ 1.20, verified on
49
+ * 1.27) does **not** auto-create a Secret referenced from
50
+ * `bootstrap.initdb.secret` — referencing `<name>-db-credentials` without
51
+ * a backend that provisions it is a guaranteed
52
+ * `CreateContainerConfigError` on every consuming pod. When the helper
53
+ * resolves `<name>-app`, the `Database` recipe omits `initdb.secret` so
54
+ * the operator natively generates the credentials Secret (including the
55
+ * `fqdn-uri` key).
56
+ *
57
+ * `key` is always `'password'` — apps that instead read the operator
58
+ * bundle (e.g. `fqdn-uri`) use the resolved `name` with their own key.
59
+ *
60
+ * @param name Database (CNPG Cluster) resource name
61
+ * @param secretProvider The `SecretContext` value (null without a Platform secrets backend)
62
+ * @param credentialsMode The Database's `credentialsMode` (defaults to 'backend')
63
+ */
64
+ function databaseCredentialsRef(name, secretProvider, credentialsMode = 'backend') {
65
+ const backendProvisions = credentialsMode !== 'cnpg' && provisionsBootstrapSecret(secretProvider);
66
+ return {
67
+ name: backendProvisions ? `${name}-db-credentials` : `${name}-app`,
68
+ key: 'password',
69
+ };
70
+ }
9
71
  /**
10
72
  * CloudNativePG PostgreSQL database.
11
73
  *
@@ -17,8 +79,11 @@ const s3_provider_1 = require("./s3-provider");
17
79
  * connection info via DatabaseContext automatically.
18
80
  *
19
81
  * Credentials are managed by the secrets backend configured on the Platform.
20
- * Without a backend, credentials are CNPG-managed (bootstrap secret is
21
- * generated automatically in-cluster). Plaintext password props are NOT
82
+ * Without a backend, credentials are CNPG-managed: `bootstrap.initdb.secret`
83
+ * is omitted and the operator generates the `<name>-app` credentials Secret
84
+ * in-cluster — apps resolve the password Secret through
85
+ * `databaseCredentialsRef(name, secretProvider, credentialsMode)` instead of
86
+ * hardcoding a name. Plaintext password props are NOT
22
87
  * supported — rendered YAML is committed to git and applied to clusters,
23
88
  * so a plaintext password there is a credential leak.
24
89
  *
@@ -114,7 +179,7 @@ function Database(props) {
114
179
  `working backups slowly fills its PVC.\n` +
115
180
  `\n` +
116
181
  `There is no <S3Provider> in scope, so backups cannot be defaulted on.\n` +
117
- `Add one in scope (inside a <Platform> or stand-alone) and backups\n` +
182
+ `Fix: add one in scope (inside a <Platform> or stand-alone) and backups\n` +
118
183
  `enable automatically:\n` +
119
184
  ` import { Database, S3Provider, MinIO } from '@r8s/recipes'\n` +
120
185
  ` <S3Provider provider={<MinIO endpoint="https://rustfs:9000" bucket="infra" credentialsSecret="infra-s3-creds" />}>\n` +
@@ -156,10 +221,11 @@ function Database(props) {
156
221
  if (backupSpec && (!backupSpec.endpointURL || !backupSpec.destinationPath)) {
157
222
  throw new Error(`Database "${name}" has backup configured without an S3 target.\n` +
158
223
  `\n` +
159
- `Add an <S3Provider> to the Platform — endpoint, bucket and credentials are derived from it:\n` +
224
+ `Fix: add an <S3Provider> to the Platform — endpoint, bucket and credentials are derived from it:\n` +
160
225
  ` <Platform>\n` +
161
226
  ` <S3Provider provider={<MinIO endpoint="https://rustfs:9000" bucket="infra" credentialsSecret="infra-s3-creds" />}>\n` +
162
227
  ` <Database name="${name}" backup />\n` +
228
+ ` </S3Provider>\n` +
163
229
  ` </Platform>\n` +
164
230
  `\n` +
165
231
  `or pass the target explicitly:\n` +
@@ -170,7 +236,19 @@ function Database(props) {
170
236
  const clusterConfig = (0, core_1.useContext)(defaults_1.ClusterContext);
171
237
  const secretProvider = (0, core_1.useContext)(defaults_1.SecretContext);
172
238
  const sharedOperators = (0, core_1.useContext)(defaults_1.OperatorContext);
239
+ // Provisioning destination for backend-provisioned credentials (the name
240
+ // createSecretResources renders). The bootstrap REF consumers use is the
241
+ // resolved credentialsRef below — the two names coincide exactly when a
242
+ // provisioning backend is active.
173
243
  const secretName = `${name}-db-credentials`;
244
+ // Central credentials contract (see databaseCredentialsRef): the Secret
245
+ // the bootstrap password lives in and every consumer must reference.
246
+ // Shared clusters have no CNPG bootstrap generation (CNPG only
247
+ // provisions for dedicated clusters and createSecretResources throws
248
+ // without a backend), so the backend always provisions there.
249
+ const credentialsRef = clusterConfig
250
+ ? databaseCredentialsRef(name, secretProvider, 'backend')
251
+ : databaseCredentialsRef(name, secretProvider, credentialsMode);
174
252
  const resources = [];
175
253
  if (clusterConfig) {
176
254
  // Shared cluster — reuse connection info from the surrounding Cluster
@@ -179,7 +257,7 @@ function Database(props) {
179
257
  port: 5432,
180
258
  database: databaseName,
181
259
  username: ownerName,
182
- passwordSecret: { name: secretName, key: 'password' },
260
+ passwordSecret: credentialsRef,
183
261
  passwordKey: 'password',
184
262
  vendor: 'postgres',
185
263
  };
@@ -205,8 +283,9 @@ function Database(props) {
205
283
  else {
206
284
  throw new Error(`Database "${name}" has backup configured without backup credentials.\n` +
207
285
  `\n` +
208
- `Add an <S3Provider> to the Platform backup endpoint, bucket and credentials are derived from it.\n` +
286
+ `The backup has an S3 target but no credentials Secret to authenticate with.\n` +
209
287
  `\n` +
288
+ `Fix: add an <S3Provider> to the Platform — backup endpoint, bucket and credentials are derived from it.\n` +
210
289
  `\n` +
211
290
  `Set an existing Secret holding keys 'access-key-id' and 'secret-access-key':\n` +
212
291
  ` backup={{ ..., credentialsSecret: 'my-backup-creds' }}\n` +
@@ -229,9 +308,15 @@ function Database(props) {
229
308
  initdb: {
230
309
  database: databaseName,
231
310
  owner: ownerName,
232
- // 'cnpg' credentialsMode: let CNPG default to '<cluster>-app'
233
- // (the native credentials secret incl. fqdn-uri references)
234
- ...(credentialsMode === 'cnpg' ? {} : { secret: { name: secretName } }),
311
+ // Reference the provisioned bootstrap secret ONLY when the
312
+ // contract resolves to it (see databaseCredentialsRef) — CNPG
313
+ // does not auto-create a referenced Secret, so every other
314
+ // combination omits initdb.secret and the operator generates
315
+ // the native credentials secret (`<name>-app`, incl. fqdn-uri
316
+ // references) in-cluster.
317
+ ...(credentialsRef.name === secretName
318
+ ? { secret: { name: credentialsRef.name } }
319
+ : {}),
235
320
  // Roles/extensions the application needs on a fresh cluster —
236
321
  // applied once by CNPG after the initial bootstrap.
237
322
  ...(postInitSQL && postInitSQL.length > 0
@@ -268,7 +353,7 @@ function Database(props) {
268
353
  port: 5432,
269
354
  database: databaseName,
270
355
  username: ownerName,
271
- passwordSecret: { name: secretName, key: 'password' },
356
+ passwordSecret: credentialsRef,
272
357
  passwordKey: 'password',
273
358
  vendor: 'postgres',
274
359
  };
@@ -292,13 +377,16 @@ function Database(props) {
292
377
  resources.push(...createStaticSecretResource(`${name}-backup-credentials`, `${name}-backup-credentials`, namespace, secretProvider, `${secretProvider.path}/${name}-s3-credentials`, undefined));
293
378
  }
294
379
  }
295
- // For dedicated clusters with a secrets backend, the backend manages
296
- // credentials. For kubernetes/manual-secrets backend, CNPG manages the
297
- // bootstrap secret automatically no plaintext Secret is rendered.
298
- // 'cnpg' credentialsMode: the operator generates the bootstrap secret
299
- // in-cluster (incl. fqdn-uri) even when a secrets backend is present —
300
- // apps referencing the CNPG-generated secret directly (e.g. paperclip's
301
- // externalURLSecretRef) work without vault-stored DB credentials.
380
+ // Backend-provisioned credentials: whenever the active backend renders
381
+ // a Secret for the bootstrap reference (openbao/vault static sync,
382
+ // sealed-secrets bundlethe exact set databaseCredentialsRef
383
+ // resolves to `<name>-db-credentials`), it is created here. Passive
384
+ // backends render nothing on dedicated clusters and
385
+ // 'cnpg' credentialsMode skips provisioning entirely in both cases
386
+ // the operator generates the bootstrap secret in-cluster (incl.
387
+ // fqdn-uri); apps referencing the CNPG-generated secret directly
388
+ // (e.g. paperclip's externalURLSecretRef) work without vault-stored
389
+ // DB credentials.
302
390
  if (secretProvider && credentialsMode === 'backend') {
303
391
  resources.push(...createSecretResources(name, namespace, secretName, secretProvider, 'dedicated', rolloutRestartTargets));
304
392
  }
@@ -335,6 +423,11 @@ function createSecretResources(name, namespace, secretName, secretProvider, mode
335
423
  `Supported backends: 'openbao', 'vault', 'sealed-secrets', 'kubernetes', 'manual-secrets'`);
336
424
  }
337
425
  switch (secretProvider.backend) {
426
+ // 'vault'/'openbao' render the static sync and 'sealed-secrets' the
427
+ // SealedSecret — both into the same `<name>-db-credentials` destination
428
+ // (secretName). These cases are exactly the set
429
+ // provisionsBootstrapSecret() recognizes for the credentials contract;
430
+ // keep them in sync with it.
338
431
  case 'vault':
339
432
  case 'openbao':
340
433
  resources.push(...createStaticSecretResource(`${name}-db-secret`, secretName, namespace, secretProvider, `${secretProvider.path}/${name}`, rolloutRestartTargets));
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ export { Platform, type PlatformProps, type RoutingMode } from './platform';
2
2
  export { R8sCluster, type R8sClusterProps } from './r8s-cluster';
3
3
  export { Namespace, type NamespaceProps } from './namespace';
4
4
  export { App, type AppProps } from './app';
5
- export { Database, type DatabaseProps } from './database';
5
+ export { Database, type DatabaseProps, databaseCredentialsRef } from './database';
6
6
  export { Endpoint, type EndpointProps } from './endpoint';
7
7
  export { WebService, type WebServiceProps, type SecretRef, type VaultSecretRef, } from './web-service';
8
8
  export { Auth, type AuthProps } from './auth';
@@ -14,6 +14,7 @@ export { EndpointProvider, type EndpointProviderProps, type EndpointProviderValu
14
14
  export { CertProvider, type CertProviderProps, type CertProviderValue, type CertConfig, CertContext, CertManager, type CertManagerProps, } from './cert-provider';
15
15
  export { StaticSecret, type StaticSecretProps } from './static-secret';
16
16
  export { S3Provider, type S3ProviderProps, type S3Config, useS3, MinIO, AwsS3, Bucket, type BucketProps, isBucketElement, resolveBucket, } from './s3-provider';
17
+ export { resolveObjectStorage, type ObjectStorageStore, type ObjectStorageBucketDescriptor, } from './object-storage';
17
18
  export { useOperators } from './use-operators';
18
19
  export { secretsRequiredError, type SecretsRequiredOptions } from './errors';
19
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAC3E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,cAAc,GACpB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAA;AAGnD,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,EACL,KAAK,UAAU,EACf,aAAa,EACb,KAAK,kBAAkB,EACvB,aAAa,EACb,KAAK,kBAAkB,EACvB,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,UAAU,EACV,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,eAAe,EACf,KAAK,EACL,KAAK,UAAU,EACf,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,WAAW,EACX,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEtE,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,WAAW,EAChB,eAAe,EACf,aAAa,GACd,MAAM,eAAe,CAAA;AAGtB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,KAAK,sBAAsB,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAC3E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AACjF,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,cAAc,GACpB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAA;AAGnD,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,EACL,KAAK,UAAU,EACf,aAAa,EACb,KAAK,kBAAkB,EACvB,aAAa,EACb,KAAK,kBAAkB,EACvB,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,UAAU,EACV,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,eAAe,EACf,KAAK,EACL,KAAK,UAAU,EACf,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,WAAW,EACX,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEtE,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,WAAW,EAChB,eAAe,EACf,aAAa,GACd,MAAM,eAAe,CAAA;AAKtB,OAAO,EACL,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,GACnC,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,KAAK,sBAAsB,EAAE,MAAM,UAAU,CAAA"}
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@
4
4
  // with good defaults. Named after what the user wants to achieve, not the
5
5
  // underlying tools.
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.secretsRequiredError = exports.useOperators = exports.resolveBucket = exports.isBucketElement = exports.Bucket = exports.AwsS3 = exports.MinIO = exports.useS3 = exports.S3Provider = exports.StaticSecret = exports.CertManager = exports.CertContext = exports.CertProvider = exports.EnvoyGateway = exports.Nginx = exports.EndpointContext = exports.EndpointProvider = exports.ExternalDns = exports.DnsContext = exports.DnsProvider = exports.canProvisionSecrets = exports.provisionerForSecretProvider = exports.ManualSecrets = exports.SealedSecrets = exports.Vault = exports.OpenBao = exports.SecretProvider = exports.Backup = exports.Monitoring = exports.Auth = exports.WebService = exports.Endpoint = exports.Database = exports.App = exports.Namespace = exports.R8sCluster = exports.Platform = void 0;
7
+ exports.secretsRequiredError = exports.useOperators = exports.resolveObjectStorage = exports.resolveBucket = exports.isBucketElement = exports.Bucket = exports.AwsS3 = exports.MinIO = exports.useS3 = exports.S3Provider = exports.StaticSecret = exports.CertManager = exports.CertContext = exports.CertProvider = exports.EnvoyGateway = exports.Nginx = exports.EndpointContext = exports.EndpointProvider = exports.ExternalDns = exports.DnsContext = exports.DnsProvider = exports.canProvisionSecrets = exports.provisionerForSecretProvider = exports.ManualSecrets = exports.SealedSecrets = exports.Vault = exports.OpenBao = exports.SecretProvider = exports.Backup = exports.Monitoring = exports.Auth = exports.WebService = exports.Endpoint = exports.databaseCredentialsRef = exports.Database = exports.App = exports.Namespace = exports.R8sCluster = exports.Platform = void 0;
8
8
  var platform_1 = require("./platform");
9
9
  Object.defineProperty(exports, "Platform", { enumerable: true, get: function () { return platform_1.Platform; } });
10
10
  var r8s_cluster_1 = require("./r8s-cluster");
@@ -15,6 +15,7 @@ var app_1 = require("./app");
15
15
  Object.defineProperty(exports, "App", { enumerable: true, get: function () { return app_1.App; } });
16
16
  var database_1 = require("./database");
17
17
  Object.defineProperty(exports, "Database", { enumerable: true, get: function () { return database_1.Database; } });
18
+ Object.defineProperty(exports, "databaseCredentialsRef", { enumerable: true, get: function () { return database_1.databaseCredentialsRef; } });
18
19
  var endpoint_1 = require("./endpoint");
19
20
  Object.defineProperty(exports, "Endpoint", { enumerable: true, get: function () { return endpoint_1.Endpoint; } });
20
21
  var web_service_1 = require("./web-service");
@@ -58,6 +59,11 @@ Object.defineProperty(exports, "AwsS3", { enumerable: true, get: function () { r
58
59
  Object.defineProperty(exports, "Bucket", { enumerable: true, get: function () { return s3_provider_1.Bucket; } });
59
60
  Object.defineProperty(exports, "isBucketElement", { enumerable: true, get: function () { return s3_provider_1.isBucketElement; } });
60
61
  Object.defineProperty(exports, "resolveBucket", { enumerable: true, get: function () { return s3_provider_1.resolveBucket; } });
62
+ // App-package accessor for the platform's object store — the
63
+ // objectStorage resolution contract shared by supabase/outline/eneo/
64
+ // nextcloud (declare-once on the S3Provider, consumers derive).
65
+ var object_storage_1 = require("./object-storage");
66
+ Object.defineProperty(exports, "resolveObjectStorage", { enumerable: true, get: function () { return object_storage_1.resolveObjectStorage; } });
61
67
  // Composition helpers — loose building blocks for packages
62
68
  var use_operators_1 = require("./use-operators");
63
69
  Object.defineProperty(exports, "useOperators", { enumerable: true, get: function () { return use_operators_1.useOperators; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,wDAAwD;AACxD,4EAA4E;AAC5E,0EAA0E;AAC1E,oBAAoB;;;AAEpB,uCAA2E;AAAlE,oGAAA,QAAQ,OAAA;AACjB,6CAAgE;AAAvD,yGAAA,UAAU,OAAA;AACnB,yCAA4D;AAAnD,sGAAA,SAAS,OAAA;AAClB,6BAA0C;AAAjC,0FAAA,GAAG,OAAA;AACZ,uCAAyD;AAAhD,oGAAA,QAAQ,OAAA;AACjB,uCAAyD;AAAhD,oGAAA,QAAQ,OAAA;AACjB,6CAKsB;AAJpB,yGAAA,UAAU,OAAA;AAKZ,+BAA6C;AAApC,4FAAA,IAAI,OAAA;AACb,2CAA+D;AAAtD,wGAAA,UAAU,OAAA;AACnB,mCAAmD;AAA1C,gGAAA,MAAM,OAAA;AAEf,wEAAwE;AACxE,qDAc0B;AAbxB,iHAAA,cAAc,OAAA;AAGd,0GAAA,OAAO,OAAA;AAEP,wGAAA,KAAK,OAAA;AAEL,gHAAA,aAAa,OAAA;AAEb,gHAAA,aAAa,OAAA;AAEb,+HAAA,4BAA4B,OAAA;AAC5B,sHAAA,mBAAmB,OAAA;AAErB,+CAQuB;AAPrB,2GAAA,WAAW,OAAA;AAIX,0GAAA,UAAU,OAAA;AACV,2GAAA,WAAW,OAAA;AAGb,yDAU4B;AAT1B,qHAAA,gBAAgB,OAAA;AAIhB,oHAAA,eAAe,OAAA;AACf,0GAAA,KAAK,OAAA;AAEL,iHAAA,YAAY,OAAA;AAGd,iDAQwB;AAPtB,6GAAA,YAAY,OAAA;AAIZ,4GAAA,WAAW,OAAA;AACX,4GAAA,WAAW,OAAA;AAIb,uDAAuD;AACvD,iDAAsE;AAA7D,6GAAA,YAAY,OAAA;AAErB,6CAWsB;AAVpB,yGAAA,UAAU,OAAA;AAGV,oGAAA,KAAK,OAAA;AACL,oGAAA,KAAK,OAAA;AACL,oGAAA,KAAK,OAAA;AACL,qGAAA,MAAM,OAAA;AAEN,8GAAA,eAAe,OAAA;AACf,4GAAA,aAAa,OAAA;AAGf,2DAA2D;AAC3D,iDAA8C;AAArC,6GAAA,YAAY,OAAA;AACrB,mCAA4E;AAAnE,8GAAA,oBAAoB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,wDAAwD;AACxD,4EAA4E;AAC5E,0EAA0E;AAC1E,oBAAoB;;;AAEpB,uCAA2E;AAAlE,oGAAA,QAAQ,OAAA;AACjB,6CAAgE;AAAvD,yGAAA,UAAU,OAAA;AACnB,yCAA4D;AAAnD,sGAAA,SAAS,OAAA;AAClB,6BAA0C;AAAjC,0FAAA,GAAG,OAAA;AACZ,uCAAiF;AAAxE,oGAAA,QAAQ,OAAA;AAAsB,kHAAA,sBAAsB,OAAA;AAC7D,uCAAyD;AAAhD,oGAAA,QAAQ,OAAA;AACjB,6CAKsB;AAJpB,yGAAA,UAAU,OAAA;AAKZ,+BAA6C;AAApC,4FAAA,IAAI,OAAA;AACb,2CAA+D;AAAtD,wGAAA,UAAU,OAAA;AACnB,mCAAmD;AAA1C,gGAAA,MAAM,OAAA;AAEf,wEAAwE;AACxE,qDAc0B;AAbxB,iHAAA,cAAc,OAAA;AAGd,0GAAA,OAAO,OAAA;AAEP,wGAAA,KAAK,OAAA;AAEL,gHAAA,aAAa,OAAA;AAEb,gHAAA,aAAa,OAAA;AAEb,+HAAA,4BAA4B,OAAA;AAC5B,sHAAA,mBAAmB,OAAA;AAErB,+CAQuB;AAPrB,2GAAA,WAAW,OAAA;AAIX,0GAAA,UAAU,OAAA;AACV,2GAAA,WAAW,OAAA;AAGb,yDAU4B;AAT1B,qHAAA,gBAAgB,OAAA;AAIhB,oHAAA,eAAe,OAAA;AACf,0GAAA,KAAK,OAAA;AAEL,iHAAA,YAAY,OAAA;AAGd,iDAQwB;AAPtB,6GAAA,YAAY,OAAA;AAIZ,4GAAA,WAAW,OAAA;AACX,4GAAA,WAAW,OAAA;AAIb,uDAAuD;AACvD,iDAAsE;AAA7D,6GAAA,YAAY,OAAA;AAErB,6CAWsB;AAVpB,yGAAA,UAAU,OAAA;AAGV,oGAAA,KAAK,OAAA;AACL,oGAAA,KAAK,OAAA;AACL,oGAAA,KAAK,OAAA;AACL,qGAAA,MAAM,OAAA;AAEN,8GAAA,eAAe,OAAA;AACf,4GAAA,aAAa,OAAA;AAGf,6DAA6D;AAC7D,qEAAqE;AACrE,gEAAgE;AAChE,mDAIyB;AAHvB,sHAAA,oBAAoB,OAAA;AAKtB,2DAA2D;AAC3D,iDAA8C;AAArC,6GAAA,YAAY,OAAA;AACrB,mCAA4E;AAAnE,8GAAA,oBAAoB,OAAA"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Shared resolution for app packages' `objectStorage` prop — the same
3
+ * declare-once-consumers-derive contract Database `backup` has had since
4
+ * #115. Packages reference this helper instead of hand-writing the same
5
+ * resolution block per app; the order and the guidance live in one place.
6
+ */
7
+ import { type BucketProps, type S3Config } from './s3-provider';
8
+ /**
9
+ * The store config every S3-consuming app package needs. `region` is
10
+ * carried through when the provider declares one (e.g. <AwsS3
11
+ * region="…">) so derived consumers sign against the same region;
12
+ * consumers without a store region default to 'us-east-1'.
13
+ */
14
+ export interface ObjectStorageStore {
15
+ endpoint: string;
16
+ bucket: string;
17
+ credentialsSecret: string;
18
+ region?: string;
19
+ }
20
+ /** A `<Bucket name="…" />` descriptor element (plain-struct shape). */
21
+ export interface ObjectStorageBucketDescriptor {
22
+ type: unknown;
23
+ props: BucketProps;
24
+ }
25
+ /**
26
+ * Key-name contracts against a SHARED credentials Secret: app packages
27
+ * read `accessKey`/`secretKey`, CNPG barman backup credentials read
28
+ * `access-key-id`/`secret-access-key`. When backups and app object
29
+ * storage both derive from one provider Secret, it must carry all four
30
+ * keys — the guidance below names both conventions.
31
+ */
32
+ export declare const OBJECT_STORAGE_KEY_CONVENTIONS = "app packages read the keys accessKey/secretKey, CNPG backup credentials read access-key-id/secret-access-key";
33
+ /**
34
+ * The "omitted and nothing to derive from" guidance. Names the component
35
+ * + instance (WHAT), the missing configuration (WHY), and shows both ways
36
+ * out (HOW): wrap in an <S3Provider> so the prop can be omitted entirely,
37
+ * or pass a <Bucket> descriptor with the full store config.
38
+ */
39
+ export declare function objectStorageRequiredError(component: string, name: string, what: string): Error;
40
+ /**
41
+ * Resolve an app package's `objectStorage` prop — resolution order:
42
+ *
43
+ * 1. Explicit config object → wins (unchanged behavior). Hand-built or
44
+ * partial objects are validated so a JS caller cannot render a broken
45
+ * secretKeyRef.
46
+ * 2. `<Bucket name="…" />` descriptor → resolved against the surrounding
47
+ * provider. Storage-API-style consumers take a BUCKET NAME, not a
48
+ * prefixed path: the descriptor's `bucket` override selects the bucket
49
+ * and its `name` is only the logical scope (prefix) — it never reaches
50
+ * the consumer's bucket config.
51
+ * 3. Omitted + `<S3Provider>` in scope → endpoint/bucket/credentials
52
+ * (and the provider's region, when declared) derive from the provider.
53
+ * 4. Omitted + no provider → throw with actionable guidance (both fixes).
54
+ *
55
+ * A provider without `credentialsSecret` is special-cased like Database's
56
+ * backup-credentials guidance: the missing piece is named with its fixes,
57
+ * instead of rendering a broken secretKeyRef against a Secret that does
58
+ * not exist.
59
+ *
60
+ * @param component Component name for the error message (e.g. 'Supabase')
61
+ * @param name Instance name for the error message
62
+ * @param what One-line WHY text, e.g. 'the Storage API writes uploads and stored files to the bucket'
63
+ * @param value The raw `objectStorage` prop (config object, <Bucket/> element, or undefined)
64
+ * @param s3 The surrounding S3Provider config (useS3()), null without one
65
+ */
66
+ export declare function resolveObjectStorage<T extends ObjectStorageStore>(component: string, name: string, what: string, value: T | ObjectStorageBucketDescriptor | undefined, s3: S3Config | null): T;
67
+ //# sourceMappingURL=object-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-storage.d.ts","sourceRoot":"","sources":["../src/object-storage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAkC,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE/F;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,MAAM,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,uEAAuE;AACvE,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,WAAW,CAAA;CACnB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,iHACqE,CAAA;AAEhH;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAiB/F;AA2BD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,kBAAkB,EAC/D,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,CAAC,GAAG,6BAA6B,GAAG,SAAS,EACpD,EAAE,EAAE,QAAQ,GAAG,IAAI,GAClB,CAAC,CAyDH"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ /**
3
+ * Shared resolution for app packages' `objectStorage` prop — the same
4
+ * declare-once-consumers-derive contract Database `backup` has had since
5
+ * #115. Packages reference this helper instead of hand-writing the same
6
+ * resolution block per app; the order and the guidance live in one place.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.OBJECT_STORAGE_KEY_CONVENTIONS = void 0;
10
+ exports.objectStorageRequiredError = objectStorageRequiredError;
11
+ exports.resolveObjectStorage = resolveObjectStorage;
12
+ const s3_provider_1 = require("./s3-provider");
13
+ /**
14
+ * Key-name contracts against a SHARED credentials Secret: app packages
15
+ * read `accessKey`/`secretKey`, CNPG barman backup credentials read
16
+ * `access-key-id`/`secret-access-key`. When backups and app object
17
+ * storage both derive from one provider Secret, it must carry all four
18
+ * keys — the guidance below names both conventions.
19
+ */
20
+ exports.OBJECT_STORAGE_KEY_CONVENTIONS = 'app packages read the keys accessKey/secretKey, CNPG backup credentials read access-key-id/secret-access-key';
21
+ /**
22
+ * The "omitted and nothing to derive from" guidance. Names the component
23
+ * + instance (WHAT), the missing configuration (WHY), and shows both ways
24
+ * out (HOW): wrap in an <S3Provider> so the prop can be omitted entirely,
25
+ * or pass a <Bucket> descriptor with the full store config.
26
+ */
27
+ function objectStorageRequiredError(component, name, what) {
28
+ return new Error(`${component} "${name}" needs object storage — ${what}.\n` +
29
+ `\n` +
30
+ `There is no <S3Provider> in scope and no objectStorage prop, so the ` +
31
+ `component cannot know which endpoint/bucket/credentials to use.\n` +
32
+ `\n` +
33
+ `Fix: wrap the platform in an <S3Provider> — objectStorage then derives\n` +
34
+ `from it and can be omitted entirely:\n` +
35
+ ` <S3Provider provider={<MinIO endpoint="https://rustfs:9000" bucket="infra" credentialsSecret="infra-s3-creds" />}>\n` +
36
+ ` <${component} name="${name}" host="…" />\n` +
37
+ ` </S3Provider>\n` +
38
+ `\n` +
39
+ `or pass a <Bucket> descriptor (its \`bucket\` selects the bucket, \`name\`` +
40
+ ` is the logical scope):\n` +
41
+ ` <${component} name="${name}" objectStorage={<Bucket name="…" bucket="…" endpoint="https://…" credentialsSecret="…" />} />`);
42
+ }
43
+ /** Guard for a hand-built config object (JS callers bypass the types). */
44
+ function requireCompleteStore(component, name, store) {
45
+ const missing = [
46
+ !store.endpoint && 'endpoint',
47
+ !store.bucket && 'bucket',
48
+ !store.credentialsSecret && 'credentialsSecret',
49
+ ].filter(Boolean);
50
+ if (missing.length > 0) {
51
+ throw new Error(`${component} "${name}": the objectStorage config object is missing: ` +
52
+ `${missing.join(', ')}.\n` +
53
+ `\n` +
54
+ `Fix: pass the full config object:\n` +
55
+ ` <${component} name="${name}" objectStorage={{ endpoint: 'https://…', bucket: '…', credentialsSecret: 'object-store-credentials' }} />\n` +
56
+ `\n` +
57
+ `or omit the prop entirely under an <S3Provider> — endpoint, bucket and\n` +
58
+ `credentials derive from it.`);
59
+ }
60
+ }
61
+ /**
62
+ * Resolve an app package's `objectStorage` prop — resolution order:
63
+ *
64
+ * 1. Explicit config object → wins (unchanged behavior). Hand-built or
65
+ * partial objects are validated so a JS caller cannot render a broken
66
+ * secretKeyRef.
67
+ * 2. `<Bucket name="…" />` descriptor → resolved against the surrounding
68
+ * provider. Storage-API-style consumers take a BUCKET NAME, not a
69
+ * prefixed path: the descriptor's `bucket` override selects the bucket
70
+ * and its `name` is only the logical scope (prefix) — it never reaches
71
+ * the consumer's bucket config.
72
+ * 3. Omitted + `<S3Provider>` in scope → endpoint/bucket/credentials
73
+ * (and the provider's region, when declared) derive from the provider.
74
+ * 4. Omitted + no provider → throw with actionable guidance (both fixes).
75
+ *
76
+ * A provider without `credentialsSecret` is special-cased like Database's
77
+ * backup-credentials guidance: the missing piece is named with its fixes,
78
+ * instead of rendering a broken secretKeyRef against a Secret that does
79
+ * not exist.
80
+ *
81
+ * @param component Component name for the error message (e.g. 'Supabase')
82
+ * @param name Instance name for the error message
83
+ * @param what One-line WHY text, e.g. 'the Storage API writes uploads and stored files to the bucket'
84
+ * @param value The raw `objectStorage` prop (config object, <Bucket/> element, or undefined)
85
+ * @param s3 The surrounding S3Provider config (useS3()), null without one
86
+ */
87
+ function resolveObjectStorage(component, name, what, value, s3) {
88
+ // 1. Explicit object → wins (unchanged behavior), but must be complete —
89
+ // a partial object (untyped JS callers) would render `secretKeyRef:
90
+ // { name: undefined }` unless caught here.
91
+ if (value !== undefined && value !== null && !(0, s3_provider_1.isBucketElement)(value)) {
92
+ if (typeof value === 'object' && 'type' in value) {
93
+ throw new Error(`${component} "${name}": the objectStorage prop takes a <Bucket name="…" /> ` +
94
+ `descriptor or a config object — got another component`);
95
+ }
96
+ const store = value;
97
+ requireCompleteStore(component, name, store);
98
+ return value;
99
+ }
100
+ // 2. <Bucket/> descriptor — resolved against the surrounding provider.
101
+ // The consumer takes a bucket name, not the prefixed path the
102
+ // descriptor's `name` would produce (that is the logical scope only).
103
+ if ((0, s3_provider_1.isBucketElement)(value)) {
104
+ // resolveBucket already fails with actionable guidance when the store
105
+ // config is incomplete (no provider + partial overrides).
106
+ const resolved = (0, s3_provider_1.resolveBucket)(value, s3);
107
+ return {
108
+ endpoint: resolved.s3.endpoint,
109
+ bucket: resolved.s3.bucket,
110
+ credentialsSecret: resolved.s3.credentialsSecret,
111
+ ...(resolved.s3.region !== undefined && { region: resolved.s3.region }),
112
+ };
113
+ }
114
+ // 3. Omitted + S3Provider in scope → derive everything (region included
115
+ // when the provider declares one — keep every consumer signing
116
+ // against the same region).
117
+ if (s3) {
118
+ if (!s3.credentialsSecret) {
119
+ throw new Error(`${component} "${name}": the <S3Provider> has no credentialsSecret — ` +
120
+ `${what}.\n` +
121
+ `\n` +
122
+ `Fix: give the provider a credentials Secret (${exports.OBJECT_STORAGE_KEY_CONVENTIONS}):\n` +
123
+ ` <S3Provider provider={<MinIO endpoint="https://rustfs:9000" bucket="infra" credentialsSecret="infra-s3-creds" />}>\n` +
124
+ `\n` +
125
+ `or pass the Secret explicitly:\n` +
126
+ ` <${component} name="${name}" objectStorage={{ endpoint: '…', bucket: '…', credentialsSecret: 'object-store-credentials' }} />`);
127
+ }
128
+ return {
129
+ endpoint: s3.endpoint,
130
+ bucket: s3.bucket,
131
+ credentialsSecret: s3.credentialsSecret,
132
+ ...(s3.region !== undefined && { region: s3.region }),
133
+ };
134
+ }
135
+ // 4. Omitted + no provider → the actionable guidance
136
+ throw objectStorageRequiredError(component, name, what);
137
+ }
138
+ //# sourceMappingURL=object-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-storage.js","sourceRoot":"","sources":["../src/object-storage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"s3-provider.d.ts","sourceRoot":"","sources":["../src/s3-provider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAA;IAChB,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAA;IACd,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,MAAM,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ,CAEjD;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ,CAQjD;AAED,eAAO,MAAM,SAAS,2DAAuC,CAAA;AAE7D,4EAA4E;AAC5E,wBAAgB,KAAK,IAAI,QAAQ,GAAG,IAAI,CAEvC;AAED,MAAM,WAAW,eAAe;IAC9B;;;;;;;;OAQG;IACH,QAAQ,EAAE,QAAQ,CAAA;IAClB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,kCAoBhD;AAED,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAA;IACZ,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,QAOxC;AAED,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,EAAE,EAAE,QAAQ,CAAA;IACZ,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAA;IACd,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAA;CACb;AAED,+CAA+C;AAC/C,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,CAO/E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,EAC/B,EAAE,EAAE,QAAQ,GAAG,IAAI,GAClB,cAAc,CA+BhB"}
1
+ {"version":3,"file":"s3-provider.d.ts","sourceRoot":"","sources":["../src/s3-provider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAA;IAChB,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAA;IACd,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,MAAM,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ,CAEjD;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ,CAQjD;AAED,eAAO,MAAM,SAAS,2DAAuC,CAAA;AAE7D,4EAA4E;AAC5E,wBAAgB,KAAK,IAAI,QAAQ,GAAG,IAAI,CAEvC;AAED,MAAM,WAAW,eAAe;IAC9B;;;;;;;;OAQG;IACH,QAAQ,EAAE,QAAQ,CAAA;IAClB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,kCAoBhD;AAED,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAA;IACZ,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,QAUxC;AAED,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,EAAE,EAAE,QAAQ,CAAA;IACZ,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAA;IACd,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAA;CACb;AAED,+CAA+C;AAC/C,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,CAO/E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,EAC/B,EAAE,EAAE,QAAQ,GAAG,IAAI,GAClB,cAAc,CA6ChB"}
@@ -81,8 +81,11 @@ function S3Provider(props) {
81
81
  function Bucket(props) {
82
82
  // Descriptors are VALUES — the renderer only reaches this body if someone
83
83
  // renders <Bucket /> directly. Fail loudly instead of recursing.
84
- throw new Error('Bucket is a descriptor, not a renderable component — pass it to consumers:' +
85
- ` <Database backup={<Bucket name="${props?.name ?? '…'}" />} />`);
84
+ throw new Error('Bucket is a descriptor, not a renderable component — it is a value you\n' +
85
+ `pass into a consumer's bucket/backup prop.\n` +
86
+ `\n` +
87
+ `Fix: pass it to consumers instead of rendering it:\n` +
88
+ ` <Database name="…" backup={<Bucket name="${props?.name ?? '…'}" />} />`);
86
89
  }
87
90
  /** Element check for the Bucket descriptor. */
88
91
  function isBucketElement(value) {
@@ -107,9 +110,23 @@ function resolveBucket(element, s3) {
107
110
  ...(credentialsSecret !== undefined && { credentialsSecret }),
108
111
  };
109
112
  if (!effective.endpoint || !effective.bucket || !effective.credentialsSecret) {
110
- throw new Error(`Bucket "${name}" cannot resolve its store config:\n` +
113
+ throw new Error(`Bucket "${name}" cannot resolve its store config.\n` +
114
+ `Missing: ${[
115
+ !effective.endpoint && 'endpoint',
116
+ !effective.bucket && 'bucket',
117
+ !effective.credentialsSecret && 'credentialsSecret',
118
+ ]
119
+ .filter(Boolean)
120
+ .join(', ')}\n` +
121
+ `\n` +
122
+ `The descriptor has no full store config of its own and there is no\n` +
123
+ `<S3Provider> in scope to derive endpoint/credentials from.\n` +
124
+ `\n` +
125
+ `Fix: wrap the consumer in an <S3Provider> — endpoint/credentials derive from it:\n` +
126
+ ` <S3Provider provider={<MinIO endpoint="https://rustfs:9000" bucket="infra" credentialsSecret="infra-s3-creds" />}>\n` +
127
+ ` <Database name="…" backup={<Bucket name="${name}" />} /> (or the consumer's bucket/objectStorage prop)\n` +
128
+ ` </S3Provider>\n` +
111
129
  `\n` +
112
- `Wrap the consumer in an <S3Provider> (endpoint/credentials derive from it)\n` +
113
130
  `or give the descriptor the full config:\n` +
114
131
  ` <Bucket name="${name}" bucket="…" endpoint="https://…" credentialsSecret="…" />`);
115
132
  }
@@ -1 +1 @@
1
- {"version":3,"file":"s3-provider.js","sourceRoot":"","sources":["../src/s3-provider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"s3-provider.js","sourceRoot":"","sources":["../src/s3-provider.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@r8s/recipes",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "description": "Pre-built Kubernetes component recipes for r8s",
5
5
  "license": "MIT",
6
6
  "author": "Berget AI AB",