@guuey/config 0.7.2 → 0.8.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 +51 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +36 -0
- package/dist/schema.d.ts +13 -0
- package/dist/schema.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/app.d.ts
CHANGED
|
@@ -9,6 +9,44 @@
|
|
|
9
9
|
* (agent or mcp-server) is what's deployable; this section is presentation.
|
|
10
10
|
*/
|
|
11
11
|
import { z } from 'zod';
|
|
12
|
+
/**
|
|
13
|
+
* End-user auth modes an app record accepts — mirrors the platform's
|
|
14
|
+
* `USER_AUTH_MODES` (`@guuey-private/types` `security/user-auth-mode.ts`),
|
|
15
|
+
* which this published package cannot import; the backend pins the two
|
|
16
|
+
* lists equal (`handlers/reconcile.test.ts`).
|
|
17
|
+
*/
|
|
18
|
+
export declare const APP_USER_AUTH_MODES: readonly ["anonymous", "native_pool", "byo"];
|
|
19
|
+
export type AppUserAuthMode = (typeof APP_USER_AUTH_MODES)[number];
|
|
20
|
+
/**
|
|
21
|
+
* `guuey.json#app.access` — the app record's ACCESS POLICY, declared in the
|
|
22
|
+
* manifest so `guuey agent apply` (agents-as-code, guuey#190) converges it
|
|
23
|
+
* alongside the agent definition. Field names ARE the platform API's
|
|
24
|
+
* (`PUT /v1/apps/:id` / the reconcile `config` block): no translation.
|
|
25
|
+
*
|
|
26
|
+
* PUT-per-field semantics: a field that is absent is left untouched by a
|
|
27
|
+
* reconcile (never reset). `userAuthConfig: null` is the explicit "clear the
|
|
28
|
+
* issuer binding". The hosted `GuueyApp` row remains the only enforcement
|
|
29
|
+
* source — this block is the DECLARATION reconcile makes it agree with;
|
|
30
|
+
* the pod ignores it.
|
|
31
|
+
*
|
|
32
|
+
* Tier is deliberately absent (admin plane, never CI); slug/customDomain/
|
|
33
|
+
* listing stay declared-not-converged (they have their own ceremonies).
|
|
34
|
+
*/
|
|
35
|
+
export declare const AppAccessV1: z.ZodObject<{
|
|
36
|
+
userAuthMode: z.ZodOptional<z.ZodEnum<{
|
|
37
|
+
anonymous: "anonymous";
|
|
38
|
+
native_pool: "native_pool";
|
|
39
|
+
byo: "byo";
|
|
40
|
+
}>>;
|
|
41
|
+
userAuthConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
42
|
+
issuerUrl: z.ZodString;
|
|
43
|
+
audience: z.ZodString;
|
|
44
|
+
}, z.core.$strict>>>;
|
|
45
|
+
allowedDomains: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
46
|
+
guestAccess: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
47
|
+
}, z.core.$strict>;
|
|
48
|
+
/** Static TypeScript type for `app.access`. */
|
|
49
|
+
export type GuueyAppAccess = z.infer<typeof AppAccessV1>;
|
|
12
50
|
/**
|
|
13
51
|
* The app section schema. All fields optional in v1 — a project may carry
|
|
14
52
|
* the bare minimum at first and grow the listing as it publishes.
|
|
@@ -20,6 +58,19 @@ export declare const AppSectionV1: z.ZodObject<{
|
|
|
20
58
|
iconUrl: z.ZodOptional<z.ZodURL>;
|
|
21
59
|
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
22
60
|
customDomain: z.ZodOptional<z.ZodString>;
|
|
61
|
+
access: z.ZodOptional<z.ZodObject<{
|
|
62
|
+
userAuthMode: z.ZodOptional<z.ZodEnum<{
|
|
63
|
+
anonymous: "anonymous";
|
|
64
|
+
native_pool: "native_pool";
|
|
65
|
+
byo: "byo";
|
|
66
|
+
}>>;
|
|
67
|
+
userAuthConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
68
|
+
issuerUrl: z.ZodString;
|
|
69
|
+
audience: z.ZodString;
|
|
70
|
+
}, z.core.$strict>>>;
|
|
71
|
+
allowedDomains: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
72
|
+
guestAccess: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
73
|
+
}, z.core.$strict>>;
|
|
23
74
|
}, z.core.$strict>;
|
|
24
75
|
/** Static TypeScript type for the app section. */
|
|
25
76
|
export type GuueyApp = z.infer<typeof AppSectionV1>;
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0CxB;;;GAGG;AACH,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0CxB;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,8CAA+C,CAAC;AAChF,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;kBAWtB,CAAC;AAEH,+CAA+C;AAC/C,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;kBASvB,CAAC;AAEH,kDAAkD;AAClD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
package/dist/app.js
CHANGED
|
@@ -40,6 +40,40 @@ const CustomDomainSchema = z
|
|
|
40
40
|
.min(4)
|
|
41
41
|
.max(253)
|
|
42
42
|
.regex(/^(?=.{1,253}$)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,63}$/i, 'must be a valid fully-qualified domain name');
|
|
43
|
+
/**
|
|
44
|
+
* End-user auth modes an app record accepts — mirrors the platform's
|
|
45
|
+
* `USER_AUTH_MODES` (`@guuey-private/types` `security/user-auth-mode.ts`),
|
|
46
|
+
* which this published package cannot import; the backend pins the two
|
|
47
|
+
* lists equal (`handlers/reconcile.test.ts`).
|
|
48
|
+
*/
|
|
49
|
+
export const APP_USER_AUTH_MODES = ['anonymous', 'native_pool', 'byo'];
|
|
50
|
+
/**
|
|
51
|
+
* `guuey.json#app.access` — the app record's ACCESS POLICY, declared in the
|
|
52
|
+
* manifest so `guuey agent apply` (agents-as-code, guuey#190) converges it
|
|
53
|
+
* alongside the agent definition. Field names ARE the platform API's
|
|
54
|
+
* (`PUT /v1/apps/:id` / the reconcile `config` block): no translation.
|
|
55
|
+
*
|
|
56
|
+
* PUT-per-field semantics: a field that is absent is left untouched by a
|
|
57
|
+
* reconcile (never reset). `userAuthConfig: null` is the explicit "clear the
|
|
58
|
+
* issuer binding". The hosted `GuueyApp` row remains the only enforcement
|
|
59
|
+
* source — this block is the DECLARATION reconcile makes it agree with;
|
|
60
|
+
* the pod ignores it.
|
|
61
|
+
*
|
|
62
|
+
* Tier is deliberately absent (admin plane, never CI); slug/customDomain/
|
|
63
|
+
* listing stay declared-not-converged (they have their own ceremonies).
|
|
64
|
+
*/
|
|
65
|
+
export const AppAccessV1 = z.strictObject({
|
|
66
|
+
userAuthMode: z.enum(APP_USER_AUTH_MODES).optional(),
|
|
67
|
+
userAuthConfig: z
|
|
68
|
+
.strictObject({
|
|
69
|
+
issuerUrl: z.string().min(1),
|
|
70
|
+
audience: z.string().min(1),
|
|
71
|
+
})
|
|
72
|
+
.nullable()
|
|
73
|
+
.optional(),
|
|
74
|
+
allowedDomains: z.array(z.string().min(1)).optional(),
|
|
75
|
+
guestAccess: z.boolean().nullable().optional(),
|
|
76
|
+
});
|
|
43
77
|
/**
|
|
44
78
|
* The app section schema. All fields optional in v1 — a project may carry
|
|
45
79
|
* the bare minimum at first and grow the listing as it publishes.
|
|
@@ -51,4 +85,6 @@ export const AppSectionV1 = z.strictObject({
|
|
|
51
85
|
iconUrl: z.url().optional(),
|
|
52
86
|
tags: z.array(TagSchema).max(10).optional(),
|
|
53
87
|
customDomain: CustomDomainSchema.optional(),
|
|
88
|
+
/** Access policy converged by `guuey agent apply` — see {@link AppAccessV1}. */
|
|
89
|
+
access: AppAccessV1.optional(),
|
|
54
90
|
});
|
package/dist/schema.d.ts
CHANGED
|
@@ -164,6 +164,19 @@ export declare const GuueyJsonV1: z.ZodObject<{
|
|
|
164
164
|
iconUrl: z.ZodOptional<z.ZodURL>;
|
|
165
165
|
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
166
166
|
customDomain: z.ZodOptional<z.ZodString>;
|
|
167
|
+
access: z.ZodOptional<z.ZodObject<{
|
|
168
|
+
userAuthMode: z.ZodOptional<z.ZodEnum<{
|
|
169
|
+
anonymous: "anonymous";
|
|
170
|
+
native_pool: "native_pool";
|
|
171
|
+
byo: "byo";
|
|
172
|
+
}>>;
|
|
173
|
+
userAuthConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
174
|
+
issuerUrl: z.ZodString;
|
|
175
|
+
audience: z.ZodString;
|
|
176
|
+
}, z.core.$strict>>>;
|
|
177
|
+
allowedDomains: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
178
|
+
guestAccess: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
179
|
+
}, z.core.$strict>>;
|
|
167
180
|
}, z.core.$strict>>;
|
|
168
181
|
ggui: z.ZodOptional<z.ZodObject<{
|
|
169
182
|
appId: z.ZodOptional<z.ZodString>;
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEjE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEjE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAmDtB,CAAC;AAEH,kDAAkD;AAClD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAG3D,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,CAExD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,OAAO,GACX,UAAU,CAAC,OAAO,WAAW,CAAC,SAAS,CAAC,CAE1C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@guuey/config",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Open-source schemas + loaders for the three guuey config files: agent.json (declarative agent definition), guuey.json (hosted-deploy overlay), and the helper types around them. Consumed by @guuey/cli, the guuey backend, and devs writing their own agent or MCP server.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|