@caracalai/admin 0.1.6-rc.3 → 0.2.0-rc.2
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/client.d.ts +66 -34
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +174 -72
- package/dist/client.js.map +1 -1
- package/dist/control.d.ts +36 -0
- package/dist/control.d.ts.map +1 -0
- package/dist/control.js +152 -0
- package/dist/control.js.map +1 -0
- package/dist/ensure.d.ts +74 -0
- package/dist/ensure.d.ts.map +1 -0
- package/dist/ensure.js +256 -0
- package/dist/ensure.js.map +1 -0
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +152 -73
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface ControlClientOptions {
|
|
2
|
+
stsUrl: string;
|
|
3
|
+
controlUrl: string;
|
|
4
|
+
audience: string;
|
|
5
|
+
applicationId: string;
|
|
6
|
+
clientSecret: string;
|
|
7
|
+
ttlSeconds?: number;
|
|
8
|
+
zoneScope?: string;
|
|
9
|
+
authorizedBy?: string;
|
|
10
|
+
coAuthorOperator?: boolean;
|
|
11
|
+
requestId?: string;
|
|
12
|
+
timeoutMs?: number;
|
|
13
|
+
signal?: AbortSignal;
|
|
14
|
+
fetchImpl?: typeof fetch;
|
|
15
|
+
}
|
|
16
|
+
export declare class ControlClientError extends Error {
|
|
17
|
+
readonly stage: 'token' | 'invoke';
|
|
18
|
+
readonly status: number;
|
|
19
|
+
readonly reason: string;
|
|
20
|
+
readonly code?: string | undefined;
|
|
21
|
+
readonly remediation?: string | undefined;
|
|
22
|
+
constructor(stage: 'token' | 'invoke', status: number, reason: string, code?: string | undefined, remediation?: string | undefined);
|
|
23
|
+
get definitive(): boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare class ControlClient {
|
|
26
|
+
private readonly options;
|
|
27
|
+
private readonly stsUrl;
|
|
28
|
+
private readonly controlUrl;
|
|
29
|
+
private readonly fetchImpl;
|
|
30
|
+
constructor(options: ControlClientOptions);
|
|
31
|
+
private mintToken;
|
|
32
|
+
private exchangeToken;
|
|
33
|
+
private send;
|
|
34
|
+
invoke(command: string, subcommand: string, flags: Record<string, unknown>, scopes: readonly string[]): Promise<unknown>;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=control.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../src/control.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IAIpB,UAAU,CAAC,EAAE,MAAM,CAAA;IAMnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAKlB,YAAY,CAAC,EAAE,MAAM,CAAA;IAIrB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAI1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAGlB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CACzB;AAMD,qBAAa,kBAAmB,SAAQ,KAAK;aAEzB,KAAK,EAAE,OAAO,GAAG,QAAQ;aACzB,MAAM,EAAE,MAAM;aACd,MAAM,EAAE,MAAM;aACd,IAAI,CAAC,EAAE,MAAM;aACb,WAAW,CAAC,EAAE,MAAM;gBAJpB,KAAK,EAAE,OAAO,GAAG,QAAQ,EACzB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,WAAW,CAAC,EAAE,MAAM,YAAA;IAStC,IAAI,UAAU,IAAI,OAAO,CAExB;CACF;AAqCD,qBAAa,aAAa;IAKZ,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;gBAEX,OAAO,EAAE,oBAAoB;YAU5C,SAAS;YAIT,aAAa;YAmCb,IAAI;IAQZ,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CA6B/H"}
|
package/dist/control.js
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
// Copyright (C) 2026 Garudex Labs. All Rights Reserved.
|
|
2
|
+
// Caracal, a product of Garudex Labs
|
|
3
|
+
//
|
|
4
|
+
// Control API client that mints a scoped, single-use Caracal token per call and invokes a control command through the governed /v1/control/invoke path.
|
|
5
|
+
const STS_TOKEN_PATH = '/oauth/2/token';
|
|
6
|
+
const CONTROL_INVOKE_PATH = '/v1/control/invoke';
|
|
7
|
+
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
8
|
+
// A control invoke failed. stage distinguishes a token-exchange failure from a control
|
|
9
|
+
// dispatch failure; status 0 means the request itself failed and no response arrived.
|
|
10
|
+
// reason is already free of the client secret, so it is safe to surface or log. code and
|
|
11
|
+
// remediation are the structured control-plane fields when the failure came from dispatch.
|
|
12
|
+
export class ControlClientError extends Error {
|
|
13
|
+
stage;
|
|
14
|
+
status;
|
|
15
|
+
reason;
|
|
16
|
+
code;
|
|
17
|
+
remediation;
|
|
18
|
+
constructor(stage, status, reason, code, remediation) {
|
|
19
|
+
super(`control ${stage} failed (${status}): ${reason}`);
|
|
20
|
+
this.stage = stage;
|
|
21
|
+
this.status = status;
|
|
22
|
+
this.reason = reason;
|
|
23
|
+
this.code = code;
|
|
24
|
+
this.remediation = remediation;
|
|
25
|
+
this.name = 'ControlClientError';
|
|
26
|
+
}
|
|
27
|
+
// Whether the server definitively rejected the request before accepting it. Lost
|
|
28
|
+
// responses and server failures are outcome-ambiguous at both stages: STS may have
|
|
29
|
+
// minted a token, or Control may have applied the command.
|
|
30
|
+
get definitive() {
|
|
31
|
+
return this.status >= 400 && this.status < 500;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function describeError(body, fallback) {
|
|
35
|
+
const envelope = body?.error;
|
|
36
|
+
if (envelope && typeof envelope === 'object') {
|
|
37
|
+
return { reason: envelope.reason ?? fallback, code: envelope.code, remediation: envelope.remediation };
|
|
38
|
+
}
|
|
39
|
+
return { reason: typeof envelope === 'string' ? envelope : fallback };
|
|
40
|
+
}
|
|
41
|
+
async function readJson(res) {
|
|
42
|
+
const text = await res.text();
|
|
43
|
+
if (text.length === 0)
|
|
44
|
+
return undefined;
|
|
45
|
+
try {
|
|
46
|
+
return JSON.parse(text);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return { raw: text };
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Trims trailing slashes with a linear scan: a quantified-regex trim backtracks
|
|
53
|
+
// quadratically on long slash runs (js/polynomial-redos), and the URL is library input.
|
|
54
|
+
function trimTrailingSlashes(url) {
|
|
55
|
+
let end = url.length;
|
|
56
|
+
while (end > 0 && url[end - 1] === '/')
|
|
57
|
+
end--;
|
|
58
|
+
return url.slice(0, end);
|
|
59
|
+
}
|
|
60
|
+
// A control-plane client bound to one identity. Each invoke mints a fresh token scoped to
|
|
61
|
+
// exactly the scopes that call requires, so an action carries the least authority that
|
|
62
|
+
// satisfies it and a leaked token grants nothing beyond that one operation. The caller
|
|
63
|
+
// decides what to invoke and with which scopes; this client only carries it to the
|
|
64
|
+
// governed control surface.
|
|
65
|
+
export class ControlClient {
|
|
66
|
+
options;
|
|
67
|
+
stsUrl;
|
|
68
|
+
controlUrl;
|
|
69
|
+
fetchImpl;
|
|
70
|
+
constructor(options) {
|
|
71
|
+
this.options = options;
|
|
72
|
+
this.stsUrl = trimTrailingSlashes(options.stsUrl);
|
|
73
|
+
this.controlUrl = trimTrailingSlashes(options.controlUrl);
|
|
74
|
+
this.fetchImpl = options.fetchImpl ?? fetch;
|
|
75
|
+
}
|
|
76
|
+
// Exchanges the identity's client credentials for a Caracal control token scoped to
|
|
77
|
+
// exactly the requested scopes. The STS narrows the token to the intersection of the
|
|
78
|
+
// identity's allowed scopes and those requested, so an over-broad request can never
|
|
79
|
+
// widen authority beyond what the identity was granted.
|
|
80
|
+
async mintToken(scopes, signal) {
|
|
81
|
+
return this.exchangeToken(scopes, signal);
|
|
82
|
+
}
|
|
83
|
+
async exchangeToken(scopes, signal) {
|
|
84
|
+
const form = new URLSearchParams({
|
|
85
|
+
grant_type: 'urn:ietf:params:oauth:grant-type:token-exchange',
|
|
86
|
+
application_id: this.options.applicationId,
|
|
87
|
+
client_secret: this.options.clientSecret,
|
|
88
|
+
resource: this.options.audience,
|
|
89
|
+
scope: scopes.join(' '),
|
|
90
|
+
});
|
|
91
|
+
if (this.options.ttlSeconds !== undefined)
|
|
92
|
+
form.set('ttl_seconds', String(this.options.ttlSeconds));
|
|
93
|
+
const headers = { 'content-type': 'application/x-www-form-urlencoded' };
|
|
94
|
+
if (this.options.requestId)
|
|
95
|
+
headers['x-request-id'] = this.options.requestId;
|
|
96
|
+
const res = await this.send('token', `${this.stsUrl}${STS_TOKEN_PATH}`, {
|
|
97
|
+
method: 'POST',
|
|
98
|
+
headers,
|
|
99
|
+
body: form.toString(),
|
|
100
|
+
}, signal);
|
|
101
|
+
const body = await readJson(res);
|
|
102
|
+
if (!res.ok) {
|
|
103
|
+
const { reason, code, remediation } = describeError(body, 'token exchange rejected');
|
|
104
|
+
throw new ControlClientError('token', res.status, reason, code, remediation);
|
|
105
|
+
}
|
|
106
|
+
const token = body?.access_token;
|
|
107
|
+
if (typeof token !== 'string' || token.length === 0) {
|
|
108
|
+
throw new ControlClientError('token', res.status, 'token exchange returned no access_token');
|
|
109
|
+
}
|
|
110
|
+
return token;
|
|
111
|
+
}
|
|
112
|
+
// Carries a request to the wire, normalizing a thrown network failure into the error
|
|
113
|
+
// taxonomy as status 0 so every failure a caller sees carries a stage and a status.
|
|
114
|
+
async send(stage, url, init, signal) {
|
|
115
|
+
try {
|
|
116
|
+
return await this.fetchImpl(url, { ...init, signal });
|
|
117
|
+
}
|
|
118
|
+
catch (err) {
|
|
119
|
+
throw new ControlClientError(stage, 0, err instanceof Error ? err.message : 'network request failed');
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
async invoke(command, subcommand, flags, scopes) {
|
|
123
|
+
const timeoutMs = this.options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
124
|
+
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0)
|
|
125
|
+
throw new Error('ControlClient timeoutMs must be a positive number');
|
|
126
|
+
const timeout = AbortSignal.timeout(timeoutMs);
|
|
127
|
+
const signal = this.options.signal ? AbortSignal.any([timeout, this.options.signal]) : timeout;
|
|
128
|
+
const token = await this.mintToken(scopes, signal);
|
|
129
|
+
const headers = { 'content-type': 'application/json', authorization: `Bearer ${token}` };
|
|
130
|
+
if (this.options.zoneScope)
|
|
131
|
+
headers['x-caracal-zone-scope'] = this.options.zoneScope;
|
|
132
|
+
if (this.options.requestId)
|
|
133
|
+
headers['x-request-id'] = this.options.requestId;
|
|
134
|
+
const invokeBody = { command, subcommand, flags };
|
|
135
|
+
if (this.options.authorizedBy)
|
|
136
|
+
invokeBody.authorized_by = this.options.authorizedBy;
|
|
137
|
+
if (this.options.coAuthorOperator)
|
|
138
|
+
invokeBody.co_author_operator = true;
|
|
139
|
+
const res = await this.send('invoke', `${this.controlUrl}${CONTROL_INVOKE_PATH}`, {
|
|
140
|
+
method: 'POST',
|
|
141
|
+
headers,
|
|
142
|
+
body: JSON.stringify(invokeBody),
|
|
143
|
+
}, signal);
|
|
144
|
+
const body = await readJson(res);
|
|
145
|
+
if (!res.ok) {
|
|
146
|
+
const { reason, code, remediation } = describeError(body, 'control invoke rejected');
|
|
147
|
+
throw new ControlClientError('invoke', res.status, reason, code, remediation);
|
|
148
|
+
}
|
|
149
|
+
return body?.result;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=control.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control.js","sourceRoot":"","sources":["../src/control.ts"],"names":[],"mappings":"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"}
|
package/dist/ensure.d.ts
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { AdminClient } from './client.js';
|
|
2
|
+
import type { APIKeyProviderConfig, OAuth2ClientCredentialsProviderConfig, ProviderIdentifier, Resource, ResourceOperationEnforcement } from './types.js';
|
|
3
|
+
export interface EnsureApplicationInput {
|
|
4
|
+
name: string;
|
|
5
|
+
traits: string[];
|
|
6
|
+
clientSecret: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function ensureApplication(client: AdminClient, zoneId: string, input: EnsureApplicationInput): Promise<string>;
|
|
9
|
+
export interface EnsureApiKeyProviderInput {
|
|
10
|
+
name: string;
|
|
11
|
+
identifier: ProviderIdentifier;
|
|
12
|
+
publicConfig: APIKeyProviderConfig;
|
|
13
|
+
apiKey?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function ensureApiKeyProvider(client: AdminClient, zoneId: string, input: EnsureApiKeyProviderInput): Promise<string | null>;
|
|
16
|
+
export interface EnsureClientCredentialsProviderInput {
|
|
17
|
+
name: string;
|
|
18
|
+
identifier: ProviderIdentifier;
|
|
19
|
+
publicConfig: OAuth2ClientCredentialsProviderConfig;
|
|
20
|
+
clientSecret?: string;
|
|
21
|
+
privateKey?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare function ensureClientCredentialsProvider(client: AdminClient, zoneId: string, input: EnsureClientCredentialsProviderInput): Promise<string | null>;
|
|
24
|
+
export interface EnsureResourceInput {
|
|
25
|
+
name: string;
|
|
26
|
+
identifier: string;
|
|
27
|
+
scopes: string[];
|
|
28
|
+
upstream_url?: string | null;
|
|
29
|
+
credential_provider_id?: string | null;
|
|
30
|
+
operation_enforcement?: ResourceOperationEnforcement;
|
|
31
|
+
}
|
|
32
|
+
export declare function ensureResource(client: AdminClient, zoneId: string, input: EnsureResourceInput): Promise<Resource>;
|
|
33
|
+
export interface EnsureActivePolicySetInput {
|
|
34
|
+
policyName: string;
|
|
35
|
+
setName: string;
|
|
36
|
+
content: string;
|
|
37
|
+
createWhenMissing?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export declare function ensureActivePolicySet(client: AdminClient, zoneId: string, input: EnsureActivePolicySetInput): Promise<void>;
|
|
40
|
+
export interface ResourceGrant {
|
|
41
|
+
applicationId: string;
|
|
42
|
+
resourceIdentifier: string;
|
|
43
|
+
scopes: string[];
|
|
44
|
+
role?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface EnsureGrantsInput {
|
|
47
|
+
grants: ResourceGrant[];
|
|
48
|
+
policyName?: string;
|
|
49
|
+
setName?: string;
|
|
50
|
+
}
|
|
51
|
+
export declare function authorGrantsDocument(grants: ResourceGrant[]): string;
|
|
52
|
+
export declare function ensureGrants(client: AdminClient, zoneId: string, input: EnsureGrantsInput): Promise<void>;
|
|
53
|
+
export interface GovernedUpstream {
|
|
54
|
+
provider: EnsureApiKeyProviderInput;
|
|
55
|
+
resource: {
|
|
56
|
+
name: string;
|
|
57
|
+
identifier: string;
|
|
58
|
+
scopes: string[];
|
|
59
|
+
upstream_url: string;
|
|
60
|
+
operation_enforcement?: ResourceOperationEnforcement;
|
|
61
|
+
};
|
|
62
|
+
grants: Omit<ResourceGrant, 'resourceIdentifier'>[];
|
|
63
|
+
}
|
|
64
|
+
export interface EnsureGovernedUpstreamsInput {
|
|
65
|
+
upstreams: GovernedUpstream[];
|
|
66
|
+
policyName?: string;
|
|
67
|
+
setName?: string;
|
|
68
|
+
}
|
|
69
|
+
export interface GovernedUpstreamResult {
|
|
70
|
+
providerId: string;
|
|
71
|
+
resource: Resource;
|
|
72
|
+
}
|
|
73
|
+
export declare function ensureGovernedUpstreams(client: AdminClient, zoneId: string, input: EnsureGovernedUpstreamsInput): Promise<GovernedUpstreamResult[]>;
|
|
74
|
+
//# sourceMappingURL=ensure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensure.d.ts","sourceRoot":"","sources":["../src/ensure.ts"],"names":[],"mappings":"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"}
|
package/dist/ensure.js
ADDED
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
// Copyright (C) 2026 Garudex Labs. All Rights Reserved.
|
|
2
|
+
// Caracal, a product of Garudex Labs
|
|
3
|
+
//
|
|
4
|
+
// Idempotent reconcilers that converge applications, providers, resources, and policy sets to a desired state.
|
|
5
|
+
function sameStringSet(live, desired) {
|
|
6
|
+
const have = new Set(live ?? []);
|
|
7
|
+
return have.size === desired.length && desired.every((value) => have.has(value));
|
|
8
|
+
}
|
|
9
|
+
async function sha256Hex(text) {
|
|
10
|
+
const digest = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(text));
|
|
11
|
+
return [...new Uint8Array(digest)].map((byte) => byte.toString(16).padStart(2, '0')).join('');
|
|
12
|
+
}
|
|
13
|
+
// Converges a managed application to exactly the given trait set and seals the given
|
|
14
|
+
// client secret, creating it when absent. The secret patch on every run is the rotation
|
|
15
|
+
// itself: the previous secret stops working the moment the new one is sealed, which is
|
|
16
|
+
// also how a compromised credential is revoked. An existing same-named identity must be a
|
|
17
|
+
// usable managed credential; a DCR or app-expiring application cannot carry a rotating
|
|
18
|
+
// secret, so binding to it would report the identity configured while every token mint
|
|
19
|
+
// failed. Fail closed instead, so the misconfiguration surfaces rather than hiding.
|
|
20
|
+
// Returns the application id.
|
|
21
|
+
export async function ensureApplication(client, zoneId, input) {
|
|
22
|
+
const apps = await client.applications.list(zoneId);
|
|
23
|
+
const existing = apps.find((app) => app.name === input.name);
|
|
24
|
+
if (!existing) {
|
|
25
|
+
const created = await client.applications.create(zoneId, { name: input.name, registration_method: 'managed', traits: input.traits });
|
|
26
|
+
// Seal the caller's secret so the one-time secret minted at creation is never the
|
|
27
|
+
// running credential.
|
|
28
|
+
await client.applications.patch(zoneId, created.id, { client_secret: input.clientSecret });
|
|
29
|
+
return created.id;
|
|
30
|
+
}
|
|
31
|
+
if (existing.registration_method !== 'managed' || (existing.expires_at !== null && existing.expires_at !== undefined)) {
|
|
32
|
+
throw new Error(`application ${input.name} exists but is not a usable managed credential`);
|
|
33
|
+
}
|
|
34
|
+
if (!sameStringSet(existing.traits, input.traits)) {
|
|
35
|
+
await client.applications.patch(zoneId, existing.id, { traits: input.traits });
|
|
36
|
+
}
|
|
37
|
+
await client.applications.patch(zoneId, existing.id, { client_secret: input.clientSecret });
|
|
38
|
+
return existing.id;
|
|
39
|
+
}
|
|
40
|
+
// Seals an api key into an api_key provider the gateway injects at call time, so the
|
|
41
|
+
// caller never holds the key. When a key is supplied it is reconciled together with the
|
|
42
|
+
// public placement config (the sealed secret cannot be read back, so setting or rotating
|
|
43
|
+
// re-seals). When no key is supplied but the placement may have changed, the existing
|
|
44
|
+
// provider's public config is patched without resupplying the key, so an edit applies and
|
|
45
|
+
// the sealed secret is preserved. A missing provider with no key returns null, marking the
|
|
46
|
+
// credential unconfigured so no resource binds a dead credential.
|
|
47
|
+
export async function ensureApiKeyProvider(client, zoneId, input) {
|
|
48
|
+
const providers = await client.providers.list(zoneId);
|
|
49
|
+
const existing = providers.find((provider) => provider.identifier === input.identifier);
|
|
50
|
+
if (input.apiKey === undefined) {
|
|
51
|
+
if (!existing)
|
|
52
|
+
return null;
|
|
53
|
+
await client.providers.patch(zoneId, existing.id, { config_json: input.publicConfig });
|
|
54
|
+
return existing.id;
|
|
55
|
+
}
|
|
56
|
+
const config = { ...input.publicConfig, api_key: input.apiKey };
|
|
57
|
+
if (!existing) {
|
|
58
|
+
const created = await client.providers.create(zoneId, {
|
|
59
|
+
name: input.name,
|
|
60
|
+
identifier: input.identifier,
|
|
61
|
+
kind: 'api_key',
|
|
62
|
+
config_json: config,
|
|
63
|
+
});
|
|
64
|
+
return created.id;
|
|
65
|
+
}
|
|
66
|
+
await client.providers.patch(zoneId, existing.id, { kind: 'api_key', config_json: config });
|
|
67
|
+
return existing.id;
|
|
68
|
+
}
|
|
69
|
+
// Seals the client credential into an oauth2_client_credentials provider so the caller
|
|
70
|
+
// never holds it after the run. When a client secret or signing key is supplied it is
|
|
71
|
+
// reconciled together with the public config (the sealed secret cannot be read back, so
|
|
72
|
+
// setting or rotating re-seals). When no credential is supplied but the public config may
|
|
73
|
+
// have changed, an existing provider is patched without resupplying the credential, so an
|
|
74
|
+
// edit applies and the sealed secret is preserved. Whether a missing provider without a
|
|
75
|
+
// credential is creatable follows the declared authentication: jwt_bearer grants and
|
|
76
|
+
// every client_auth_method except none require a sealed credential, so absence returns
|
|
77
|
+
// null and no resource binds a dead credential; a public client (none) is complete
|
|
78
|
+
// without one and is created. Returns the provider id.
|
|
79
|
+
export async function ensureClientCredentialsProvider(client, zoneId, input) {
|
|
80
|
+
const providers = await client.providers.list(zoneId);
|
|
81
|
+
const existing = providers.find((provider) => provider.identifier === input.identifier);
|
|
82
|
+
const secrets = {};
|
|
83
|
+
if (input.clientSecret !== undefined)
|
|
84
|
+
secrets.client_secret = input.clientSecret;
|
|
85
|
+
if (input.privateKey !== undefined)
|
|
86
|
+
secrets.private_key = input.privateKey;
|
|
87
|
+
if (Object.keys(secrets).length === 0) {
|
|
88
|
+
const grantType = input.publicConfig.grant_type ?? 'client_credentials';
|
|
89
|
+
const authMethod = input.publicConfig.client_auth_method ?? (grantType === 'jwt_bearer' ? 'none' : 'client_secret_basic');
|
|
90
|
+
if (grantType === 'jwt_bearer' || authMethod !== 'none') {
|
|
91
|
+
if (!existing)
|
|
92
|
+
return null;
|
|
93
|
+
await client.providers.patch(zoneId, existing.id, { config_json: input.publicConfig });
|
|
94
|
+
return existing.id;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
const config = { ...input.publicConfig, ...secrets };
|
|
98
|
+
if (!existing) {
|
|
99
|
+
const created = await client.providers.create(zoneId, {
|
|
100
|
+
name: input.name,
|
|
101
|
+
identifier: input.identifier,
|
|
102
|
+
kind: 'oauth2_client_credentials',
|
|
103
|
+
config_json: config,
|
|
104
|
+
});
|
|
105
|
+
return created.id;
|
|
106
|
+
}
|
|
107
|
+
await client.providers.patch(zoneId, existing.id, { kind: 'oauth2_client_credentials', config_json: config });
|
|
108
|
+
return existing.id;
|
|
109
|
+
}
|
|
110
|
+
// Converges a resource to the given desired fields, creating it when absent and patching
|
|
111
|
+
// it only on drift so a steady state never bumps caches keyed on the resource row. Fields
|
|
112
|
+
// left undefined are not managed: they are excluded from both the drift comparison and the
|
|
113
|
+
// patch, so a reconciler that owns only some fields never clobbers the rest. Declared
|
|
114
|
+
// scopes are the resource's business vocabulary; the platform-reserved agent:lifecycle
|
|
115
|
+
// bootstrap scope is derived by STS for gateway-routed resources and never stored on the
|
|
116
|
+
// row. Returns the live resource.
|
|
117
|
+
export async function ensureResource(client, zoneId, input) {
|
|
118
|
+
const desired = { scopes: input.scopes };
|
|
119
|
+
if (input.upstream_url !== undefined)
|
|
120
|
+
desired.upstream_url = input.upstream_url;
|
|
121
|
+
if (input.credential_provider_id !== undefined)
|
|
122
|
+
desired.credential_provider_id = input.credential_provider_id;
|
|
123
|
+
if (input.operation_enforcement !== undefined)
|
|
124
|
+
desired.operation_enforcement = input.operation_enforcement;
|
|
125
|
+
const resources = await client.resources.list(zoneId);
|
|
126
|
+
const existing = resources.find((resource) => resource.identifier === input.identifier);
|
|
127
|
+
if (!existing) {
|
|
128
|
+
return client.resources.create(zoneId, { name: input.name, identifier: input.identifier, ...desired, scopes: input.scopes });
|
|
129
|
+
}
|
|
130
|
+
const drifted = !sameStringSet(existing.scopes, input.scopes) ||
|
|
131
|
+
(desired.upstream_url !== undefined && existing.upstream_url !== desired.upstream_url) ||
|
|
132
|
+
(desired.credential_provider_id !== undefined && existing.credential_provider_id !== desired.credential_provider_id) ||
|
|
133
|
+
(desired.operation_enforcement !== undefined && existing.operation_enforcement !== desired.operation_enforcement);
|
|
134
|
+
if (!drifted)
|
|
135
|
+
return existing;
|
|
136
|
+
return client.resources.patch(zoneId, existing.id, desired);
|
|
137
|
+
}
|
|
138
|
+
// Converges one named policy and policy set to carry exactly the given content, active.
|
|
139
|
+
// Policy versions are immutable, so a new version is added only when the content's digest
|
|
140
|
+
// changes; the set is re-activated only when the content changed or no version is active,
|
|
141
|
+
// which self-heals a deactivated set without churning a steady state.
|
|
142
|
+
export async function ensureActivePolicySet(client, zoneId, input) {
|
|
143
|
+
const policies = await client.policies.list(zoneId);
|
|
144
|
+
const policy = policies.find((entry) => entry.name === input.policyName);
|
|
145
|
+
if (!policy && input.createWhenMissing === false)
|
|
146
|
+
return;
|
|
147
|
+
const desiredSha = await sha256Hex(input.content);
|
|
148
|
+
let policyVersionId;
|
|
149
|
+
let policyChanged = false;
|
|
150
|
+
if (!policy) {
|
|
151
|
+
const created = await client.policies.create(zoneId, { name: input.policyName, content: input.content });
|
|
152
|
+
policyVersionId = created.version_id;
|
|
153
|
+
policyChanged = true;
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
const detail = await client.policies.get(zoneId, policy.id);
|
|
157
|
+
const latest = detail.versions.reduce((best, version) => (version.version > best.version ? version : best));
|
|
158
|
+
if (latest.content_sha256 === desiredSha) {
|
|
159
|
+
policyVersionId = latest.id;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
const added = await client.policies.addVersion(zoneId, policy.id, input.content);
|
|
163
|
+
policyVersionId = added.version_id;
|
|
164
|
+
policyChanged = true;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
const sets = await client.policySets.list(zoneId);
|
|
168
|
+
let set = sets.find((entry) => entry.name === input.setName);
|
|
169
|
+
if (!set) {
|
|
170
|
+
set = await client.policySets.create(zoneId, input.setName);
|
|
171
|
+
}
|
|
172
|
+
if (policyChanged || !set.active_version_id) {
|
|
173
|
+
const version = await client.policySets.addVersion(zoneId, set.id, [{ policy_version_id: policyVersionId }]);
|
|
174
|
+
await client.policySets.activate(zoneId, set.id, version.version_id);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
const GRANT_POLICY_NAME = 'application-grants';
|
|
178
|
+
const GRANT_POLICY_SET_NAME = 'application-grant-policy';
|
|
179
|
+
// Authors the zone's grant data document: the platform decision contract reads app_ids and
|
|
180
|
+
// grants to authorize data-plane exchanges, and this renders them so no caller ever touches
|
|
181
|
+
// the document format. Deterministic - roles, resources, and scopes are sorted and rendered
|
|
182
|
+
// as canonical JSON - so an unchanged grant set produces an identical document and the
|
|
183
|
+
// reconciler adds no new policy version.
|
|
184
|
+
export function authorGrantsDocument(grants) {
|
|
185
|
+
const appIds = {};
|
|
186
|
+
const byResource = new Map();
|
|
187
|
+
for (const grant of grants) {
|
|
188
|
+
const role = grant.role ?? grant.applicationId;
|
|
189
|
+
if (appIds[role] !== undefined && appIds[role] !== grant.applicationId) {
|
|
190
|
+
throw new Error(`grant role '${role}' is claimed by two applications`);
|
|
191
|
+
}
|
|
192
|
+
appIds[role] = grant.applicationId;
|
|
193
|
+
const entry = byResource.get(grant.resourceIdentifier) ?? { application: role, roles: {} };
|
|
194
|
+
entry.roles[role] = [...new Set([...(entry.roles[role] ?? []), ...grant.scopes])].sort();
|
|
195
|
+
byResource.set(grant.resourceIdentifier, entry);
|
|
196
|
+
}
|
|
197
|
+
const sortedAppIds = Object.fromEntries(Object.keys(appIds)
|
|
198
|
+
.sort()
|
|
199
|
+
.map((role) => [role, appIds[role]]));
|
|
200
|
+
const sortedGrants = {};
|
|
201
|
+
for (const identifier of [...byResource.keys()].sort()) {
|
|
202
|
+
const entry = byResource.get(identifier);
|
|
203
|
+
const roles = Object.fromEntries(Object.keys(entry.roles)
|
|
204
|
+
.sort()
|
|
205
|
+
.map((role) => [role, entry.roles[role]]));
|
|
206
|
+
sortedGrants[identifier] = { application: entry.application, roles };
|
|
207
|
+
}
|
|
208
|
+
return [
|
|
209
|
+
'# caracal:data-document',
|
|
210
|
+
'package caracal.authz',
|
|
211
|
+
'import rego.v1',
|
|
212
|
+
`app_ids := ${JSON.stringify(sortedAppIds)}`,
|
|
213
|
+
`grants := ${JSON.stringify(sortedGrants)}`,
|
|
214
|
+
'',
|
|
215
|
+
].join('\n');
|
|
216
|
+
}
|
|
217
|
+
// Converges the zone's grant policy so each application may mint exactly the given scopes
|
|
218
|
+
// on its resources. This owns the decision-contract data-document format end to end: pair
|
|
219
|
+
// it with ensureResource and a governed transport and an application's authority is fully
|
|
220
|
+
// declared without authoring policy text. With an empty grant set and no existing policy it
|
|
221
|
+
// creates nothing; with an existing policy it converges the document to the (possibly
|
|
222
|
+
// empty) set, revoking what is no longer granted.
|
|
223
|
+
export async function ensureGrants(client, zoneId, input) {
|
|
224
|
+
return ensureActivePolicySet(client, zoneId, {
|
|
225
|
+
policyName: input.policyName ?? GRANT_POLICY_NAME,
|
|
226
|
+
setName: input.setName ?? GRANT_POLICY_SET_NAME,
|
|
227
|
+
content: authorGrantsDocument(input.grants),
|
|
228
|
+
createWhenMissing: input.grants.length > 0,
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
// Converges a set of governed upstreams - sealed credential provider, gateway-routed
|
|
232
|
+
// resource, and the zone's grant document - in dependency order, so one call declares
|
|
233
|
+
// everything the platform needs to govern the set. Rego permits one definition of the
|
|
234
|
+
// grant document per zone, so the set converges as a whole: an upstream absent from it
|
|
235
|
+
// loses its grants on the next run, which is the revocation. Every step is idempotent, so
|
|
236
|
+
// a partial failure converges on rerun, and grants land last so nothing is authorized
|
|
237
|
+
// before its resource exists. An upstream whose provider resolves to no sealed key fails
|
|
238
|
+
// closed before any resource binds a dead credential.
|
|
239
|
+
export async function ensureGovernedUpstreams(client, zoneId, input) {
|
|
240
|
+
const results = [];
|
|
241
|
+
const grants = [];
|
|
242
|
+
for (const upstream of input.upstreams) {
|
|
243
|
+
const providerId = await ensureApiKeyProvider(client, zoneId, upstream.provider);
|
|
244
|
+
if (providerId === null) {
|
|
245
|
+
throw new Error(`provider ${upstream.provider.identifier} has no sealed api key: supply apiKey before governing ${upstream.resource.identifier}`);
|
|
246
|
+
}
|
|
247
|
+
const resource = await ensureResource(client, zoneId, { ...upstream.resource, credential_provider_id: providerId });
|
|
248
|
+
results.push({ providerId, resource });
|
|
249
|
+
for (const grant of upstream.grants) {
|
|
250
|
+
grants.push({ ...grant, resourceIdentifier: upstream.resource.identifier });
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
await ensureGrants(client, zoneId, { grants, policyName: input.policyName, setName: input.setName });
|
|
254
|
+
return results;
|
|
255
|
+
}
|
|
256
|
+
//# sourceMappingURL=ensure.js.map
|