@r8s/recipes 0.2.0 → 0.3.0

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.
Files changed (69) hide show
  1. package/dist/app.d.ts +1 -1
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js +4 -8
  4. package/dist/app.js.map +1 -1
  5. package/dist/auth.d.ts.map +1 -1
  6. package/dist/auth.js +54 -94
  7. package/dist/auth.js.map +1 -1
  8. package/dist/backup.d.ts +18 -2
  9. package/dist/backup.d.ts.map +1 -1
  10. package/dist/backup.js +54 -6
  11. package/dist/backup.js.map +1 -1
  12. package/dist/cert-provider.d.ts.map +1 -1
  13. package/dist/cert-provider.js +2 -5
  14. package/dist/cert-provider.js.map +1 -1
  15. package/dist/database.d.ts +55 -13
  16. package/dist/database.d.ts.map +1 -1
  17. package/dist/database.js +135 -58
  18. package/dist/database.js.map +1 -1
  19. package/dist/dns-provider.d.ts.map +1 -1
  20. package/dist/dns-provider.js +2 -5
  21. package/dist/dns-provider.js.map +1 -1
  22. package/dist/endpoint.d.ts +1 -1
  23. package/dist/endpoint.d.ts.map +1 -1
  24. package/dist/endpoint.js +31 -23
  25. package/dist/endpoint.js.map +1 -1
  26. package/dist/errors.d.ts +16 -0
  27. package/dist/errors.d.ts.map +1 -0
  28. package/dist/errors.js +19 -0
  29. package/dist/errors.js.map +1 -0
  30. package/dist/index.d.ts +5 -2
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +18 -5
  33. package/dist/index.js.map +1 -1
  34. package/dist/monitoring.d.ts.map +1 -1
  35. package/dist/monitoring.js +6 -13
  36. package/dist/monitoring.js.map +1 -1
  37. package/dist/platform.d.ts +3 -2
  38. package/dist/platform.d.ts.map +1 -1
  39. package/dist/platform.js +3 -2
  40. package/dist/platform.js.map +1 -1
  41. package/dist/r8s-cluster.d.ts +1 -1
  42. package/dist/r8s-cluster.d.ts.map +1 -1
  43. package/dist/r8s-cluster.js +25 -16
  44. package/dist/r8s-cluster.js.map +1 -1
  45. package/dist/s3-provider.d.ts +151 -0
  46. package/dist/s3-provider.d.ts.map +1 -0
  47. package/dist/s3-provider.js +126 -0
  48. package/dist/s3-provider.js.map +1 -0
  49. package/dist/secret-provider.d.ts +16 -7
  50. package/dist/secret-provider.d.ts.map +1 -1
  51. package/dist/secret-provider.js +80 -9
  52. package/dist/secret-provider.js.map +1 -1
  53. package/dist/static-secret.d.ts +107 -0
  54. package/dist/static-secret.d.ts.map +1 -0
  55. package/dist/static-secret.js +87 -0
  56. package/dist/static-secret.js.map +1 -0
  57. package/dist/use-operators.d.ts +7 -0
  58. package/dist/use-operators.d.ts.map +1 -0
  59. package/dist/use-operators.js +13 -0
  60. package/dist/use-operators.js.map +1 -0
  61. package/dist/web-service.d.ts +10 -2
  62. package/dist/web-service.d.ts.map +1 -1
  63. package/dist/web-service.js +54 -14
  64. package/dist/web-service.js.map +1 -1
  65. package/package.json +30 -5
  66. package/dist/operators.d.ts +0 -19
  67. package/dist/operators.d.ts.map +0 -1
  68. package/dist/operators.js +0 -30
  69. package/dist/operators.js.map +0 -1
package/dist/app.d.ts CHANGED
@@ -89,7 +89,7 @@ export interface AppProps {
89
89
  *
90
90
  * export default (
91
91
  * <>
92
- * <Database name="myapp-db" storage="20Gi" />
92
+ * <Database backup={false} name="myapp-db" storage="20Gi" />
93
93
  * <App
94
94
  * name="myapp"
95
95
  * image="myapp/web:v1.2.3"
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAG/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAI/C,MAAM,WAAW,QAAQ;IACvB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAA;IACb,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;4FACwF;IACxF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8CAA8C;IAC9C,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,CAAA;IAC5C,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACtC,2DAA2D;IAC3D,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;QAC5C,MAAM,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAC3C,CAAA;IACD,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,2DAA2D;IAC3D,GAAG,CAAC,EAAE,OAAO,CAAA;IACb;;;OAGG;IACH,aAAa,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACpD,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,kCA4FlC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAG/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAI/C,MAAM,WAAW,QAAQ;IACvB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAA;IACb,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;4FACwF;IACxF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8CAA8C;IAC9C,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,CAAA;IAC5C,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACtC,2DAA2D;IAC3D,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;QAC5C,MAAM,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAC3C,CAAA;IACD,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,2DAA2D;IAC3D,GAAG,CAAC,EAAE,OAAO,CAAA;IACb;;;OAGG;IACH,aAAa,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACpD,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,kCAuFlC"}
package/dist/app.js CHANGED
@@ -5,7 +5,7 @@ const core_1 = require("@r8s/core");
5
5
  const web_service_1 = require("./web-service");
6
6
  const endpoint_1 = require("./endpoint");
7
7
  const defaults_1 = require("@r8s/core/defaults");
8
- const crds_1 = require("@r8s/crds");
8
+ const operator_redis_1 = require("@r8s/operator-redis");
9
9
  const redis_1 = require("@r8s/crds/redis");
10
10
  /**
11
11
  * Simple application — Deployment + Service + Endpoint.
@@ -48,7 +48,7 @@ const redis_1 = require("@r8s/crds/redis");
48
48
  *
49
49
  * export default (
50
50
  * <>
51
- * <Database name="myapp-db" storage="20Gi" />
51
+ * <Database backup={false} name="myapp-db" storage="20Gi" />
52
52
  * <App
53
53
  * name="myapp"
54
54
  * image="myapp/web:v1.2.3"
@@ -61,8 +61,7 @@ const redis_1 = require("@r8s/crds/redis");
61
61
  function App(props) {
62
62
  const { name, namespace: namespaceProp, image, port = 3000, replicas = 2, host, tls, env = {}, secrets = {}, vault = {}, resources, cache = false, dns, sharedGateway, children, } = props;
63
63
  // Inherit namespace from <Platform> context if not explicitly set
64
- const contextNamespace = (0, core_1.useContext)(defaults_1.Namespace);
65
- const namespace = namespaceProp ?? (contextNamespace !== 'default' ? contextNamespace : undefined) ?? 'default';
64
+ const namespace = (0, defaults_1.useNamespace)(namespaceProp);
66
65
  const elements = [];
67
66
  elements.push((0, core_1.jsx)(web_service_1.WebService, {
68
67
  name,
@@ -91,10 +90,7 @@ function App(props) {
91
90
  // Redis cache
92
91
  if (cache) {
93
92
  const sharedOperators = (0, core_1.useContext)(defaults_1.OperatorContext);
94
- const hasRedis = sharedOperators.some((op) => op.name === 'redis-operator');
95
- if (!hasRedis) {
96
- elements.push((0, core_1.declareOperator)(crds_1.operators['redis-operator']()));
97
- }
93
+ elements.push(...(0, operator_redis_1.declareIfMissing)(sharedOperators));
98
94
  elements.push((0, redis_1.RedisClusterComponent)({
99
95
  metadata: { name: `${name}-cache`, namespace },
100
96
  spec: {
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":";;AAmGA,kBAuFC;AA1LD,oCAAsE;AACtE,+CAA+E;AAC/E,yCAAqC;AACrC,iDAAkE;AAElE,wDAAsD;AACtD,2CAAuD;AA0CvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,SAAgB,GAAG,CAAC,KAAe;IACjC,MAAM,EACJ,IAAI,EACJ,SAAS,EAAE,aAAa,EACxB,KAAK,EACL,IAAI,GAAG,IAAI,EACX,QAAQ,GAAG,CAAC,EACZ,IAAI,EACJ,GAAG,EACH,GAAG,GAAG,EAAE,EACR,OAAO,GAAG,EAAE,EACZ,KAAK,GAAG,EAAE,EACV,SAAS,EACT,KAAK,GAAG,KAAK,EACb,GAAG,EACH,aAAa,EACb,QAAQ,GACT,GAAG,KAAK,CAAA;IAET,kEAAkE;IAClE,MAAM,SAAS,GAAG,IAAA,uBAAY,EAAC,aAAa,CAAC,CAAA;IAE7C,MAAM,QAAQ,GAA6B,EAAE,CAAA;IAE7C,QAAQ,CAAC,IAAI,CACX,IAAA,UAAG,EAAC,wBAAU,EAAE;QACd,IAAI;QACJ,SAAS;QACT,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,GAAG;QACH,OAAO;QACP,KAAK;QACL,SAAS;KACV,CAAC,CACH,CAAA;IAED,2CAA2C;IAC3C,IAAI,IAAI,EAAE,CAAC;QACT,QAAQ,CAAC,IAAI,CACX,IAAA,UAAG,EAAC,mBAAQ,EAAE;YACZ,IAAI,EAAE,GAAG,IAAI,WAAW;YACxB,SAAS;YACT,IAAI;YACJ,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,EAAE;YACf,GAAG;YACH,GAAG;YACH,GAAG,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC;SACxC,CAAC,CACH,CAAA;IACH,CAAC;IAED,cAAc;IACd,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,eAAe,GAAG,IAAA,iBAAU,EAAC,0BAAe,CAAC,CAAA;QACnD,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAA,iCAAgB,EAAC,eAAe,CAAC,CAAC,CAAA;QACnD,QAAQ,CAAC,IAAI,CACX,IAAA,6BAAqB,EAAC;YACpB,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,QAAQ,EAAE,SAAS,EAAE;YAC9C,IAAI,EAAE;gBACJ,WAAW,EAAE,CAAC;gBACd,gBAAgB,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE;gBAC/C,OAAO,EAAE;oBACP,mBAAmB,EAAE;wBACnB,IAAI,EAAE;4BACJ,WAAW,EAAE,CAAC,eAAe,CAAC;4BAC9B,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;yBAC5C;qBACF;iBACF;aACF;SACF,CAAC,CACH,CAAA;QACD,8BAA8B;QAC9B,GAAG,CAAC,SAAS,GAAG,WAAW,IAAI,iBAAiB,SAAS,yBAAyB,CAAA;IACpF,CAAC;IAED,oEAAoE;IACpE,sEAAsE;IACtE,0DAA0D;IAC1D,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC,IAAA,UAAG,EAAC,eAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,OAAO,IAAA,UAAG,EAAC,eAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;AAC9C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.tsx"],"names":[],"mappings":"AAKA,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,kCAmHpC"}
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"}
package/dist/auth.js CHANGED
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Auth = Auth;
4
4
  const core_1 = require("@r8s/core");
5
5
  const defaults_1 = require("@r8s/core/defaults");
6
- const crds_1 = require("@r8s/crds");
6
+ const operator_keycloak_1 = require("@r8s/operator-keycloak");
7
+ const operator_cnpg_1 = require("@r8s/operator-cnpg");
7
8
  const database_1 = require("./database");
8
9
  const endpoint_1 = require("./endpoint");
9
10
  const components_1 = require("./auth/components");
@@ -83,22 +84,16 @@ const components_1 = require("./auth/components");
83
84
  function Auth(props) {
84
85
  const { name, host, namespace: namespaceProp, instances = 1, storage = '10Gi', tls, children, } = props;
85
86
  // Inherit namespace from <Platform> context if not explicitly set
86
- const contextNamespace = (0, core_1.useContext)(defaults_1.Namespace);
87
- const namespace = namespaceProp ?? (contextNamespace !== 'default' ? contextNamespace : undefined) ?? 'default';
87
+ const namespace = (0, defaults_1.useNamespace)(namespaceProp);
88
88
  const sharedOperators = (0, core_1.useContext)(defaults_1.OperatorContext);
89
- const hasKeycloak = sharedOperators.some((op) => op.name === 'keycloak-operator');
90
- const hasCNPG = sharedOperators.some((op) => op.name === 'cnpg');
91
89
  const resources = [];
92
- // Declare operators if not already provided
93
- if (!hasKeycloak) {
94
- resources.push((0, core_1.declareOperator)(crds_1.operators['keycloak-operator']()));
95
- }
96
- if (!hasCNPG) {
97
- resources.push((0, core_1.declareOperator)(crds_1.operators['cnpg']()));
98
- }
90
+ // Declare operators if not already provided — via the operator-package contracts
91
+ resources.push(...(0, operator_keycloak_1.declareIfMissing)(sharedOperators));
92
+ resources.push(...(0, operator_cnpg_1.declareCnpg)(sharedOperators));
99
93
  // Database for Keycloak — auto-wired via DatabaseContext.
100
94
  // Credentials are managed by the secrets backend configured on the Platform.
101
95
  resources.push((0, core_1.jsx)(database_1.Database, {
96
+ backup: false,
102
97
  name: `${name}-db`,
103
98
  namespace,
104
99
  storage,
@@ -173,99 +168,64 @@ function Auth(props) {
173
168
  }
174
169
  return (0, core_1.jsx)(core_1.Fragment, { children: resources });
175
170
  }
171
+ /** Normalize JSX children into an array. */
172
+ function childrenOf(children) {
173
+ if (!children)
174
+ return [];
175
+ return Array.isArray(children) ? children : [children];
176
+ }
177
+ /** JSX element check — matches the component function reference. */
178
+ function isElement(child, type) {
179
+ return !!child && typeof child === 'object' && child.type === type;
180
+ }
181
+ function realmConfigFrom(child) {
182
+ const realmProps = child.props;
183
+ // Merge identity providers from both prop and child components
184
+ const identityProviders = [
185
+ ...(realmProps.identityProviders ?? []),
186
+ ...collectIdentityProviders(realmProps.children),
187
+ ];
188
+ const clients = collectClients(realmProps.children);
189
+ return {
190
+ id: realmProps.id,
191
+ displayName: realmProps.displayName,
192
+ enabled: realmProps.enabled,
193
+ identityProviders,
194
+ clients,
195
+ };
196
+ }
176
197
  /** Collect Realm configurations from children */
177
198
  function collectRealms(children) {
178
- const realms = [];
179
- if (!children)
180
- return realms;
181
- const childArray = Array.isArray(children) ? children : [children];
182
- for (const child of childArray) {
183
- if (child && typeof child === 'object' && 'type' in child) {
184
- if (child.type === components_1.Realms) {
185
- const realmsProps = child.props;
186
- const realmChildren = Array.isArray(realmsProps.children)
187
- ? realmsProps.children
188
- : [realmsProps.children];
189
- for (const realmChild of realmChildren) {
190
- if (realmChild &&
191
- typeof realmChild === 'object' &&
192
- 'type' in realmChild &&
193
- realmChild.type === components_1.Realm) {
194
- const realmProps = realmChild.props;
195
- const clients = collectClients(realmProps.children);
196
- // Merge identity providers from both prop and child components
197
- const identityProviders = [
198
- ...(realmProps.identityProviders ?? []),
199
- ...collectIdentityProviders(realmProps.children),
200
- ];
201
- realms.push({
202
- id: realmProps.id,
203
- displayName: realmProps.displayName,
204
- enabled: realmProps.enabled,
205
- identityProviders,
206
- clients,
207
- });
208
- }
209
- }
210
- }
211
- else if (child.type === components_1.Realm) {
212
- const realmProps = child.props;
213
- const clients = collectClients(realmProps.children);
214
- // Merge identity providers from both prop and child components
215
- const identityProviders = [
216
- ...(realmProps.identityProviders ?? []),
217
- ...collectIdentityProviders(realmProps.children),
218
- ];
219
- realms.push({
220
- id: realmProps.id,
221
- displayName: realmProps.displayName,
222
- enabled: realmProps.enabled,
223
- identityProviders,
224
- clients,
225
- });
226
- }
199
+ return childrenOf(children).flatMap((child) => {
200
+ if (isElement(child, components_1.Realms)) {
201
+ return childrenOf(child.props.children)
202
+ .filter((realmChild) => isElement(realmChild, components_1.Realm))
203
+ .map(realmConfigFrom);
227
204
  }
228
- }
229
- return realms;
205
+ if (isElement(child, components_1.Realm))
206
+ return [realmConfigFrom(child)];
207
+ return [];
208
+ });
230
209
  }
231
210
  /** Collect Client configurations from children */
232
211
  function collectClients(children) {
233
- const clients = [];
234
- if (!children)
235
- return clients;
236
- const childArray = Array.isArray(children) ? children : [children];
237
- for (const child of childArray) {
238
- if (child && typeof child === 'object' && 'type' in child) {
239
- if (child.type === components_1.Clients) {
240
- const clientsProps = child.props;
241
- const clientChildren = Array.isArray(clientsProps.children)
242
- ? clientsProps.children
243
- : [clientsProps.children];
244
- for (const clientChild of clientChildren) {
245
- if (clientChild &&
246
- typeof clientChild === 'object' &&
247
- 'type' in clientChild &&
248
- clientChild.type === components_1.Client) {
249
- clients.push(clientChild.props);
250
- }
251
- }
252
- }
253
- else if (child.type === components_1.Client) {
254
- clients.push(child.props);
255
- }
212
+ return childrenOf(children).flatMap((child) => {
213
+ if (isElement(child, components_1.Clients)) {
214
+ return childrenOf(child.props.children)
215
+ .filter((clientChild) => isElement(clientChild, components_1.Client))
216
+ .map((clientChild) => clientChild.props);
256
217
  }
257
- }
258
- return clients;
218
+ if (isElement(child, components_1.Client))
219
+ return [child.props];
220
+ return [];
221
+ });
259
222
  }
260
223
  /** Collect IdentityProvider configurations from children */
261
224
  function collectIdentityProviders(children) {
262
225
  const identityProviders = [];
263
- if (!children)
264
- return identityProviders;
265
- const childArray = Array.isArray(children) ? children : [children];
266
- for (const child of childArray) {
267
- if (child && typeof child === 'object' && 'type' in child) {
268
- if (child.type === components_1.EntraID) {
226
+ for (const child of childrenOf(children)) {
227
+ if (typeof child === 'object' && child !== null) {
228
+ if (isElement(child, components_1.EntraID)) {
269
229
  const entraProps = child.props;
270
230
  identityProviders.push({
271
231
  alias: 'entra-id',
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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"}
package/dist/backup.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { r8sElement } from '@r8s/core';
1
2
  export interface BackupProps {
2
3
  /** Resource name */
3
4
  name: string;
@@ -7,8 +8,23 @@ export interface BackupProps {
7
8
  schedule?: string;
8
9
  /** Namespaces to include in backups (defaults to the current namespace) */
9
10
  namespaces?: string[];
10
- /** Velero storage location name (defaults to 'default') */
11
+ /**
12
+ * Velero storage location name. With an S3 provider on the Platform this
13
+ * defaults to this component's name (the emitted BackupStorageLocation);
14
+ * without one, 'default' (an externally-managed location must exist).
15
+ */
11
16
  storageLocation?: string;
17
+ /**
18
+ * <Bucket name="…"/> descriptor element — scopes the BackupStorageLocation
19
+ * to that prefix (`<name>/velero`) of the surrounding provider's bucket.
20
+ */
21
+ bucket?: r8sElement;
22
+ /**
23
+ * Key inside the store's credentials Secret holding a velero-format
24
+ * cloud credentials file (`[default] aws_access_key_id = …`). Omit on
25
+ * workload-identity / IRSA clusters.
26
+ */
27
+ credentialKey?: string;
12
28
  /** Backup retention (e.g., '720h' for 30 days) */
13
29
  ttl?: string;
14
30
  }
@@ -41,5 +57,5 @@ export interface BackupProps {
41
57
  * />
42
58
  * )
43
59
  */
44
- export declare function Backup(props: BackupProps): import("@r8s/core").r8sElement;
60
+ export declare function Backup(props: BackupProps): r8sElement;
45
61
  //# sourceMappingURL=backup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../src/backup.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,kCAoCxC"}
1
+ {"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../src/backup.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,WAAW,WAAW;IAC1B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB;;;;OAIG;IAEH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,cA4FxC"}
package/dist/backup.js CHANGED
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Backup = Backup;
4
4
  const core_1 = require("@r8s/core");
5
5
  const defaults_1 = require("@r8s/core/defaults");
6
- const crds_1 = require("@r8s/crds");
6
+ const operator_velero_1 = require("@r8s/operator-velero");
7
+ const s3_provider_1 = require("./s3-provider");
7
8
  /**
8
9
  * Backup — scheduled cluster backups with Velero.
9
10
  *
@@ -34,12 +35,59 @@ const crds_1 = require("@r8s/crds");
34
35
  * )
35
36
  */
36
37
  function Backup(props) {
37
- const { name, namespace = 'default', schedule = '0 2 * * *', namespaces, storageLocation = 'default', ttl = '720h', } = props;
38
+ const { name, namespace = 'default', schedule = '0 2 * * *', namespaces, storageLocation, bucket: bucketProp, credentialKey: credentialKeyProp, ttl = '720h', } = props;
38
39
  const sharedOperators = (0, core_1.useContext)(defaults_1.OperatorContext);
39
- const hasVelero = sharedOperators.some((op) => op.name === 'velero');
40
+ const s3 = (0, s3_provider_1.useS3)();
41
+ let bucketDesc;
42
+ if (bucketProp) {
43
+ if (!(0, s3_provider_1.isBucketElement)(bucketProp)) {
44
+ throw new Error('Backup "bucket" prop takes a <Bucket name="…" /> descriptor — got ' +
45
+ (typeof bucketProp === 'object' ? 'another element/object' : `a ${typeof bucketProp}`));
46
+ }
47
+ bucketDesc = (0, s3_provider_1.resolveBucket)(bucketProp, s3);
48
+ }
49
+ if (storageLocation && (bucketProp || credentialKeyProp)) {
50
+ throw new Error(`<Backup "${name}">: storageLocation points at an externally-managed
51
+ ` +
52
+ `BackupStorageLocation — bucket/credentialKey would be ignored.\n` +
53
+ `\n` +
54
+ `Remove storageLocation to target the platform S3 store, or drop\n` +
55
+ `bucket/credentialKey to keep the external location.`);
56
+ }
57
+ const storeS3 = bucketDesc ? bucketDesc.s3 : s3;
58
+ const storePrefix = bucketDesc ? bucketDesc.prefix : undefined;
40
59
  const resources = [];
41
- if (!hasVelero) {
42
- resources.push((0, core_1.declareOperator)(crds_1.operators['velero']()));
60
+ resources.push(...(0, operator_velero_1.declareIfMissing)(sharedOperators));
61
+ // S3 provider: emit the BackupStorageLocation against the 'velero/'
62
+ // prefix of the platform bucket and point the schedule at it. Without a
63
+ // provider the schedule references 'default' — a storage location the
64
+ // cluster is expected to manage itself.
65
+ const locationName = storeS3 && !storageLocation ? name : (storageLocation ?? 'default');
66
+ if (storeS3 && !storageLocation) {
67
+ resources.push((0, core_1.jsx)('BackupStorageLocation', {
68
+ apiVersion: 'velero.io/v1',
69
+ kind: 'BackupStorageLocation',
70
+ metadata: { name, namespace: 'velero' },
71
+ spec: {
72
+ // no `default: true` — two <Backup> components must not fight over
73
+ // it; each Schedule pins its storageLocation explicitly
74
+ provider: 'aws',
75
+ objectStorage: {
76
+ bucket: storeS3.bucket,
77
+ prefix: storePrefix ? `${storePrefix}/velero` : 'velero',
78
+ },
79
+ config: {
80
+ region: storeS3.region ?? 'us-east-1',
81
+ ...(storeS3.forcePathStyle !== false && { s3ForcePathStyle: 'true' }),
82
+ s3Url: storeS3.endpoint,
83
+ },
84
+ // Velero owns how it reads the credential — its key inside the
85
+ // store's Secret. Omit on workload-identity/IRSA clusters.
86
+ ...(credentialKeyProp && {
87
+ credential: { name: storeS3.credentialsSecret, key: credentialKeyProp },
88
+ }),
89
+ },
90
+ }));
43
91
  }
44
92
  resources.push((0, core_1.jsx)('Schedule', {
45
93
  apiVersion: 'velero.io/v1',
@@ -49,7 +97,7 @@ function Backup(props) {
49
97
  schedule,
50
98
  template: {
51
99
  includedNamespaces: namespaces ?? [namespace],
52
- storageLocation,
100
+ storageLocation: locationName,
53
101
  ttl,
54
102
  },
55
103
  },
@@ -1 +1 @@
1
- {"version":3,"file":"backup.js","sourceRoot":"","sources":["../src/backup.tsx"],"names":[],"mappings":";;AAgDA,wBAoCC;AApFD,oCAAsE;AACtE,iDAAoD;AACpD,oCAAqC;AAiBrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,SAAgB,MAAM,CAAC,KAAkB;IACvC,MAAM,EACJ,IAAI,EACJ,SAAS,GAAG,SAAS,EACrB,QAAQ,GAAG,WAAW,EACtB,UAAU,EACV,eAAe,GAAG,SAAS,EAC3B,GAAG,GAAG,MAAM,GACb,GAAG,KAAK,CAAA;IAET,MAAM,eAAe,GAAG,IAAA,iBAAU,EAAC,0BAAe,CAAC,CAAA;IACnD,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;IAEpE,MAAM,SAAS,GAA6B,EAAE,CAAA;IAE9C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,CAAC,IAAI,CAAC,IAAA,sBAAe,EAAC,gBAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;IACxD,CAAC;IAED,SAAS,CAAC,IAAI,CACZ,IAAA,UAAG,EAAC,UAAU,EAAE;QACd,UAAU,EAAE,cAAc;QAC1B,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE;QACvC,IAAI,EAAE;YACJ,QAAQ;YACR,QAAQ,EAAE;gBACR,kBAAkB,EAAE,UAAU,IAAI,CAAC,SAAS,CAAC;gBAC7C,eAAe;gBACf,GAAG;aACJ;SACF;KACF,CAAC,CACH,CAAA;IAED,OAAO,IAAA,UAAG,EAAC,eAAQ,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;AAC/C,CAAC"}
1
+ {"version":3,"file":"backup.js","sourceRoot":"","sources":["../src/backup.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cert-provider.d.ts","sourceRoot":"","sources":["../src/cert-provider.tsx"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAS/D;AAED,yCAAyC;AACzC,MAAM,WAAW,UAAU;IACzB,gCAAgC;IAChC,QAAQ,EAAE,cAAc,CAAA;IACxB,iCAAiC;IACjC,QAAQ,EAAE;QACR,4BAA4B;QAC5B,aAAa,EAAE,MAAM,CAAA;QACrB,mCAAmC;QACnC,QAAQ,EAAE,MAAM,CAAA;QAChB,kCAAkC;QAClC,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;CACF;AAED,gDAAgD;AAChD,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG,UAAU,CAAA;AAE3D,eAAO,MAAM,WAAW,6DAAyC,CAAA;AAEjE,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;OAUG;IACH,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,kCA6BpD"}
1
+ {"version":3,"file":"cert-provider.d.ts","sourceRoot":"","sources":["../src/cert-provider.tsx"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAS/D;AAED,yCAAyC;AACzC,MAAM,WAAW,UAAU;IACzB,gCAAgC;IAChC,QAAQ,EAAE,cAAc,CAAA;IACxB,iCAAiC;IACjC,QAAQ,EAAE;QACR,4BAA4B;QAC5B,aAAa,EAAE,MAAM,CAAA;QACrB,mCAAmC;QACnC,QAAQ,EAAE,MAAM,CAAA;QAChB,kCAAkC;QAClC,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;CACF;AAED,gDAAgD;AAChD,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG,UAAU,CAAA;AAE3D,eAAO,MAAM,WAAW,6DAAyC,CAAA;AAEjE,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;OAUG;IACH,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,kCA0BpD"}
@@ -6,7 +6,7 @@ exports.CertProvider = CertProvider;
6
6
  const core_1 = require("@r8s/core");
7
7
  const defaults_1 = require("@r8s/core/defaults");
8
8
  const defaults_2 = require("@r8s/core/defaults");
9
- const crds_1 = require("@r8s/crds");
9
+ const operator_cert_manager_1 = require("@r8s/operator-cert-manager");
10
10
  function CertManager(props) {
11
11
  return {
12
12
  provider: 'cert-manager',
@@ -60,10 +60,7 @@ function CertProvider(props) {
60
60
  : provider;
61
61
  const resources = [];
62
62
  // Declare cert-manager operator
63
- const hasCertManager = sharedOperators.some((op) => op.name === 'cert-manager');
64
- if (!hasCertManager) {
65
- resources.push((0, core_1.declareOperator)(crds_1.operators['cert-manager']()));
66
- }
63
+ resources.push(...(0, operator_cert_manager_1.declareIfMissing)(sharedOperators));
67
64
  return (0, core_1.jsx)(core_1.Fragment, {
68
65
  children: [...resources, (0, core_1.jsx)(exports.CertContext.Provider, { value: config, children })],
69
66
  });
@@ -1 +1 @@
1
- {"version":3,"file":"cert-provider.js","sourceRoot":"","sources":["../src/cert-provider.tsx"],"names":[],"mappings":";;;AAsBA,kCASC;AAiED,oCA6BC;AA7HD,oCAAsE;AACtE,iDAAkD;AAClD,iDAAoD;AACpD,oCAAqC;AAmBrC,SAAgB,WAAW,CAAC,KAAuB;IACjD,OAAO;QACL,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE;YACR,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,kBAAkB;YACxD,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,OAAO;YACnC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,MAAM;SACzC;KACF,CAAA;AACH,CAAC;AAoBY,QAAA,WAAW,GAAG,IAAA,wBAAa,EAAoB,IAAI,CAAC,CAAA;AAmBjE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;IAEpC,MAAM,eAAe,GAAG,IAAA,iBAAU,EAAC,0BAAe,CAAC,CAAA;IAEnD,0BAA0B;IAC1B,MAAM,MAAM,GACV,OAAO,QAAQ,KAAK,QAAQ;QAC1B,CAAC,CAAC;YACE,QAAQ;YACR,QAAQ,EAAE;gBACR,aAAa,EAAE,kBAAkB;gBACjC,QAAQ,EAAE,OAAO;gBACjB,WAAW,EAAE,MAAM;aACpB;SACF;QACH,CAAC,CAAC,QAAQ,CAAA;IAEd,MAAM,SAAS,GAA6B,EAAE,CAAA;IAE9C,gCAAgC;IAChC,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,cAAc,CAAC,CAAA;IAC/E,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,SAAS,CAAC,IAAI,CAAC,IAAA,sBAAe,EAAC,gBAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO,IAAA,UAAG,EAAC,eAAQ,EAAE;QACnB,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,IAAA,UAAG,EAAC,mBAAW,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;KACjF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"cert-provider.js","sourceRoot":"","sources":["../src/cert-provider.tsx"],"names":[],"mappings":";;;AAsBA,kCASC;AAiED,oCA0BC;AA1HD,oCAAsE;AACtE,iDAAkD;AAClD,iDAAoD;AACpD,sEAA6D;AAmB7D,SAAgB,WAAW,CAAC,KAAuB;IACjD,OAAO;QACL,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE;YACR,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,kBAAkB;YACxD,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,OAAO;YACnC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,MAAM;SACzC;KACF,CAAA;AACH,CAAC;AAoBY,QAAA,WAAW,GAAG,IAAA,wBAAa,EAAoB,IAAI,CAAC,CAAA;AAmBjE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;IAEpC,MAAM,eAAe,GAAG,IAAA,iBAAU,EAAC,0BAAe,CAAC,CAAA;IAEnD,0BAA0B;IAC1B,MAAM,MAAM,GACV,OAAO,QAAQ,KAAK,QAAQ;QAC1B,CAAC,CAAC;YACE,QAAQ;YACR,QAAQ,EAAE;gBACR,aAAa,EAAE,kBAAkB;gBACjC,QAAQ,EAAE,OAAO;gBACjB,WAAW,EAAE,MAAM;aACpB;SACF;QACH,CAAC,CAAC,QAAQ,CAAA;IAEd,MAAM,SAAS,GAA6B,EAAE,CAAA;IAE9C,gCAAgC;IAChC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAA,wCAAgB,EAAC,eAAe,CAAC,CAAC,CAAA;IAEpD,OAAO,IAAA,UAAG,EAAC,eAAQ,EAAE;QACnB,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,IAAA,UAAG,EAAC,mBAAW,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;KACjF,CAAC,CAAA;AACJ,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { type BucketProps } from './s3-provider';
1
2
  /**
2
3
  * Continuous + scheduled backup configuration for a dedicated CNPG cluster.
3
4
  * Renders `spec.backup.barmanObjectStore` on the Cluster plus a
@@ -5,16 +6,16 @@
5
6
  * unless this prop is set.
6
7
  */
7
8
  export interface DatabaseBackupProps {
8
- /** S3 destination path, e.g. 's3://backups/myapp-cnpg' */
9
- destinationPath: string;
10
- /** S3 endpoint URL, e.g. 'https://s3.example.com' (RustFS/Scaleway/…) */
11
- endpointURL: string;
9
+ /** S3 destination path, e.g. 's3://backups/myapp-cnpg'. Derived from the S3 provider as `s3://<bucket>/<name>-cnpg` when omitted. */
10
+ destinationPath?: string;
11
+ /** S3 endpoint URL, e.g. 'https://s3.example.com' (RustFS/Scaleway/…). Derived from the S3 provider when omitted. */
12
+ endpointURL?: string;
12
13
  /**
13
14
  * Name of an existing Secret holding the S3 credentials with CNPG keys
14
- * `access-key-id` and `secret-access-key`. When omitted, the Platform
15
- * secrets backend (openbao/vault) provisions `<name>-backup-credentials`
16
- * from `<path>/<name>-s3-credentials` — the backend entry must contain
17
- * the same kebab-case keys. Without backend or secret this throws.
15
+ * `access-key-id` and `secret-access-key`. Resolution order: this prop →
16
+ * the S3 provider's credentialsSecret → the Platform secrets backend
17
+ * provisioner (`<name>-backup-credentials` from
18
+ * `<path>/<name>-s3-credentials`). Without any of the three this throws.
18
19
  */
19
20
  credentialsSecret?: string;
20
21
  /** Retention policy for barman backups (default: '30d') */
@@ -33,6 +34,14 @@ export interface DatabaseProps {
33
34
  namespace?: string;
34
35
  /** Number of CNPG instances in the dedicated cluster (defaults to 3) */
35
36
  instances?: number;
37
+ /**
38
+ * Bootstrap database name (defaults to `name`) — for apps whose schema
39
+ * lives in a database named differently from the cluster resource
40
+ * (e.g. cluster 'harbor-db', database 'registry').
41
+ */
42
+ database?: string;
43
+ /** Bootstrap owner role (defaults to `name`; pairs with `database`) */
44
+ owner?: string;
36
45
  /** Storage size (e.g., '10Gi') for the dedicated cluster data volume */
37
46
  storage?: string;
38
47
  /** Storage class name for the data volume (defaults to cluster default) */
@@ -41,9 +50,15 @@ export interface DatabaseProps {
41
50
  parameters?: Record<string, string>;
42
51
  /**
43
52
  * Continuous barman backup to S3 object storage + ScheduledBackup.
44
- * Explicit opt-in.
53
+ * REQUIRED decision point: omit → renderer throws with guidance.
54
+ * `false` → cluster without barman (forks, ephemeral CI).
55
+ * `true`/object → barman WAL + scheduled backups; target and credentials
56
+ * derive from the Platform's S3 provider, explicit object values win.
45
57
  */
46
- backup?: DatabaseBackupProps;
58
+ backup: DatabaseBackupProps | true | false | {
59
+ type: unknown;
60
+ props: BucketProps;
61
+ };
47
62
  /**
48
63
  * Workloads that consume the database credentials. Rendered as
49
64
  * `rolloutRestartTargets` on the generated VaultStaticSecret/
@@ -63,6 +78,15 @@ export interface DatabaseProps {
63
78
  * creating roles or extensions. Parameterized by the CNPG operator.
64
79
  */
65
80
  postInitSQL?: string[];
81
+ /**
82
+ * Where database credentials come from. Default `'backend'`: when a
83
+ * secrets backend is configured on the Platform, the credentials secret
84
+ * is provisioned through it (rotation → pod restarts). `'cnpg'` forces
85
+ * CNPG-managed bootstrap credentials **even with a backend** — the
86
+ * operator generates the secret in-cluster (incl. `fqdn-uri`), matching
87
+ * apps that reference the CNPG-generated secret directly.
88
+ */
89
+ credentialsMode?: 'backend' | 'cnpg';
66
90
  /** Child components rendered with this database's connection info in context */
67
91
  children?: unknown;
68
92
  }
@@ -73,7 +97,7 @@ export interface DatabaseProps {
73
97
  * @category Data & Analytics
74
98
  *
75
99
  * Creates a dedicated 3-instance HA CloudNativePG cluster for this database.
76
- * When wrapped in a `<Database>` component, child components receive the
100
+ * When wrapped in a `<Database backup={false}>` component, child components receive the
77
101
  * connection info via DatabaseContext automatically.
78
102
  *
79
103
  * Credentials are managed by the secrets backend configured on the Platform.
@@ -85,14 +109,32 @@ export interface DatabaseProps {
85
109
  * @example
86
110
  * import { Database } from '@r8s/recipes'
87
111
  *
88
- * export default <Database name="app-db" storage="10Gi" />
112
+ * // Required target: explicit S3 settings (credentials from an existing Secret)
113
+ * export default (
114
+ * <Database
115
+ * name="app-db"
116
+ * storage="10Gi"
117
+ * backup={{
118
+ * destinationPath: 's3://backups/app-db-cnpg',
119
+ * endpointURL: 'https://s3.example.com',
120
+ * credentialsSecret: 'app-db-backup-creds',
121
+ * }}
122
+ * />
123
+ * )
89
124
  *
90
125
  * @example
91
126
  * import { Platform, Database, WebService } from '@r8s/recipes'
92
127
  *
93
128
  * export default (
94
129
  * <Platform secrets={{ backend: 'openbao' }}>
95
- * <Database name="app-db" storage="10Gi">
130
+ * <Database
131
+ * name="app-db"
132
+ * storage="10Gi"
133
+ * backup={{
134
+ * destinationPath: 's3://backups/app-db-cnpg',
135
+ * endpointURL: 'https://s3.example.com',
136
+ * }}
137
+ * >
96
138
  * <WebService name="api" image="myapp/api:v1" />
97
139
  * </Database>
98
140
  * </Platform>
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.tsx"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,0DAA0D;IAC1D,eAAe,EAAE,MAAM,CAAA;IACvB,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;;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,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;;;OAGG;IACH,MAAM,CAAC,EAAE,mBAAmB,CAAA;IAC5B;;;;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,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,oCA+M5C"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAyC,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAEvF;;;;;GAKG;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;;;;;;OAMG;IACH,MAAM,EAAE,mBAAmB,GAAG,IAAI,GAAG,KAAK,GAAG;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,CAAA;IAClF;;;;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,oCA0R5C"}