@r8s/outline 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.
- package/dist/index.d.ts +21 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -25
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type DatabaseProps } from '@r8s/recipes';
|
|
1
|
+
import { type BucketProps, type DatabaseProps } from '@r8s/recipes';
|
|
2
2
|
import type { SecretRef } from '@r8s/recipes';
|
|
3
3
|
export interface OutlineProps {
|
|
4
4
|
/** Resource name (defaults to 'outline') */
|
|
@@ -46,8 +46,15 @@ export interface OutlineProps {
|
|
|
46
46
|
};
|
|
47
47
|
/**
|
|
48
48
|
* S3-compatible object storage for attachments (RustFS in the platform).
|
|
49
|
-
*
|
|
50
|
-
* the
|
|
49
|
+
* Resolution order: this prop → a `<Bucket name="…" />` descriptor →
|
|
50
|
+
* derived from the surrounding `<S3Provider>` (omit it entirely there —
|
|
51
|
+
* attachments and database backups then share one declared source).
|
|
52
|
+
*
|
|
53
|
+
* Storage-API-style consumers take a BUCKET NAME, not a prefixed path:
|
|
54
|
+
* a descriptor's `bucket` override selects the bucket, its `name` is
|
|
55
|
+
* only the logical scope (prefix). The bucket's credentials must live
|
|
56
|
+
* in a Secret provisioned by the secrets backend (keys: accessKey,
|
|
57
|
+
* secretKey) — never plaintext.
|
|
51
58
|
*/
|
|
52
59
|
objectStorage?: {
|
|
53
60
|
/** S3 endpoint URL, e.g. https://s3.internal.example.com */
|
|
@@ -58,6 +65,9 @@ export interface OutlineProps {
|
|
|
58
65
|
credentialsSecret: string;
|
|
59
66
|
/** Region string for Outline's S3 client (defaults to 'us-east-1') */
|
|
60
67
|
region?: string;
|
|
68
|
+
} | {
|
|
69
|
+
type: unknown;
|
|
70
|
+
props: BucketProps;
|
|
61
71
|
};
|
|
62
72
|
/**
|
|
63
73
|
* OIDC SSO client — register Outline as a client in Keycloak (the
|
|
@@ -122,22 +132,24 @@ export interface OutlineProps {
|
|
|
122
132
|
* backend (openbao / vault), or referenced from an existing Secret
|
|
123
133
|
* - OIDC SSO against the Keycloak `Auth` recipe
|
|
124
134
|
*
|
|
135
|
+
* Under an `<S3Provider>` both the database backups and the attachments'
|
|
136
|
+
* object storage derive from it — `objectStorage` can be omitted entirely.
|
|
137
|
+
* Pass it only to target a different bucket than the provider's, either as
|
|
138
|
+
* a plain object or as `<Bucket name="…" bucket="…" />` (the descriptor's
|
|
139
|
+
* `bucket` selects the bucket; `name` is the logical scope).
|
|
140
|
+
*
|
|
125
141
|
* @example
|
|
126
142
|
* import { Platform, S3Provider, MinIO } from '@r8s/recipes'
|
|
127
143
|
* import { Outline } from '@r8s/outline'
|
|
128
144
|
*
|
|
129
|
-
* // Backups default to on — the S3Provider
|
|
145
|
+
* // Backups default to on, objectStorage derives — the S3Provider
|
|
146
|
+
* // supplies both targets and credentials
|
|
130
147
|
* export default (
|
|
131
148
|
* <S3Provider provider={<MinIO endpoint="https://rustfs:9000" bucket="infra" credentialsSecret="infra-s3-creds" />}>
|
|
132
149
|
* <Platform secrets={{ backend: 'openbao', mount: 'kv', path: 'apps' }}>
|
|
133
150
|
* <Outline
|
|
134
151
|
* name="wiki"
|
|
135
152
|
* host="wiki.example.com"
|
|
136
|
-
* objectStorage={{
|
|
137
|
-
* endpoint: 'https://s3.internal.example.com',
|
|
138
|
-
* bucket: 'wiki-attachments',
|
|
139
|
-
* credentialsSecret: 'wiki-attachments-credentials',
|
|
140
|
-
* }}
|
|
141
153
|
* sso={{
|
|
142
154
|
* issuer: 'https://keycloak.example.com/realms/platform',
|
|
143
155
|
* clientId: 'outline',
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAWL,KAAK,WAAW,EAChB,KAAK,aAAa,EACnB,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAG7C,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IAChC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uEAAuE;IACvE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,2EAA2E;IAC3E,KAAK,CAAC,EAAE;QACN,2CAA2C;QAC3C,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,+BAA+B;QAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,iDAAiD;QACjD,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,gEAAgE;QAChE,QAAQ,CAAC,EAAE,OAAO,CAAA;KACnB,CAAA;IACD;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EACV;QACE,4DAA4D;QAC5D,QAAQ,EAAE,MAAM,CAAA;QAChB,kCAAkC;QAClC,MAAM,EAAE,MAAM,CAAA;QACd,uDAAuD;QACvD,iBAAiB,EAAE,MAAM,CAAA;QACzB,sEAAsE;QACtE,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,GACD;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,CAAA;IACzC;;;;;OAKG;IACH,GAAG,CAAC,EAAE;QACJ,MAAM,EAAE,MAAM,CAAA;QACd,8DAA8D;QAC9D,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,kEAAkE;QAClE,eAAe,CAAC,EAAE,SAAS,CAAA;QAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,6DAA6D;QAC7D,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,yDAAyD;QACzD,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,iDAAiD;QACjD,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;IACD;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0BAA0B;IAC1B,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,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,iDAAiD;IACjD,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5C,sEAAsE;IACtE,GAAG,CAAC,EAAE;QACJ,UAAU,EAAE,MAAM,CAAA;QAClB,aAAa,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,kCAgR1C"}
|
package/dist/index.js
CHANGED
|
@@ -21,22 +21,24 @@ const operator_redis_1 = require("@r8s/operator-redis");
|
|
|
21
21
|
* backend (openbao / vault), or referenced from an existing Secret
|
|
22
22
|
* - OIDC SSO against the Keycloak `Auth` recipe
|
|
23
23
|
*
|
|
24
|
+
* Under an `<S3Provider>` both the database backups and the attachments'
|
|
25
|
+
* object storage derive from it — `objectStorage` can be omitted entirely.
|
|
26
|
+
* Pass it only to target a different bucket than the provider's, either as
|
|
27
|
+
* a plain object or as `<Bucket name="…" bucket="…" />` (the descriptor's
|
|
28
|
+
* `bucket` selects the bucket; `name` is the logical scope).
|
|
29
|
+
*
|
|
24
30
|
* @example
|
|
25
31
|
* import { Platform, S3Provider, MinIO } from '@r8s/recipes'
|
|
26
32
|
* import { Outline } from '@r8s/outline'
|
|
27
33
|
*
|
|
28
|
-
* // Backups default to on — the S3Provider
|
|
34
|
+
* // Backups default to on, objectStorage derives — the S3Provider
|
|
35
|
+
* // supplies both targets and credentials
|
|
29
36
|
* export default (
|
|
30
37
|
* <S3Provider provider={<MinIO endpoint="https://rustfs:9000" bucket="infra" credentialsSecret="infra-s3-creds" />}>
|
|
31
38
|
* <Platform secrets={{ backend: 'openbao', mount: 'kv', path: 'apps' }}>
|
|
32
39
|
* <Outline
|
|
33
40
|
* name="wiki"
|
|
34
41
|
* host="wiki.example.com"
|
|
35
|
-
* objectStorage={{
|
|
36
|
-
* endpoint: 'https://s3.internal.example.com',
|
|
37
|
-
* bucket: 'wiki-attachments',
|
|
38
|
-
* credentialsSecret: 'wiki-attachments-credentials',
|
|
39
|
-
* }}
|
|
40
42
|
* sso={{
|
|
41
43
|
* issuer: 'https://keycloak.example.com/realms/platform',
|
|
42
44
|
* clientId: 'outline',
|
|
@@ -57,7 +59,10 @@ function Outline(props) {
|
|
|
57
59
|
const namespace = (0, defaults_1.useNamespace)(namespaceProp);
|
|
58
60
|
const resources_ = [];
|
|
59
61
|
const dbHost = `${name}-rw`;
|
|
60
|
-
|
|
62
|
+
// DB-password Secret per the central credentials contract: the backend
|
|
63
|
+
// provisions `<name>-db-credentials`; without a backend CNPG generates
|
|
64
|
+
// `<name>-app` (CloudNativePG does not create referenced initdb secrets).
|
|
65
|
+
const dbCredentialsRef = (0, recipes_1.databaseCredentialsRef)(name, secretProvider);
|
|
61
66
|
const platformSecretsName = secretsName ?? `${name}-app-secrets`;
|
|
62
67
|
// --- App secrets (SECRET_KEY / UTILS_SECRET) ------------------------------
|
|
63
68
|
if (!secretsName) {
|
|
@@ -92,6 +97,12 @@ function Outline(props) {
|
|
|
92
97
|
if (cache) {
|
|
93
98
|
resources_.push(...(0, operator_redis_1.declareIfMissing)(sharedOperators));
|
|
94
99
|
}
|
|
100
|
+
// --- Object storage (attachments) — derived from the S3Provider ------------
|
|
101
|
+
// Same resolution contract as Database's backup decision (#115): an
|
|
102
|
+
// explicit object wins, a <Bucket/> descriptor points attachments at
|
|
103
|
+
// another store, and omission under an <S3Provider> derives everything.
|
|
104
|
+
const s3 = (0, recipes_1.useS3)();
|
|
105
|
+
const store = (0, recipes_1.resolveObjectStorage)('Outline', name, 'attachments are stored in an S3 bucket', objectStorage, s3);
|
|
95
106
|
// Redis — caching + websockets. Standalone is the facit shape: durable via
|
|
96
107
|
// a 1Gi PVC, observable via the exporter sidecar, sized 100m/256Mi→250m/512Mi.
|
|
97
108
|
// (A Replication topology exists for durable queues; Outline's cache can
|
|
@@ -172,17 +183,13 @@ function Outline(props) {
|
|
|
172
183
|
ENABLE_UPDATES: 'false',
|
|
173
184
|
LOG_LEVEL: 'info',
|
|
174
185
|
...(cache ? { REDIS_URL: `redis://${name}-redis:6379` } : {}),
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
AWS_S3_FORCE_PATH_STYLE: 'true',
|
|
183
|
-
AWS_S3_ACL: 'private',
|
|
184
|
-
}
|
|
185
|
-
: {}),
|
|
186
|
+
FILE_STORAGE: 's3',
|
|
187
|
+
AWS_REGION: store.region ?? 'us-east-1',
|
|
188
|
+
// Facit semantics: this is the ENDPOINT only, not endpoint/bucket
|
|
189
|
+
AWS_S3_UPLOAD_BUCKET_URL: store.endpoint,
|
|
190
|
+
AWS_S3_UPLOAD_BUCKET_NAME: store.bucket,
|
|
191
|
+
AWS_S3_FORCE_PATH_STYLE: 'true',
|
|
192
|
+
AWS_S3_ACL: 'private',
|
|
186
193
|
...(sso
|
|
187
194
|
? {
|
|
188
195
|
OIDC_DISPLAY_NAME: sso.displayName ?? 'SSO',
|
|
@@ -206,13 +213,9 @@ function Outline(props) {
|
|
|
206
213
|
const secrets = {
|
|
207
214
|
SECRET_KEY: { secret: platformSecretsName, key: 'SECRET_KEY' },
|
|
208
215
|
UTILS_SECRET: { secret: platformSecretsName, key: 'UTILS_SECRET' },
|
|
209
|
-
PGPASSWORD: { secret:
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
AWS_ACCESS_KEY_ID: { secret: objectStorage.credentialsSecret, key: 'accessKey' },
|
|
213
|
-
AWS_SECRET_ACCESS_KEY: { secret: objectStorage.credentialsSecret, key: 'secretKey' },
|
|
214
|
-
}
|
|
215
|
-
: {}),
|
|
216
|
+
PGPASSWORD: { secret: dbCredentialsRef.name, key: dbCredentialsRef.key },
|
|
217
|
+
AWS_ACCESS_KEY_ID: { secret: store.credentialsSecret, key: 'accessKey' },
|
|
218
|
+
AWS_SECRET_ACCESS_KEY: { secret: store.credentialsSecret, key: 'secretKey' },
|
|
216
219
|
...(sso
|
|
217
220
|
? {
|
|
218
221
|
OIDC_CLIENT_SECRET: sso.clientSecretRef ?? {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|