@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.
- package/dist/app.d.ts +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +4 -8
- package/dist/app.js.map +1 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +54 -94
- package/dist/auth.js.map +1 -1
- package/dist/backup.d.ts +18 -2
- package/dist/backup.d.ts.map +1 -1
- package/dist/backup.js +54 -6
- package/dist/backup.js.map +1 -1
- package/dist/cert-provider.d.ts.map +1 -1
- package/dist/cert-provider.js +2 -5
- package/dist/cert-provider.js.map +1 -1
- package/dist/database.d.ts +55 -13
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +135 -58
- package/dist/database.js.map +1 -1
- package/dist/dns-provider.d.ts.map +1 -1
- package/dist/dns-provider.js +2 -5
- package/dist/dns-provider.js.map +1 -1
- package/dist/endpoint.d.ts +1 -1
- package/dist/endpoint.d.ts.map +1 -1
- package/dist/endpoint.js +31 -23
- package/dist/endpoint.js.map +1 -1
- package/dist/errors.d.ts +16 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +19 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -5
- package/dist/index.js.map +1 -1
- package/dist/monitoring.d.ts.map +1 -1
- package/dist/monitoring.js +6 -13
- package/dist/monitoring.js.map +1 -1
- package/dist/platform.d.ts +3 -2
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +3 -2
- package/dist/platform.js.map +1 -1
- package/dist/r8s-cluster.d.ts +1 -1
- package/dist/r8s-cluster.d.ts.map +1 -1
- package/dist/r8s-cluster.js +25 -16
- package/dist/r8s-cluster.js.map +1 -1
- package/dist/s3-provider.d.ts +151 -0
- package/dist/s3-provider.d.ts.map +1 -0
- package/dist/s3-provider.js +126 -0
- package/dist/s3-provider.js.map +1 -0
- package/dist/secret-provider.d.ts +16 -7
- package/dist/secret-provider.d.ts.map +1 -1
- package/dist/secret-provider.js +80 -9
- package/dist/secret-provider.js.map +1 -1
- package/dist/static-secret.d.ts +107 -0
- package/dist/static-secret.d.ts.map +1 -0
- package/dist/static-secret.js +87 -0
- package/dist/static-secret.js.map +1 -0
- package/dist/use-operators.d.ts +7 -0
- package/dist/use-operators.d.ts.map +1 -0
- package/dist/use-operators.js +13 -0
- package/dist/use-operators.js.map +1 -0
- package/dist/web-service.d.ts +10 -2
- package/dist/web-service.d.ts.map +1 -1
- package/dist/web-service.js +54 -14
- package/dist/web-service.js.map +1 -1
- package/package.json +30 -5
- package/dist/operators.d.ts +0 -19
- package/dist/operators.d.ts.map +0 -1
- package/dist/operators.js +0 -30
- package/dist/operators.js.map +0 -1
package/dist/database.js
CHANGED
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Database = Database;
|
|
4
4
|
const core_1 = require("@r8s/core");
|
|
5
|
+
const operator_cnpg_1 = require("@r8s/operator-cnpg");
|
|
5
6
|
const defaults_1 = require("@r8s/core/defaults");
|
|
6
|
-
const
|
|
7
|
+
const secret_provider_1 = require("./secret-provider");
|
|
8
|
+
const s3_provider_1 = require("./s3-provider");
|
|
7
9
|
/**
|
|
8
10
|
* CloudNativePG PostgreSQL database.
|
|
9
11
|
*
|
|
@@ -11,7 +13,7 @@ const operators_1 = require("./operators");
|
|
|
11
13
|
* @category Data & Analytics
|
|
12
14
|
*
|
|
13
15
|
* Creates a dedicated 3-instance HA CloudNativePG cluster for this database.
|
|
14
|
-
* When wrapped in a `<Database>` component, child components receive the
|
|
16
|
+
* When wrapped in a `<Database backup={false}>` component, child components receive the
|
|
15
17
|
* connection info via DatabaseContext automatically.
|
|
16
18
|
*
|
|
17
19
|
* Credentials are managed by the secrets backend configured on the Platform.
|
|
@@ -23,14 +25,32 @@ const operators_1 = require("./operators");
|
|
|
23
25
|
* @example
|
|
24
26
|
* import { Database } from '@r8s/recipes'
|
|
25
27
|
*
|
|
26
|
-
*
|
|
28
|
+
* // Required target: explicit S3 settings (credentials from an existing Secret)
|
|
29
|
+
* export default (
|
|
30
|
+
* <Database
|
|
31
|
+
* name="app-db"
|
|
32
|
+
* storage="10Gi"
|
|
33
|
+
* backup={{
|
|
34
|
+
* destinationPath: 's3://backups/app-db-cnpg',
|
|
35
|
+
* endpointURL: 'https://s3.example.com',
|
|
36
|
+
* credentialsSecret: 'app-db-backup-creds',
|
|
37
|
+
* }}
|
|
38
|
+
* />
|
|
39
|
+
* )
|
|
27
40
|
*
|
|
28
41
|
* @example
|
|
29
42
|
* import { Platform, Database, WebService } from '@r8s/recipes'
|
|
30
43
|
*
|
|
31
44
|
* export default (
|
|
32
45
|
* <Platform secrets={{ backend: 'openbao' }}>
|
|
33
|
-
* <Database
|
|
46
|
+
* <Database
|
|
47
|
+
* name="app-db"
|
|
48
|
+
* storage="10Gi"
|
|
49
|
+
* backup={{
|
|
50
|
+
* destinationPath: 's3://backups/app-db-cnpg',
|
|
51
|
+
* endpointURL: 'https://s3.example.com',
|
|
52
|
+
* }}
|
|
53
|
+
* >
|
|
34
54
|
* <WebService name="api" image="myapp/api:v1" />
|
|
35
55
|
* </Database>
|
|
36
56
|
* </Platform>
|
|
@@ -59,7 +79,7 @@ const operators_1 = require("./operators");
|
|
|
59
79
|
* )
|
|
60
80
|
*/
|
|
61
81
|
function Database(props) {
|
|
62
|
-
const { name, namespace: namespaceProp, instances = 3, storage = '10Gi', storageClass, parameters, backup, rolloutRestartTargets, operatorVersion, postInitSQL, children, } = props;
|
|
82
|
+
const { name, namespace: namespaceProp, instances = 3, database: databaseName = name, owner: ownerName = name, storage = '10Gi', storageClass, parameters, credentialsMode = 'backend', backup: backupProp, rolloutRestartTargets, operatorVersion, postInitSQL, children, } = props;
|
|
63
83
|
// Plaintext password props are forbidden. This also catches untyped/JS
|
|
64
84
|
// callers that pass `password` to Database regardless of backend — the
|
|
65
85
|
// rendered Secret would leak the credential into git and cluster state.
|
|
@@ -71,14 +91,71 @@ function Database(props) {
|
|
|
71
91
|
`\n` +
|
|
72
92
|
`Fix: configure a secrets backend on the Platform and let it manage credentials:\n` +
|
|
73
93
|
` <Platform secrets={{ backend: 'openbao', mount: 'kv', path: 'apps' }}>\n` +
|
|
74
|
-
` <Database name="${name}" />\n` +
|
|
94
|
+
` <Database name="${name}" backup={false} />\n` +
|
|
75
95
|
` </Platform>\n` +
|
|
76
96
|
`\n` +
|
|
77
97
|
`Supported backends: 'openbao', 'vault', 'sealed-secrets', 'kubernetes', 'manual-secrets'`);
|
|
78
98
|
}
|
|
79
99
|
// Inherit namespace from <Platform> context if not explicitly set
|
|
80
|
-
const
|
|
81
|
-
|
|
100
|
+
const namespace = (0, defaults_1.useNamespace)(namespaceProp);
|
|
101
|
+
// Backups are a REQUIRED decision: no barman archive means stalled WAL
|
|
102
|
+
// recycling fills the data PVC over time. Passing nothing is a bug the
|
|
103
|
+
// renderer must catch, not a silent default.
|
|
104
|
+
const s3 = (0, s3_provider_1.useS3)();
|
|
105
|
+
if (backupProp === undefined) {
|
|
106
|
+
throw new Error(`Database "${name}": backup is a required decision.\n` +
|
|
107
|
+
`\n` +
|
|
108
|
+
`WAL segments accumulate until they are archived — a cluster without\n` +
|
|
109
|
+
`working backups slowly fills its PVC.\n` +
|
|
110
|
+
`\n` +
|
|
111
|
+
`Enable backups (derives target/credentials from the platform's S3Provider):\n` +
|
|
112
|
+
` <Database name="${name}" backup />\n` +
|
|
113
|
+
`\n` +
|
|
114
|
+
`or pass the full target explicitly:\n` +
|
|
115
|
+
` backup={{ destinationPath: 's3://backups/${name}-cnpg', endpointURL: 'https://s3.example.com' }}\n` +
|
|
116
|
+
`\n` +
|
|
117
|
+
`To explicitly run without backups (forks, ephemeral CI databases):\n` +
|
|
118
|
+
` <Database name="${name}" backup={false} />`);
|
|
119
|
+
}
|
|
120
|
+
let backup = backupProp;
|
|
121
|
+
if (backupProp && typeof backupProp === 'object' && (0, s3_provider_1.isBucketElement)(backupProp)) {
|
|
122
|
+
const target = (0, s3_provider_1.resolveBucket)(backupProp, s3);
|
|
123
|
+
backup = {
|
|
124
|
+
endpointURL: target.s3.endpoint,
|
|
125
|
+
destinationPath: `${target.root}/${name}-cnpg`,
|
|
126
|
+
credentialsSecret: target.s3.credentialsSecret,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
else if (backupProp && typeof backupProp === 'object' && 'type' in backupProp) {
|
|
130
|
+
throw new Error(`Database "${name}": backup element must be a <Bucket name="…" /> descriptor — got another component`);
|
|
131
|
+
}
|
|
132
|
+
const backupSpec = backup === false ? false : backup === true ? {} : { ...backup };
|
|
133
|
+
if (backupSpec) {
|
|
134
|
+
if (backupSpec.endpointURL === undefined)
|
|
135
|
+
backupSpec.endpointURL = s3?.endpoint;
|
|
136
|
+
if (backupSpec.credentialsSecret === undefined)
|
|
137
|
+
backupSpec.credentialsSecret = s3?.credentialsSecret;
|
|
138
|
+
if (backupSpec.destinationPath === undefined && s3) {
|
|
139
|
+
const base = s3.prefix ? `${s3.prefix}/` : '';
|
|
140
|
+
backupSpec.destinationPath = `s3://${s3.bucket}/${base}${name}-cnpg`;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// With no S3 provider and no explicit target there is nothing valid to
|
|
144
|
+
// render — fail with the two ways out instead of half a barman spec.
|
|
145
|
+
if (backupSpec && (!backupSpec.endpointURL || !backupSpec.destinationPath)) {
|
|
146
|
+
throw new Error(`Database "${name}" has backup configured without an S3 target.\n` +
|
|
147
|
+
`\n` +
|
|
148
|
+
`Add an <S3Provider> to the Platform — endpoint, bucket and credentials are derived from it:\n` +
|
|
149
|
+
` <Platform>\n` +
|
|
150
|
+
` <S3Provider provider={<MinIO endpoint="https://rustfs:9000" bucket="infra" credentialsSecret="infra-s3-creds" />}>\n` +
|
|
151
|
+
` <Database name="${name}" backup />\n` +
|
|
152
|
+
` </Platform>\n` +
|
|
153
|
+
`\n` +
|
|
154
|
+
`or pass the target explicitly:\n` +
|
|
155
|
+
` backup={{ endpointURL: 'https://s3.example.com', destinationPath: 's3://backups/${name}-cnpg' }}\n` +
|
|
156
|
+
`\n` +
|
|
157
|
+
`Missing: ${[!backupSpec.endpointURL && 'endpointURL', !backupSpec.destinationPath && 'destinationPath'].filter(Boolean).join(', ')}`);
|
|
158
|
+
}
|
|
82
159
|
const clusterConfig = (0, core_1.useContext)(defaults_1.ClusterContext);
|
|
83
160
|
const secretProvider = (0, core_1.useContext)(defaults_1.SecretContext);
|
|
84
161
|
const sharedOperators = (0, core_1.useContext)(defaults_1.OperatorContext);
|
|
@@ -89,8 +166,8 @@ function Database(props) {
|
|
|
89
166
|
const connection = {
|
|
90
167
|
host: clusterConfig.host,
|
|
91
168
|
port: 5432,
|
|
92
|
-
database:
|
|
93
|
-
username:
|
|
169
|
+
database: databaseName,
|
|
170
|
+
username: ownerName,
|
|
94
171
|
passwordSecret: { name: secretName, key: 'password' },
|
|
95
172
|
passwordKey: 'password',
|
|
96
173
|
vendor: 'postgres',
|
|
@@ -102,13 +179,13 @@ function Database(props) {
|
|
|
102
179
|
}
|
|
103
180
|
else {
|
|
104
181
|
// Dedicated cluster — create full CNPG cluster
|
|
105
|
-
const
|
|
182
|
+
const needsCnpg = (0, operator_cnpg_1.declareCnpg)(sharedOperators).length > 0;
|
|
106
183
|
// Backup credentials: explicit existing Secret, or provisioned by the
|
|
107
184
|
// secrets backend. Plaintext is never rendered.
|
|
108
185
|
let backupCredentials;
|
|
109
|
-
if (
|
|
110
|
-
if (
|
|
111
|
-
backupCredentials =
|
|
186
|
+
if (backupSpec) {
|
|
187
|
+
if (backupSpec.credentialsSecret) {
|
|
188
|
+
backupCredentials = backupSpec.credentialsSecret;
|
|
112
189
|
}
|
|
113
190
|
else if (secretProvider &&
|
|
114
191
|
(secretProvider.backend === 'openbao' || secretProvider.backend === 'vault')) {
|
|
@@ -116,6 +193,9 @@ function Database(props) {
|
|
|
116
193
|
}
|
|
117
194
|
else {
|
|
118
195
|
throw new Error(`Database "${name}" has backup configured without backup credentials.\n` +
|
|
196
|
+
`\n` +
|
|
197
|
+
`Add an <S3Provider> to the Platform — backup endpoint, bucket and credentials are derived from it.\n` +
|
|
198
|
+
`\n` +
|
|
119
199
|
`\n` +
|
|
120
200
|
`Set an existing Secret holding keys 'access-key-id' and 'secret-access-key':\n` +
|
|
121
201
|
` backup={{ ..., credentialsSecret: 'my-backup-creds' }}\n` +
|
|
@@ -136,9 +216,11 @@ function Database(props) {
|
|
|
136
216
|
},
|
|
137
217
|
bootstrap: {
|
|
138
218
|
initdb: {
|
|
139
|
-
database:
|
|
140
|
-
owner:
|
|
141
|
-
|
|
219
|
+
database: databaseName,
|
|
220
|
+
owner: ownerName,
|
|
221
|
+
// 'cnpg' credentialsMode: let CNPG default to '<cluster>-app'
|
|
222
|
+
// (the native credentials secret incl. fqdn-uri references)
|
|
223
|
+
...(credentialsMode === 'cnpg' ? {} : { secret: { name: secretName } }),
|
|
142
224
|
// Roles/extensions the application needs on a fresh cluster —
|
|
143
225
|
// applied once by CNPG after the initial bootstrap.
|
|
144
226
|
...(postInitSQL && postInitSQL.length > 0
|
|
@@ -148,21 +230,21 @@ function Database(props) {
|
|
|
148
230
|
},
|
|
149
231
|
monitoring: { enablePodMonitor: true },
|
|
150
232
|
...(parameters && { postgresql: { parameters } }),
|
|
151
|
-
...(
|
|
233
|
+
...(backupSpec && backupCredentials
|
|
152
234
|
? {
|
|
153
235
|
backup: {
|
|
154
|
-
retentionPolicy:
|
|
236
|
+
retentionPolicy: backupSpec.retention ?? '30d',
|
|
155
237
|
barmanObjectStore: {
|
|
156
|
-
destinationPath:
|
|
157
|
-
endpointURL:
|
|
238
|
+
destinationPath: backupSpec.destinationPath,
|
|
239
|
+
endpointURL: backupSpec.endpointURL,
|
|
158
240
|
s3Credentials: {
|
|
159
241
|
accessKeyId: { name: backupCredentials, key: 'access-key-id' },
|
|
160
242
|
secretAccessKey: { name: backupCredentials, key: 'secret-access-key' },
|
|
161
243
|
},
|
|
162
|
-
data: { compression:
|
|
244
|
+
data: { compression: backupSpec.compression ?? 'gzip' },
|
|
163
245
|
wal: {
|
|
164
|
-
compression:
|
|
165
|
-
encryption:
|
|
246
|
+
compression: backupSpec.compression ?? 'gzip',
|
|
247
|
+
encryption: backupSpec.encryption ?? 'AES256',
|
|
166
248
|
},
|
|
167
249
|
},
|
|
168
250
|
},
|
|
@@ -173,14 +255,14 @@ function Database(props) {
|
|
|
173
255
|
const connection = {
|
|
174
256
|
host: `${name}-rw`,
|
|
175
257
|
port: 5432,
|
|
176
|
-
database:
|
|
177
|
-
username:
|
|
258
|
+
database: databaseName,
|
|
259
|
+
username: ownerName,
|
|
178
260
|
passwordSecret: { name: secretName, key: 'password' },
|
|
179
261
|
passwordKey: 'password',
|
|
180
262
|
vendor: 'postgres',
|
|
181
263
|
};
|
|
182
|
-
if (
|
|
183
|
-
resources.push((0,
|
|
264
|
+
if (needsCnpg) {
|
|
265
|
+
resources.push(...(0, operator_cnpg_1.declareCnpg)(sharedOperators, operatorVersion));
|
|
184
266
|
}
|
|
185
267
|
resources.push((0, core_1.jsx)('Cluster', cluster));
|
|
186
268
|
if (backup && backupCredentials) {
|
|
@@ -190,19 +272,23 @@ function Database(props) {
|
|
|
190
272
|
metadata: { name: `${name}-backup`, namespace },
|
|
191
273
|
spec: {
|
|
192
274
|
cluster: { name },
|
|
193
|
-
schedule:
|
|
275
|
+
schedule: backupSpec && backupSpec.schedule ? backupSpec.schedule : '0 3 * * *',
|
|
194
276
|
backupOwnerReference: 'self',
|
|
195
277
|
},
|
|
196
278
|
}));
|
|
197
279
|
// Backend-provisioned S3 credentials for barman
|
|
198
|
-
if (!
|
|
280
|
+
if (backupSpec && !backupSpec.credentialsSecret && secretProvider) {
|
|
199
281
|
resources.push(...createStaticSecretResource(`${name}-backup-credentials`, `${name}-backup-credentials`, namespace, secretProvider, `${secretProvider.path}/${name}-s3-credentials`, undefined));
|
|
200
282
|
}
|
|
201
283
|
}
|
|
202
284
|
// For dedicated clusters with a secrets backend, the backend manages
|
|
203
285
|
// credentials. For kubernetes/manual-secrets backend, CNPG manages the
|
|
204
286
|
// bootstrap secret automatically — no plaintext Secret is rendered.
|
|
205
|
-
|
|
287
|
+
// 'cnpg' credentialsMode: the operator generates the bootstrap secret
|
|
288
|
+
// in-cluster (incl. fqdn-uri) even when a secrets backend is present —
|
|
289
|
+
// apps referencing the CNPG-generated secret directly (e.g. paperclip's
|
|
290
|
+
// externalURLSecretRef) work without vault-stored DB credentials.
|
|
291
|
+
if (secretProvider && credentialsMode === 'backend') {
|
|
206
292
|
resources.push(...createSecretResources(name, namespace, secretName, secretProvider, 'dedicated', rolloutRestartTargets));
|
|
207
293
|
}
|
|
208
294
|
if (children) {
|
|
@@ -232,7 +318,7 @@ function createSecretResources(name, namespace, secretName, secretProvider, mode
|
|
|
232
318
|
`CNPG only provisions credentials for databases on dedicated clusters, so a ` +
|
|
233
319
|
`shared-cluster database needs a managed secrets backend:\n` +
|
|
234
320
|
` <Platform secrets={{ backend: 'openbao', mount: 'kv', path: 'apps' }}>\n` +
|
|
235
|
-
` <Database name="${name}" />\n` +
|
|
321
|
+
` <Database name="${name}" backup={false} />\n` +
|
|
236
322
|
` </Platform>\n` +
|
|
237
323
|
`\n` +
|
|
238
324
|
`Supported backends: 'openbao', 'vault', 'sealed-secrets', 'kubernetes', 'manual-secrets'`);
|
|
@@ -270,7 +356,7 @@ function createSecretResources(name, namespace, secretName, secretProvider, mode
|
|
|
270
356
|
`Credentials for shared-cluster databases cannot be provisioned automatically. ` +
|
|
271
357
|
`Use a managed backend instead:\n` +
|
|
272
358
|
` <Platform secrets={{ backend: 'openbao', mount: 'kv', path: 'apps' }}>\n` +
|
|
273
|
-
` <Database name="${name}" />\n` +
|
|
359
|
+
` <Database name="${name}" backup={false} />\n` +
|
|
274
360
|
` </Platform>\n` +
|
|
275
361
|
`\n` +
|
|
276
362
|
`Supported backends: 'openbao', 'vault', 'sealed-secrets', 'kubernetes', 'manual-secrets'`);
|
|
@@ -288,6 +374,11 @@ function createSecretResources(name, namespace, secretName, secretProvider, mode
|
|
|
288
374
|
* `refreshAfter` comes from the provider (Platform secrets config),
|
|
289
375
|
* `rolloutRestartTargets` restarts consuming workloads on rotation.
|
|
290
376
|
* The secret content itself is never rendered into the manifest.
|
|
377
|
+
*
|
|
378
|
+
* Delegates to the shared provisioner in raw-sync mode (empty keys → the
|
|
379
|
+
* destination passes the whole store entry through — byte-identical to
|
|
380
|
+
* the legacy inline emission). Identity awareness lives ONLY in
|
|
381
|
+
* `secret-provider.tsx`.
|
|
291
382
|
*/
|
|
292
383
|
function createStaticSecretResource(resourceName, destinationName, namespace, secretProvider, vaultPath, rolloutRestartTargets) {
|
|
293
384
|
const targets = rolloutRestartTargets?.map((t) => ({
|
|
@@ -295,31 +386,17 @@ function createStaticSecretResource(resourceName, destinationName, namespace, se
|
|
|
295
386
|
kind: t.kind ?? 'Deployment',
|
|
296
387
|
name: t.name,
|
|
297
388
|
}));
|
|
298
|
-
const
|
|
299
|
-
|
|
300
|
-
|
|
389
|
+
const el = (0, secret_provider_1.provisionerForSecretProvider)(secretProvider)({
|
|
390
|
+
name: resourceName,
|
|
391
|
+
namespace,
|
|
301
392
|
path: vaultPath,
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
kind: 'OpenBaoStaticSecret',
|
|
311
|
-
metadata: { name: resourceName, namespace },
|
|
312
|
-
spec: { openbaoAuthRef: secretProvider.authRef, ...spec },
|
|
313
|
-
}),
|
|
314
|
-
];
|
|
315
|
-
}
|
|
316
|
-
return [
|
|
317
|
-
(0, core_1.jsx)('VaultStaticSecret', {
|
|
318
|
-
apiVersion: 'secrets.hashicorp.com/v1beta1',
|
|
319
|
-
kind: 'VaultStaticSecret',
|
|
320
|
-
metadata: { name: resourceName, namespace },
|
|
321
|
-
spec: { vaultAuthRef: secretProvider.authRef, ...spec },
|
|
322
|
-
}),
|
|
323
|
-
];
|
|
393
|
+
// Raw sync: callers (DB credentials, backup creds) don't enumerate
|
|
394
|
+
// store keys at render time — pass the whole entry through
|
|
395
|
+
keys: {},
|
|
396
|
+
secretName: destinationName,
|
|
397
|
+
refreshAfter: secretProvider.refreshAfter,
|
|
398
|
+
restartTargets: targets,
|
|
399
|
+
});
|
|
400
|
+
return Array.isArray(el) ? el : [el];
|
|
324
401
|
}
|
|
325
402
|
//# sourceMappingURL=database.js.map
|
package/dist/database.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.tsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.tsx"],"names":[],"mappings":";;AA2KA,4BA0RC;AArcD,oCAA2C;AAE3C,sDAAgD;AAChD,iDAM2B;AAC3B,uDAAgE;AAChE,+CAAuF;AAwFvF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,SAAgB,QAAQ,CAAC,KAAoB;IAC3C,MAAM,EACJ,IAAI,EACJ,SAAS,EAAE,aAAa,EACxB,SAAS,GAAG,CAAC,EACb,QAAQ,EAAE,YAAY,GAAG,IAAI,EAC7B,KAAK,EAAE,SAAS,GAAG,IAAI,EACvB,OAAO,GAAG,MAAM,EAChB,YAAY,EACZ,UAAU,EACV,eAAe,GAAG,SAAS,EAC3B,MAAM,EAAE,UAAU,EAClB,qBAAqB,EACrB,eAAe,EACf,WAAW,EACX,QAAQ,GACT,GAAG,KAAK,CAAA;IAET,uEAAuE;IACvE,uEAAuE;IACvE,wEAAwE;IACxE,MAAM,cAAc,GAAI,KAAgC,CAAC,QAAQ,CAAA;IACjE,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,IAAI,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;QACrF,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,mCAAmC;YAClD,wEAAwE;YACxE,qFAAqF;YACrF,IAAI;YACJ,mFAAmF;YACnF,4EAA4E;YAC5E,uBAAuB,IAAI,uBAAuB;YAClD,iBAAiB;YACjB,IAAI;YACJ,0FAA0F,CAC7F,CAAA;IACH,CAAC;IAED,kEAAkE;IAClE,MAAM,SAAS,GAAG,IAAA,uBAAY,EAAC,aAAa,CAAC,CAAA;IAE7C,uEAAuE;IACvE,uEAAuE;IACvE,6CAA6C;IAC7C,MAAM,EAAE,GAAG,IAAA,mBAAK,GAAE,CAAA;IAClB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,qCAAqC;YACpD,IAAI;YACJ,uEAAuE;YACvE,yCAAyC;YACzC,IAAI;YACJ,+EAA+E;YAC/E,qBAAqB,IAAI,eAAe;YACxC,IAAI;YACJ,uCAAuC;YACvC,8CAA8C,IAAI,oDAAoD;YACtG,IAAI;YACJ,sEAAsE;YACtE,qBAAqB,IAAI,qBAAqB,CACjD,CAAA;IACH,CAAC;IACD,IAAI,MAAM,GAAG,UAAU,CAAA;IACvB,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,IAAA,6BAAe,EAAC,UAAU,CAAC,EAAE,CAAC;QAChF,MAAM,MAAM,GAAG,IAAA,2BAAa,EAAC,UAAU,EAAE,EAAE,CAAC,CAAA;QAC5C,MAAM,GAAG;YACP,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ;YAC/B,eAAe,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,OAAO;YAC9C,iBAAiB,EAAE,MAAM,CAAC,EAAE,CAAC,iBAAiB;SAC/C,CAAA;IACH,CAAC;SAAM,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,MAAM,IAAK,UAAoB,EAAE,CAAC;QAC3F,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,oFAAoF,CACtG,CAAA;IACH,CAAC;IACD,MAAM,UAAU,GACd,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAI,MAA8B,EAAE,CAAA;IAC1F,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,UAAU,CAAC,WAAW,KAAK,SAAS;YAAE,UAAU,CAAC,WAAW,GAAG,EAAE,EAAE,QAAQ,CAAA;QAC/E,IAAI,UAAU,CAAC,iBAAiB,KAAK,SAAS;YAC5C,UAAU,CAAC,iBAAiB,GAAG,EAAE,EAAE,iBAAiB,CAAA;QACtD,IAAI,UAAU,CAAC,eAAe,KAAK,SAAS,IAAI,EAAE,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YAC7C,UAAU,CAAC,eAAe,GAAG,QAAQ,EAAE,CAAC,MAAM,IAAI,IAAI,GAAG,IAAI,OAAO,CAAA;QACtE,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,qEAAqE;IACrE,IAAI,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,iDAAiD;YAChE,IAAI;YACJ,+FAA+F;YAC/F,gBAAgB;YAChB,0HAA0H;YAC1H,yBAAyB,IAAI,eAAe;YAC5C,iBAAiB;YACjB,IAAI;YACJ,kCAAkC;YAClC,qFAAqF,IAAI,aAAa;YACtG,IAAI;YACJ,YAAY,CAAC,CAAC,UAAU,CAAC,WAAW,IAAI,aAAa,EAAE,CAAC,UAAU,CAAC,eAAe,IAAI,iBAAiB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxI,CAAA;IACH,CAAC;IAED,MAAM,aAAa,GAAG,IAAA,iBAAU,EAAC,yBAAc,CAAC,CAAA;IAChD,MAAM,cAAc,GAAG,IAAA,iBAAU,EAAC,wBAAa,CAAC,CAAA;IAChD,MAAM,eAAe,GAAG,IAAA,iBAAU,EAAC,0BAAe,CAAC,CAAA;IACnD,MAAM,UAAU,GAAG,GAAG,IAAI,iBAAiB,CAAA;IAE3C,MAAM,SAAS,GAA6B,EAAE,CAAA;IAE9C,IAAI,aAAa,EAAE,CAAC;QAClB,sEAAsE;QACtE,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,SAAS;YACnB,cAAc,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE;YACrD,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE,UAAmB;SAC5B,CAAA;QAED,SAAS,CAAC,IAAI,CACZ,GAAG,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAC3F,CAAA;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,SAAS,CAAC,IAAI,CAAC,IAAA,UAAG,EAAC,0BAAe,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QAChF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,+CAA+C;QAC/C,MAAM,SAAS,GAAG,IAAA,2BAAW,EAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;QAEzD,sEAAsE;QACtE,gDAAgD;QAChD,IAAI,iBAAqC,CAAA;QACzC,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC;gBACjC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAA;YAClD,CAAC;iBAAM,IACL,cAAc;gBACd,CAAC,cAAc,CAAC,OAAO,KAAK,SAAS,IAAI,cAAc,CAAC,OAAO,KAAK,OAAO,CAAC,EAC5E,CAAC;gBACD,iBAAiB,GAAG,GAAG,IAAI,qBAAqB,CAAA;YAClD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,uDAAuD;oBACtE,IAAI;oBACJ,sGAAsG;oBACtG,IAAI;oBACJ,IAAI;oBACJ,gFAAgF;oBAChF,4DAA4D;oBAC5D,IAAI;oBACJ,mEAAmE,IAAI,qBAAqB;oBAC5F,0EAA0E,CAC7E,CAAA;YACH,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAY;YACvB,UAAU,EAAE,uBAAuB;YACnC,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC7B,IAAI,EAAE;gBACJ,SAAS;gBACT,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,GAAG,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,CAAC;iBACtC;gBACD,SAAS,EAAE;oBACT,MAAM,EAAE;wBACN,QAAQ,EAAE,YAAY;wBACtB,KAAK,EAAE,SAAS;wBAChB,8DAA8D;wBAC9D,4DAA4D;wBAC5D,GAAG,CAAC,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC;wBACvE,8DAA8D;wBAC9D,oDAAoD;wBACpD,GAAG,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;4BACvC,CAAC,CAAC,EAAE,sBAAsB,EAAE,WAAW,EAAE;4BACzC,CAAC,CAAC,EAAE,CAAC;qBACR;iBACF;gBACD,UAAU,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE;gBACtC,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC;gBACjD,GAAG,CAAC,UAAU,IAAI,iBAAiB;oBACjC,CAAC,CAAC;wBACE,MAAM,EAAE;4BACN,eAAe,EAAE,UAAU,CAAC,SAAS,IAAI,KAAK;4BAC9C,iBAAiB,EAAE;gCACjB,eAAe,EAAE,UAAU,CAAC,eAAgB;gCAC5C,WAAW,EAAE,UAAU,CAAC,WAAY;gCACpC,aAAa,EAAE;oCACb,WAAW,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,eAAe,EAAE;oCAC9D,eAAe,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,mBAAmB,EAAE;iCACvE;gCACD,IAAI,EAAE,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,IAAI,MAAM,EAAE;gCACvD,GAAG,EAAE;oCACH,WAAW,EAAE,UAAU,CAAC,WAAW,IAAI,MAAM;oCAC7C,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,QAAQ;iCAC9C;6BACF;yBACF;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;aACR;SACF,CAAA;QAED,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,GAAG,IAAI,KAAK;YAClB,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,SAAS;YACnB,cAAc,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE;YACrD,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE,UAAmB;SAC5B,CAAA;QAED,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,IAAI,CAAC,GAAG,IAAA,2BAAW,EAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAA;QAClE,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,IAAA,UAAG,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;QAEvC,IAAI,MAAM,IAAI,iBAAiB,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CACZ,IAAA,UAAG,EAAC,iBAAiB,EAAE;gBACrB,UAAU,EAAE,uBAAuB;gBACnC,IAAI,EAAE,iBAAiB;gBACvB,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,SAAS,EAAE;gBAC/C,IAAI,EAAE;oBACJ,OAAO,EAAE,EAAE,IAAI,EAAE;oBACjB,QAAQ,EAAE,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW;oBAC/E,oBAAoB,EAAE,MAAM;iBAC7B;aAC2B,CAAC,CAChC,CAAA;YAED,gDAAgD;YAChD,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,iBAAiB,IAAI,cAAc,EAAE,CAAC;gBAClE,SAAS,CAAC,IAAI,CACZ,GAAG,0BAA0B,CAC3B,GAAG,IAAI,qBAAqB,EAC5B,GAAG,IAAI,qBAAqB,EAC5B,SAAS,EACT,cAAc,EACd,GAAG,cAAc,CAAC,IAAI,IAAI,IAAI,iBAAiB,EAC/C,SAAS,CACV,CACF,CAAA;YACH,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,uEAAuE;QACvE,oEAAoE;QACpE,sEAAsE;QACtE,uEAAuE;QACvE,wEAAwE;QACxE,kEAAkE;QAClE,IAAI,cAAc,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YACpD,SAAS,CAAC,IAAI,CACZ,GAAG,qBAAqB,CACtB,IAAI,EACJ,SAAS,EACT,UAAU,EACV,cAAc,EACd,WAAW,EACX,qBAAqB,CACtB,CACF,CAAA;QACH,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,SAAS,CAAC,IAAI,CAAC,IAAA,UAAG,EAAC,0BAAe,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QAChF,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAC5B,IAAY,EACZ,SAAiB,EACjB,UAAkB,EAClB,cAMQ,EACR,IAA4B,EAC5B,qBAAyF;IAEzF,MAAM,SAAS,GAA6B,EAAE,CAAA;IAE9C,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,iEAAiE;YACjE,mCAAmC;YACnC,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,gEAAgE;YAC/E,IAAI;YACJ,6EAA6E;YAC7E,4DAA4D;YAC5D,4EAA4E;YAC5E,uBAAuB,IAAI,uBAAuB;YAClD,iBAAiB;YACjB,IAAI;YACJ,0FAA0F,CAC7F,CAAA;IACH,CAAC;IAED,QAAQ,cAAc,CAAC,OAAO,EAAE,CAAC;QAC/B,KAAK,OAAO,CAAC;QACb,KAAK,SAAS;YACZ,SAAS,CAAC,IAAI,CACZ,GAAG,0BAA0B,CAC3B,GAAG,IAAI,YAAY,EACnB,UAAU,EACV,SAAS,EACT,cAAc,EACd,GAAG,cAAc,CAAC,IAAI,IAAI,IAAI,EAAE,EAChC,qBAAqB,CACtB,CACF,CAAA;YACD,MAAK;QAEP,KAAK,gBAAgB;YACnB,uEAAuE;YACvE,oEAAoE;YACpE,wDAAwD;YACxD,SAAS,CAAC,IAAI,CACZ,IAAA,UAAG,EAAC,cAAc,EAAE;gBAClB,UAAU,EAAE,sBAAsB;gBAClC,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE;gBACzC,IAAI,EAAE;oBACJ,aAAa,EAAE;wBACb,+DAA+D;wBAC/D,QAAQ,EAAE,2BAA2B;qBACtC;iBACF;aACF,CAAC,CACH,CAAA;YACD,MAAK;QAEP,KAAK,YAAY,CAAC;QAClB,KAAK,gBAAgB;YACnB,qEAAqE;YACrE,qEAAqE;YACrE,sEAAsE;YACtE,6DAA6D;YAC7D,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,eAAe,cAAc,CAAC,OAAO,0CAA0C;oBAC9F,IAAI;oBACJ,gFAAgF;oBAChF,kCAAkC;oBAClC,4EAA4E;oBAC5E,uBAAuB,IAAI,uBAAuB;oBAClD,iBAAiB;oBACjB,IAAI;oBACJ,0FAA0F,CAC7F,CAAA;YACH,CAAC;YACD,MAAK;QAEP;YACE,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,qCAAqC,cAAc,CAAC,OAAO,MAAM;gBAChF,0FAA0F,CAC7F,CAAA;IACL,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,0BAA0B,CACjC,YAAoB,EACpB,eAAuB,EACvB,SAAiB,EACjB,cAMC,EACD,SAAiB,EACjB,qBAAyF;IAEzF,MAAM,OAAO,GAAG,qBAAqB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,SAAS;QACrC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,YAAY;QAC5B,IAAI,EAAE,CAAC,CAAC,IAAI;KACb,CAAC,CAAC,CAAA;IAEH,MAAM,EAAE,GAAG,IAAA,8CAA4B,EAAC,cAAuB,CAAE,CAAC;QAChE,IAAI,EAAE,YAAY;QAClB,SAAS;QACT,IAAI,EAAE,SAAS;QACf,mEAAmE;QACnE,2DAA2D;QAC3D,IAAI,EAAE,EAAE;QACR,UAAU,EAAE,eAAe;QAC3B,YAAY,EAAE,cAAc,CAAC,YAAY;QACzC,cAAc,EAAE,OAAO;KACxB,CAAC,CAAA;IACF,OAAO,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAA4B,CAAC,CAAA;AAChE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dns-provider.d.ts","sourceRoot":"","sources":["../src/dns-provider.tsx"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,qCAAqC;IACrC,IAAI,CAAC,EAAE;QACL,yCAAyC;QACzC,IAAI,EAAE,MAAM,CAAA;QACZ,sCAAsC;QACtC,GAAG,EAAE,MAAM,CAAA;QACX,sEAAsE;QACtE,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,sDAAsD;IACtD,KAAK,CAAC,EAAE;QACN,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,YAAY,CAAA;QACzC,gCAAgC;QAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACjC,CAAA;IACD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAK9D;AAED,iCAAiC;AACjC,MAAM,WAAW,SAAS;IACxB,wBAAwB;IACxB,QAAQ,EAAE,cAAc,CAAA;IACxB,iCAAiC;IACjC,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAED,+CAA+C;AAC/C,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,SAAS,CAAA;AAEzD,eAAO,MAAM,UAAU,4DAAwC,CAAA;AAE/D,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;OAUG;IACH,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"dns-provider.d.ts","sourceRoot":"","sources":["../src/dns-provider.tsx"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,qCAAqC;IACrC,IAAI,CAAC,EAAE;QACL,yCAAyC;QACzC,IAAI,EAAE,MAAM,CAAA;QACZ,sCAAsC;QACtC,GAAG,EAAE,MAAM,CAAA;QACX,sEAAsE;QACtE,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,sDAAsD;IACtD,KAAK,CAAC,EAAE;QACN,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,YAAY,CAAA;QACzC,gCAAgC;QAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACjC,CAAA;IACD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAK9D;AAED,iCAAiC;AACjC,MAAM,WAAW,SAAS;IACxB,wBAAwB;IACxB,QAAQ,EAAE,cAAc,CAAA;IACxB,iCAAiC;IACjC,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAED,+CAA+C;AAC/C,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,SAAS,CAAA;AAEzD,eAAO,MAAM,UAAU,4DAAwC,CAAA;AAE/D,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;OAUG;IACH,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,kCAkElD"}
|
package/dist/dns-provider.js
CHANGED
|
@@ -6,7 +6,7 @@ exports.DnsProvider = DnsProvider;
|
|
|
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
|
|
9
|
+
const operator_external_dns_1 = require("@r8s/operator-external-dns");
|
|
10
10
|
function ExternalDns(props) {
|
|
11
11
|
return {
|
|
12
12
|
provider: 'external-dns',
|
|
@@ -83,10 +83,7 @@ function DnsProvider(props) {
|
|
|
83
83
|
}
|
|
84
84
|
const resources = [];
|
|
85
85
|
// Declare external-dns operator
|
|
86
|
-
|
|
87
|
-
if (!hasExternalDNS) {
|
|
88
|
-
resources.push((0, core_1.declareOperator)(crds_1.operators['external-dns']()));
|
|
89
|
-
}
|
|
86
|
+
resources.push(...(0, operator_external_dns_1.declareIfMissing)(sharedOperators));
|
|
90
87
|
// TSIG secret via VSO
|
|
91
88
|
if (config.settings.tsig) {
|
|
92
89
|
if (!secrets || (secrets.backend !== 'vault' && secrets.backend !== 'openbao')) {
|
package/dist/dns-provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dns-provider.js","sourceRoot":"","sources":["../src/dns-provider.tsx"],"names":[],"mappings":";;;AA0CA,kCAKC;AA6ED,
|
|
1
|
+
{"version":3,"file":"dns-provider.js","sourceRoot":"","sources":["../src/dns-provider.tsx"],"names":[],"mappings":"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"}
|
package/dist/endpoint.d.ts
CHANGED
|
@@ -56,5 +56,5 @@ export interface EndpointProps extends Omit<BaseRouteProps, 'host'> {
|
|
|
56
56
|
* </Platform>
|
|
57
57
|
* )
|
|
58
58
|
*/
|
|
59
|
-
export declare function Endpoint(props: EndpointProps):
|
|
59
|
+
export declare function Endpoint(props: EndpointProps): unknown;
|
|
60
60
|
//# sourceMappingURL=endpoint.d.ts.map
|
package/dist/endpoint.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAUpD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC;IACjE,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAA;IACnB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,wBAAwB,CAAA;IACxD,4FAA4F;IAC5F,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,aAAa,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACrD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,WAuQ5C"}
|
package/dist/endpoint.js
CHANGED
|
@@ -3,9 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Endpoint = Endpoint;
|
|
4
4
|
const core_1 = require("@r8s/core");
|
|
5
5
|
const defaults_1 = require("@r8s/core/defaults");
|
|
6
|
+
const defaults_2 = require("@r8s/core/defaults");
|
|
6
7
|
const endpoint_provider_1 = require("./endpoint-provider");
|
|
7
|
-
const
|
|
8
|
-
const
|
|
8
|
+
const operator_nginx_ingress_1 = require("@r8s/operator-nginx-ingress");
|
|
9
|
+
const operator_cert_manager_1 = require("@r8s/operator-cert-manager");
|
|
10
|
+
const operator_envoy_gateway_1 = require("@r8s/operator-envoy-gateway");
|
|
11
|
+
const operator_external_dns_1 = require("@r8s/operator-external-dns");
|
|
9
12
|
const externaldns_1 = require("@r8s/crds/externaldns");
|
|
10
13
|
const dns_provider_1 = require("./dns-provider");
|
|
11
14
|
/**
|
|
@@ -37,13 +40,29 @@ const dns_provider_1 = require("./dns-provider");
|
|
|
37
40
|
* )
|
|
38
41
|
*/
|
|
39
42
|
function Endpoint(props) {
|
|
40
|
-
const { name, namespace
|
|
41
|
-
const
|
|
43
|
+
const { name, namespace: namespaceProp, host, serviceName, servicePort = 80, path, pathType, tls, annotations = {}, dns, dnsTtl = 300, sharedGateway, } = props;
|
|
44
|
+
const namespace = (0, defaults_1.useNamespace)(namespaceProp);
|
|
45
|
+
const routing = (0, core_1.useContext)(defaults_2.RoutingContext);
|
|
42
46
|
const endpointConfig = (0, core_1.useContext)(endpoint_provider_1.EndpointContext);
|
|
43
|
-
const sharedOperators = (0, core_1.useContext)(
|
|
47
|
+
const sharedOperators = (0, core_1.useContext)(defaults_2.OperatorContext);
|
|
44
48
|
const dnsConfig = (0, core_1.useContext)(dns_provider_1.DnsContext);
|
|
45
49
|
// DNS defaults to true when DnsProvider is set, unless explicitly disabled
|
|
46
50
|
const createDnsRecord = dns ?? dnsConfig !== null;
|
|
51
|
+
// Custom route provisioner hook: a RoutingConfig carrying route() owns the
|
|
52
|
+
// whole render for this endpoint (custom ingress controllers / L7 stacks)
|
|
53
|
+
if (routing.route) {
|
|
54
|
+
const el = routing.route({
|
|
55
|
+
name,
|
|
56
|
+
namespace,
|
|
57
|
+
host,
|
|
58
|
+
serviceName,
|
|
59
|
+
servicePort,
|
|
60
|
+
pathPrefix: path,
|
|
61
|
+
annotations,
|
|
62
|
+
tls,
|
|
63
|
+
});
|
|
64
|
+
return Array.isArray(el) ? (0, core_1.jsx)(core_1.Fragment, { children: el }) : el;
|
|
65
|
+
}
|
|
47
66
|
// Mode resolution: the Platform RoutingContext describes the cluster, but
|
|
48
67
|
// an explicit EndpointProvider with <EnvoyGateway /> opts this endpoint
|
|
49
68
|
// into Gateway API even without a Platform (or CLI route-level default)
|
|
@@ -53,14 +72,10 @@ function Endpoint(props) {
|
|
|
53
72
|
const gatewayClassName = endpointConfig.settings?.gatewayClassName ?? routing.gatewayClassName ?? 'eg';
|
|
54
73
|
const secretName = tls?.secretName || `${name}-tls`;
|
|
55
74
|
const issuerName = tls?.clusterIssuer ?? endpointConfig.settings?.tls?.clusterIssuer ?? 'letsencrypt-prod';
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
if (tls && !hasCertManager) {
|
|
59
|
-
resources.push((0, core_1.declareOperator)(crds_1.operators['cert-manager']()));
|
|
60
|
-
}
|
|
61
|
-
if (!hasEnvoyGateway) {
|
|
62
|
-
resources.push((0, core_1.declareOperator)(crds_1.operators['envoy-gateway']()));
|
|
75
|
+
if (tls) {
|
|
76
|
+
resources.push(...(0, operator_cert_manager_1.declareIfMissing)(sharedOperators));
|
|
63
77
|
}
|
|
78
|
+
resources.push(...(0, operator_envoy_gateway_1.declareIfMissing)(sharedOperators));
|
|
64
79
|
if (tls) {
|
|
65
80
|
resources.push((0, core_1.jsx)('Certificate', {
|
|
66
81
|
apiVersion: 'cert-manager.io/v1',
|
|
@@ -159,13 +174,9 @@ function Endpoint(props) {
|
|
|
159
174
|
}));
|
|
160
175
|
}
|
|
161
176
|
else {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
resources.push((0, core_1.declareOperator)((0, operators_1.nginxIngressOperator)()));
|
|
166
|
-
}
|
|
167
|
-
if (tls && !hasCertManager) {
|
|
168
|
-
resources.push((0, core_1.declareOperator)(crds_1.operators['cert-manager']()));
|
|
177
|
+
resources.push(...(0, operator_nginx_ingress_1.declareIfMissing)(sharedOperators));
|
|
178
|
+
if (tls) {
|
|
179
|
+
resources.push(...(0, operator_cert_manager_1.declareIfMissing)(sharedOperators));
|
|
169
180
|
}
|
|
170
181
|
const ingress = {
|
|
171
182
|
apiVersion: 'networking.k8s.io/v1',
|
|
@@ -232,10 +243,7 @@ function Endpoint(props) {
|
|
|
232
243
|
// nowhere, so we deliberately skip the CR in that case.
|
|
233
244
|
const dnsTargets = dnsConfig?.settings?.targets;
|
|
234
245
|
if (createDnsRecord) {
|
|
235
|
-
|
|
236
|
-
if (!hasExternalDNS) {
|
|
237
|
-
resources.push((0, core_1.declareOperator)(crds_1.operators['external-dns']()));
|
|
238
|
-
}
|
|
246
|
+
resources.push(...(0, operator_external_dns_1.declareIfMissing)(sharedOperators));
|
|
239
247
|
if (dnsTargets && dnsTargets.length > 0) {
|
|
240
248
|
resources.push((0, externaldns_1.DNSEndpointComponent)({
|
|
241
249
|
metadata: { name: `${name}-dns`, namespace },
|
package/dist/endpoint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.tsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.tsx"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Actionable errors for the recurring "app needs secrets but no
|
|
3
|
+
* provisioning backend exists" case. Packages reference this factory
|
|
4
|
+
* instead of hand-writing the same 15-line guidance block per app —
|
|
5
|
+
* the advice lives in one place.
|
|
6
|
+
*/
|
|
7
|
+
export interface SecretsRequiredOptions {
|
|
8
|
+
/** Prop that carries the fallback pre-created Secret name */
|
|
9
|
+
propName?: string;
|
|
10
|
+
/** Example Secret name to suggest */
|
|
11
|
+
exampleValue?: string;
|
|
12
|
+
/** Expected keys on the pre-created Secret */
|
|
13
|
+
keys?: string[];
|
|
14
|
+
}
|
|
15
|
+
export declare function secretsRequiredError(app: string, resourceName: string, what: string, opts?: SecretsRequiredOptions): Error;
|
|
16
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qCAAqC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,sBAA2B,GAChC,KAAK,CAgBP"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.secretsRequiredError = secretsRequiredError;
|
|
4
|
+
function secretsRequiredError(app, resourceName, what, opts = {}) {
|
|
5
|
+
const { propName = 'secretsName', exampleValue = `${resourceName}-secrets`, keys } = opts;
|
|
6
|
+
return new Error(`${app} "${resourceName}" requires ${what}\n` +
|
|
7
|
+
`\n` +
|
|
8
|
+
`Secrets must never be rendered as plaintext.\n` +
|
|
9
|
+
`\n` +
|
|
10
|
+
`Fix: configure a provisioning secrets backend on the Platform\n` +
|
|
11
|
+
`(openbao, vault, or any provider with a provision() hook):\n` +
|
|
12
|
+
` <Platform secrets={{ backend: 'openbao', mount: 'kv', path: 'apps' }}>\n` +
|
|
13
|
+
` <${app} name="${resourceName}" />\n` +
|
|
14
|
+
` </Platform>\n` +
|
|
15
|
+
`\n` +
|
|
16
|
+
`Or reference a pre-created Secret${keys ? ` (keys: ${keys.join(', ')})` : ''}:\n` +
|
|
17
|
+
` ${propName}: "${exampleValue}"`);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;AAeA,oDAqBC;AArBD,SAAgB,oBAAoB,CAClC,GAAW,EACX,YAAoB,EACpB,IAAY,EACZ,OAA+B,EAAE;IAEjC,MAAM,EAAE,QAAQ,GAAG,aAAa,EAAE,YAAY,GAAG,GAAG,YAAY,UAAU,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IACzF,OAAO,IAAI,KAAK,CACd,GAAG,GAAG,KAAK,YAAY,cAAc,IAAI,IAAI;QAC3C,IAAI;QACJ,gDAAgD;QAChD,IAAI;QACJ,iEAAiE;QACjE,8DAA8D;QAC9D,4EAA4E;QAC5E,QAAQ,GAAG,UAAU,YAAY,QAAQ;QACzC,iBAAiB;QACjB,IAAI;QACJ,oCAAoC,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK;QAClF,KAAK,QAAQ,MAAM,YAAY,GAAG,CACrC,CAAA;AACH,CAAC"}
|