@astrale-os/sdk 0.3.0 → 0.4.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/auth/compose.d.ts +2 -2
- package/dist/auth/compose.d.ts.map +1 -1
- package/dist/auth/compose.js +2 -2
- package/dist/auth/compose.js.map +1 -1
- package/dist/auth/function-context.d.ts +28 -0
- package/dist/auth/function-context.d.ts.map +1 -0
- package/dist/auth/function-context.js +47 -0
- package/dist/auth/function-context.js.map +1 -0
- package/dist/auth/index.d.ts +5 -3
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +3 -2
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/issuer-mint.d.ts +9 -9
- package/dist/auth/issuer-mint.d.ts.map +1 -1
- package/dist/auth/issuer-mint.js +3 -3
- package/dist/auth/issuer-mint.js.map +1 -1
- package/dist/auth/kernel-client.d.ts +5 -17
- package/dist/auth/kernel-client.d.ts.map +1 -1
- package/dist/auth/kernel-client.js +12 -34
- package/dist/auth/kernel-client.js.map +1 -1
- package/dist/cli/publish.js +1 -1
- package/dist/cli/publish.js.map +1 -1
- package/dist/config/define-domain.d.ts +1 -1
- package/dist/define/index.d.ts +1 -1
- package/dist/define/index.d.ts.map +1 -1
- package/dist/define/remote-function.d.ts +22 -30
- package/dist/define/remote-function.d.ts.map +1 -1
- package/dist/define/remote-function.js.map +1 -1
- package/dist/define/view.d.ts +6 -10
- package/dist/define/view.d.ts.map +1 -1
- package/dist/define/view.js.map +1 -1
- package/dist/dispatch/dispatcher.d.ts +1 -1
- package/dist/dispatch/dispatcher.d.ts.map +1 -1
- package/dist/dispatch/dispatcher.js +31 -7
- package/dist/dispatch/dispatcher.js.map +1 -1
- package/dist/dispatch/execute.d.ts +10 -6
- package/dist/dispatch/execute.d.ts.map +1 -1
- package/dist/dispatch/execute.js +5 -3
- package/dist/dispatch/execute.js.map +1 -1
- package/dist/dispatch/index.d.ts +0 -1
- package/dist/dispatch/index.d.ts.map +1 -1
- package/dist/dispatch/index.js +0 -1
- package/dist/dispatch/index.js.map +1 -1
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/method/context.d.ts +34 -28
- package/dist/method/context.d.ts.map +1 -1
- package/dist/method/context.js +2 -1
- package/dist/method/context.js.map +1 -1
- package/dist/method/index.d.ts +1 -1
- package/dist/method/index.d.ts.map +1 -1
- package/dist/method/index.js.map +1 -1
- package/dist/method/single.d.ts +2 -2
- package/dist/method/single.d.ts.map +1 -1
- package/dist/server/auxiliary-routes.d.ts.map +1 -1
- package/dist/server/auxiliary-routes.js +40 -21
- package/dist/server/auxiliary-routes.js.map +1 -1
- package/dist/server/create.js +1 -1
- package/dist/server/create.js.map +1 -1
- package/dist/step/index.d.ts +5 -0
- package/dist/step/index.d.ts.map +1 -0
- package/dist/step/index.js +3 -0
- package/dist/step/index.js.map +1 -0
- package/dist/step/inline.d.ts +8 -0
- package/dist/step/inline.d.ts.map +1 -0
- package/dist/step/inline.js +22 -0
- package/dist/step/inline.js.map +1 -0
- package/dist/step/step.d.ts +28 -0
- package/dist/step/step.d.ts.map +1 -0
- package/dist/step/step.js +53 -0
- package/dist/step/step.js.map +1 -0
- package/package.json +5 -1
- package/src/auth/compose.ts +2 -2
- package/src/auth/function-context.ts +108 -0
- package/src/auth/index.ts +9 -3
- package/src/auth/issuer-mint.ts +10 -9
- package/src/auth/kernel-client.ts +19 -44
- package/src/cli/publish.ts +1 -1
- package/src/config/define-domain.ts +1 -1
- package/src/define/index.ts +1 -0
- package/src/define/remote-function.ts +34 -30
- package/src/define/view.ts +6 -10
- package/src/dispatch/dispatcher.ts +34 -8
- package/src/dispatch/execute.ts +15 -9
- package/src/dispatch/index.ts +0 -1
- package/src/index.ts +20 -5
- package/src/method/context.ts +50 -28
- package/src/method/index.ts +8 -1
- package/src/method/single.ts +2 -2
- package/src/server/auxiliary-routes.ts +41 -23
- package/src/server/create.ts +1 -1
- package/src/step/index.ts +4 -0
- package/src/step/inline.ts +38 -0
- package/src/step/step.ts +95 -0
- package/dist/deploy/hash-spec.d.ts +0 -9
- package/dist/deploy/hash-spec.d.ts.map +0 -1
- package/dist/deploy/hash-spec.js +0 -29
- package/dist/deploy/hash-spec.js.map +0 -1
- package/dist/dispatch/call-remote.d.ts +0 -39
- package/dist/dispatch/call-remote.d.ts.map +0 -1
- package/dist/dispatch/call-remote.js +0 -37
- package/dist/dispatch/call-remote.js.map +0 -1
- package/dist/domain/extend-core.d.ts +0 -49
- package/dist/domain/extend-core.d.ts.map +0 -1
- package/dist/domain/extend-core.js +0 -190
- package/dist/domain/extend-core.js.map +0 -1
- package/dist/server/worker-meta.d.ts +0 -6
- package/dist/server/worker-meta.d.ts.map +0 -1
- package/dist/server/worker-meta.js +0 -10
- package/dist/server/worker-meta.js.map +0 -1
- package/src/dispatch/call-remote.ts +0 -53
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
import { isKernelErrorClassifiable, KERNEL_ERROR_CODES, kernelErrorHttpStatus, } from '@astrale-os/kernel-api';
|
|
15
15
|
import { isSubdomainOf, matchHost, compileHostMatcher, parseUrlTemplate, } from '@astrale-os/kernel-api/routed';
|
|
16
16
|
import { buildCorsHeaders } from '@astrale-os/kernel-server';
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
17
|
+
import { makeFunctionContext } from '../auth/function-context';
|
|
18
|
+
import { makeDomainAuthority } from '../auth/issuer-mint';
|
|
19
19
|
import { resolveInboundAuth } from '../auth/resolve';
|
|
20
20
|
import { runAuthorize } from '../dispatch/authorize';
|
|
21
|
-
import { makeCallRemote } from '../dispatch/call-remote';
|
|
22
21
|
import { SdkResultValidationError, SdkValidationError } from '../dispatch/errors';
|
|
23
22
|
import { validateParams, validateResult } from '../dispatch/validate';
|
|
23
|
+
import { createInlineStep } from '../step';
|
|
24
24
|
export function mountAuxiliaryRoutes(config) {
|
|
25
25
|
const { app, url, views, viewBindings, remoteFunctions, remoteFunctionBindings, deps, identities, cors, } = config;
|
|
26
26
|
const workerHost = parseUrlTemplate(url).hostPattern;
|
|
@@ -39,16 +39,23 @@ export function mountAuxiliaryRoutes(config) {
|
|
|
39
39
|
auth: def.auth,
|
|
40
40
|
identity,
|
|
41
41
|
corsHeaders,
|
|
42
|
-
// Views are transport-only (iframe HTML/redirect)
|
|
43
|
-
//
|
|
44
|
-
//
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
42
|
+
// Views are transport-only (iframe HTML/redirect). SERVER-rendered
|
|
43
|
+
// views that read the graph use `ctx.fn.kernel()`: the view's own
|
|
44
|
+
// identity, with narrow grants.
|
|
45
|
+
run: async ({ c, params, auth, kernel }) => {
|
|
46
|
+
const inboundIss = auth?.credential?.verified?.iss;
|
|
47
|
+
const kernelUrl = kernel?.default ?? inboundIss;
|
|
48
|
+
const ctx = {
|
|
49
|
+
c,
|
|
50
|
+
params,
|
|
51
|
+
auth,
|
|
52
|
+
deps,
|
|
53
|
+
env: { url },
|
|
54
|
+
fn: makeFunctionContext(identity, deps, {
|
|
55
|
+
ref: `view.${slug}`,
|
|
56
|
+
...(kernelUrl !== undefined ? { defaultKernelUrl: kernelUrl } : {}),
|
|
57
|
+
}),
|
|
58
|
+
};
|
|
52
59
|
if (def.authorize)
|
|
53
60
|
await runAuthorize(def.authorize, ctx);
|
|
54
61
|
return def.render(ctx);
|
|
@@ -70,27 +77,40 @@ export function mountAuxiliaryRoutes(config) {
|
|
|
70
77
|
auth: def.auth,
|
|
71
78
|
identity,
|
|
72
79
|
corsHeaders,
|
|
73
|
-
run: async ({ c, auth, kernel
|
|
74
|
-
const selfKernel = makeSelfKernel(identity, deps);
|
|
80
|
+
run: async ({ c, auth, kernel }) => {
|
|
75
81
|
const rawBody = await c.req.json().catch(() => ({}));
|
|
76
82
|
const validation = validateParams(def.inputSchema, rawBody);
|
|
77
83
|
if (!validation.ok) {
|
|
78
84
|
throw new SdkValidationError(validation.issues);
|
|
79
85
|
}
|
|
80
|
-
const
|
|
86
|
+
const inboundIss = auth?.credential?.verified?.iss;
|
|
87
|
+
const kernelUrl = kernel?.default ?? inboundIss;
|
|
88
|
+
const caller = auth && inboundIss
|
|
89
|
+
? {
|
|
90
|
+
iss: inboundIss,
|
|
91
|
+
url: kernelUrl ?? inboundIss,
|
|
92
|
+
}
|
|
93
|
+
: undefined;
|
|
81
94
|
const ctx = {
|
|
82
95
|
params: validation.data,
|
|
83
96
|
c,
|
|
84
97
|
auth,
|
|
85
98
|
deps,
|
|
99
|
+
env: { url },
|
|
86
100
|
kernel,
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
101
|
+
...(caller !== undefined ? { caller } : {}),
|
|
102
|
+
domain: makeDomainAuthority(identity),
|
|
103
|
+
fn: makeFunctionContext(identity, deps, {
|
|
104
|
+
ref: `function.${slug}`,
|
|
105
|
+
...(kernelUrl !== undefined ? { defaultKernelUrl: kernelUrl } : {}),
|
|
106
|
+
}),
|
|
90
107
|
};
|
|
91
108
|
if (def.authorize)
|
|
92
109
|
await runAuthorize(def.authorize, ctx);
|
|
93
|
-
const result = await def.execute(
|
|
110
|
+
const result = await def.execute({
|
|
111
|
+
...ctx,
|
|
112
|
+
step: createInlineStep({ scope: { kind: 'function', ref: `function.${slug}`, slug } }),
|
|
113
|
+
});
|
|
94
114
|
const outValidation = validateResult(def.outputSchema, result);
|
|
95
115
|
if (!outValidation.ok) {
|
|
96
116
|
throw new SdkResultValidationError(outValidation.issues, `function.${slug}`);
|
|
@@ -164,7 +184,6 @@ function mountEntry(args) {
|
|
|
164
184
|
params: { ...hostParams, ...pathParams },
|
|
165
185
|
auth: resolvedAuth,
|
|
166
186
|
kernel,
|
|
167
|
-
callRemote: makeCallRemote(kernel),
|
|
168
187
|
});
|
|
169
188
|
return applyCorsToResponse(response, corsHeaders);
|
|
170
189
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auxiliary-routes.js","sourceRoot":"","sources":["../../src/server/auxiliary-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,GAEtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,aAAa,EACb,SAAS,EACT,kBAAkB,EAClB,gBAAgB,GAGjB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"auxiliary-routes.js","sourceRoot":"","sources":["../../src/server/auxiliary-routes.ts"],"names":[],"mappings":"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"}
|
package/dist/server/create.js
CHANGED
|
@@ -32,7 +32,7 @@ export function createRemoteServer(config) {
|
|
|
32
32
|
deps: config.deps,
|
|
33
33
|
privateKey: config.privateKey,
|
|
34
34
|
issuer: iss,
|
|
35
|
-
// The canonicalized serving URL, NOT the raw config.url: `ctx.url` is
|
|
35
|
+
// The canonicalized serving URL, NOT the raw config.url: `ctx.env.url` is
|
|
36
36
|
// documented as the worker's `iss` identity, so the two must be one value.
|
|
37
37
|
url: iss,
|
|
38
38
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/server/create.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAMzC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAEtD,MAAM,UAAU,kBAAkB,CAAQ,MAAiC;IACzE,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACvD,8EAA8E;IAC9E,MAAM,GAAG,GAAG,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAE9C,0DAA0D;IAC1D,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,uBAAuB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAE3E,MAAM,UAAU,GAAG,IAAI,aAAa,CAAQ;QAC1C,QAAQ;QACR,OAAO;QACP,sEAAsE;QACtE,8DAA8D;QAC9D,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM;QACzB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,GAAG;QACX,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/server/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { createInlineStep } from './inline';
|
|
2
|
+
export type { InlineStepOptions, StepExecutor } from './inline';
|
|
3
|
+
export { buildStepRun } from './step';
|
|
4
|
+
export type { FunctionStepScope, MethodStepScope, Step, StepRun, StepScope } from './step';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/step/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/step/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Step, StepRun, StepScope } from './step';
|
|
2
|
+
export type StepExecutor = <T>(run: StepRun, handler: () => T | Promise<T>) => Promise<T>;
|
|
3
|
+
export type InlineStepOptions = {
|
|
4
|
+
scope?: StepScope;
|
|
5
|
+
execute?: StepExecutor;
|
|
6
|
+
};
|
|
7
|
+
export declare function createInlineStep(options?: InlineStepOptions): Step;
|
|
8
|
+
//# sourceMappingURL=inline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline.d.ts","sourceRoot":"","sources":["../../src/step/inline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAItD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;AAEzF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,OAAO,CAAC,EAAE,YAAY,CAAA;CACvB,CAAA;AAED,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,IAAI,CAUtE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { buildStepRun, roundTripStepResult } from './step';
|
|
2
|
+
export function createInlineStep(options = {}) {
|
|
3
|
+
const occurrences = new Map();
|
|
4
|
+
const execute = options.execute ?? inlineExecute;
|
|
5
|
+
return {
|
|
6
|
+
async run(id, handler) {
|
|
7
|
+
const run = buildStepRun(id, options.scope, nextOccurrence(id, options.scope, occurrences));
|
|
8
|
+
return execute(run, handler);
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
async function inlineExecute(run, handler) {
|
|
13
|
+
const result = await handler();
|
|
14
|
+
return roundTripStepResult(run.key, result);
|
|
15
|
+
}
|
|
16
|
+
function nextOccurrence(id, scope, occurrences) {
|
|
17
|
+
const run = buildStepRun(id, scope, 0);
|
|
18
|
+
const occurrence = occurrences.get(run.key) ?? 0;
|
|
19
|
+
occurrences.set(run.key, occurrence + 1);
|
|
20
|
+
return occurrence;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=inline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline.js","sourceRoot":"","sources":["../../src/step/inline.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AAS1D,MAAM,UAAU,gBAAgB,CAAC,OAAO,GAAsB,EAAE;IAC9D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,aAAa,CAAA;IAEhD,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO;YACnB,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAA;YAC3F,OAAO,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAC9B,CAAC;KACF,CAAA;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAI,GAAY,EAAE,OAA6B;IACzE,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAA;IAC9B,OAAO,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;AAC7C,CAAC;AAED,SAAS,cAAc,CACrB,EAAU,EACV,KAA4B,EAC5B,WAAgC;IAEhC,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IACtC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAChD,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,CAAC,CAAA;IACxC,OAAO,UAAU,CAAA;AACnB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type Step = {
|
|
2
|
+
run<T>(id: string, handler: () => T | Promise<T>): Promise<T>;
|
|
3
|
+
};
|
|
4
|
+
export type MethodStepScope = {
|
|
5
|
+
kind: 'method';
|
|
6
|
+
ref: string;
|
|
7
|
+
owner: string;
|
|
8
|
+
method: string;
|
|
9
|
+
};
|
|
10
|
+
export type FunctionStepScope = {
|
|
11
|
+
kind: 'function';
|
|
12
|
+
ref: string;
|
|
13
|
+
slug: string;
|
|
14
|
+
};
|
|
15
|
+
export type StepScope = MethodStepScope | FunctionStepScope;
|
|
16
|
+
export type StepRun = {
|
|
17
|
+
/** The author-provided id, normalized to the local id inside this scope. */
|
|
18
|
+
id: string;
|
|
19
|
+
/** Backend-facing durable key, qualified by the method/function scope. */
|
|
20
|
+
key: string;
|
|
21
|
+
/** Zero-based occurrence for repeated ids in one execution. */
|
|
22
|
+
occurrence: number;
|
|
23
|
+
scope?: StepScope;
|
|
24
|
+
};
|
|
25
|
+
export declare function requireStepId(id: string): string;
|
|
26
|
+
export declare function buildStepRun(id: string, scope: StepScope | undefined, occurrence: number): StepRun;
|
|
27
|
+
export declare function roundTripStepResult<T>(id: string, value: T): T;
|
|
28
|
+
//# sourceMappingURL=step.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../src/step/step.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG;IACjB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CAC9D,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,QAAQ,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,UAAU,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,iBAAiB,CAAA;AAE3D,MAAM,MAAM,OAAO,GAAG;IACpB,4EAA4E;IAC5E,EAAE,EAAE,MAAM,CAAA;IACV,0EAA0E;IAC1E,GAAG,EAAE,MAAM,CAAA;IACX,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,CAAA;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,wBAAgB,YAAY,CAC1B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,SAAS,GAAG,SAAS,EAC5B,UAAU,EAAE,MAAM,GACjB,OAAO,CAST;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAmB9D"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export function requireStepId(id) {
|
|
2
|
+
if (typeof id !== 'string' || id.trim() === '') {
|
|
3
|
+
throw new TypeError('step.run: id must be a non-empty string');
|
|
4
|
+
}
|
|
5
|
+
return id;
|
|
6
|
+
}
|
|
7
|
+
export function buildStepRun(id, scope, occurrence) {
|
|
8
|
+
const stepId = requireStepId(localStepId(id, scope));
|
|
9
|
+
const key = scope ? `${canonicalScope(scope)}.${stepId}` : stepId;
|
|
10
|
+
return {
|
|
11
|
+
id: stepId,
|
|
12
|
+
key,
|
|
13
|
+
occurrence,
|
|
14
|
+
...(scope ? { scope } : {}),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export function roundTripStepResult(id, value) {
|
|
18
|
+
if (value === undefined)
|
|
19
|
+
return value;
|
|
20
|
+
let serialized;
|
|
21
|
+
try {
|
|
22
|
+
serialized = JSON.stringify(value);
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
throw new TypeError(`step.run("${id}"): result must be JSON-serializable: ${err instanceof Error ? err.message : String(err)}`);
|
|
26
|
+
}
|
|
27
|
+
if (serialized === undefined) {
|
|
28
|
+
throw new TypeError(`step.run("${id}"): result must be JSON-serializable`);
|
|
29
|
+
}
|
|
30
|
+
return JSON.parse(serialized);
|
|
31
|
+
}
|
|
32
|
+
function localStepId(id, scope) {
|
|
33
|
+
if (!scope)
|
|
34
|
+
return id;
|
|
35
|
+
for (const prefix of scopePrefixes(scope)) {
|
|
36
|
+
const scoped = `${prefix}.`;
|
|
37
|
+
if (id.startsWith(scoped) && id.length > scoped.length)
|
|
38
|
+
return id.slice(scoped.length);
|
|
39
|
+
}
|
|
40
|
+
return id;
|
|
41
|
+
}
|
|
42
|
+
function scopePrefixes(scope) {
|
|
43
|
+
switch (scope.kind) {
|
|
44
|
+
case 'method':
|
|
45
|
+
return [scope.ref, `${scope.owner}.${scope.method}`];
|
|
46
|
+
case 'function':
|
|
47
|
+
return [scope.ref, `function.${scope.slug}`];
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function canonicalScope(scope) {
|
|
51
|
+
return scope.ref;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=step.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step.js","sourceRoot":"","sources":["../../src/step/step.ts"],"names":[],"mappings":"AA6BA,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC/C,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAA;IAChE,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,EAAU,EACV,KAA4B,EAC5B,UAAkB;IAElB,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAA;IACpD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;IACjE,OAAO;QACL,EAAE,EAAE,MAAM;QACV,GAAG;QACH,UAAU;QACV,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAI,EAAU,EAAE,KAAQ;IACzD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IAErC,IAAI,UAA8B,CAAA;IAClC,IAAI,CAAC;QACH,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,SAAS,CACjB,aAAa,EAAE,yCACb,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAA;IACH,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,SAAS,CAAC,aAAa,EAAE,sCAAsC,CAAC,CAAA;IAC5E,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAM,CAAA;AACpC,CAAC;AAED,SAAS,WAAW,CAAC,EAAU,EAAE,KAA4B;IAC3D,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IAErB,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,CAAA;QAC3B,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACxF,CAAC;IAED,OAAO,EAAE,CAAA;AACX,CAAC;AAED,SAAS,aAAa,CAAC,KAAgB;IACrC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;QACtD,KAAK,UAAU;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAChD,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAgB;IACtC,OAAO,KAAK,CAAC,GAAG,CAAA;AAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@astrale-os/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "Astrale Remote Domain SDK - Define and deploy domains as standalone Hono servers",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"astrale",
|
|
@@ -45,6 +45,10 @@
|
|
|
45
45
|
"./deploy": {
|
|
46
46
|
"types": "./dist/deploy/index.d.ts",
|
|
47
47
|
"import": "./dist/deploy/index.js"
|
|
48
|
+
},
|
|
49
|
+
"./step": {
|
|
50
|
+
"types": "./dist/step/index.d.ts",
|
|
51
|
+
"import": "./dist/step/index.js"
|
|
48
52
|
}
|
|
49
53
|
},
|
|
50
54
|
"dependencies": {
|
package/src/auth/compose.ts
CHANGED
|
@@ -43,14 +43,14 @@ export function buildComposedGrant(delegation: Delegation) {
|
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
45
|
* The SELF-ONLY expression: the function's own identity, nothing delegated.
|
|
46
|
-
* Used by `
|
|
46
|
+
* Used by `ctx.fn.kernel()` sessions (public/webhook handlers acting on their own
|
|
47
47
|
* authority) — both as the credential grant and as the next-hop delegation.
|
|
48
48
|
*/
|
|
49
49
|
export function buildSelfExpr() {
|
|
50
50
|
return unresolvedSelf()
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
/** Self-only grant for
|
|
53
|
+
/** Self-only grant for function-owned credentials. */
|
|
54
54
|
export function buildSelfGrant() {
|
|
55
55
|
return { grant: createUnresolvedGrant(buildSelfExpr()) }
|
|
56
56
|
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { FnMap } from '@astrale-os/kernel-client'
|
|
2
|
+
import type { BoundClientSessionView } from '@astrale-os/kernel-client/session'
|
|
3
|
+
import type { UnresolvedIdentityExpr } from '@astrale-os/kernel-core'
|
|
4
|
+
|
|
5
|
+
import { createUnresolvedGrant } from '@astrale-os/kernel-core'
|
|
6
|
+
|
|
7
|
+
import type { RemoteIdentityConfig } from './identity'
|
|
8
|
+
|
|
9
|
+
import { buildSelfExpr, buildSelfGrant } from './compose'
|
|
10
|
+
import { bindCredentialSession } from './kernel-client'
|
|
11
|
+
import { signCredential } from './sign'
|
|
12
|
+
|
|
13
|
+
export type FunctionCredentialOptions = {
|
|
14
|
+
/** Credential audience. Defaults to the current/default kernel URL when known. */
|
|
15
|
+
audience?: string
|
|
16
|
+
/** Grant carried by the top-level kernel bearer. Defaults to self. */
|
|
17
|
+
grant?: UnresolvedIdentityExpr
|
|
18
|
+
/** JWT lifetime, jose-style. Default is the SDK per-request kernel TTL. */
|
|
19
|
+
ttl?: string
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export type FunctionKernelOptions = FunctionCredentialOptions & {
|
|
23
|
+
/** Kernel URL to dial. Defaults to `audience`, then the current/default kernel URL. */
|
|
24
|
+
url?: string
|
|
25
|
+
/** Next-hop delegation for remote redirects. Defaults to the credential grant. */
|
|
26
|
+
delegation?: UnresolvedIdentityExpr
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export type FunctionContextApi = {
|
|
30
|
+
readonly ref: string
|
|
31
|
+
credential(opts?: FunctionCredentialOptions): Promise<string>
|
|
32
|
+
kernel(opts?: FunctionKernelOptions): Promise<BoundClientSessionView<FnMap>>
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function makeFunctionContext(
|
|
36
|
+
identity: RemoteIdentityConfig,
|
|
37
|
+
deps: unknown,
|
|
38
|
+
opts: { ref: string; defaultKernelUrl?: string },
|
|
39
|
+
): FunctionContextApi {
|
|
40
|
+
return {
|
|
41
|
+
ref: opts.ref,
|
|
42
|
+
credential: (params) =>
|
|
43
|
+
signFunctionCredential(
|
|
44
|
+
identity,
|
|
45
|
+
resolveAudience(params?.audience, opts.defaultKernelUrl, deps),
|
|
46
|
+
{
|
|
47
|
+
grant: params?.grant,
|
|
48
|
+
ttl: params?.ttl,
|
|
49
|
+
},
|
|
50
|
+
),
|
|
51
|
+
kernel: async (params) => {
|
|
52
|
+
const kernelUrl = resolveKernelUrl(params?.url, params?.audience, opts.defaultKernelUrl, deps)
|
|
53
|
+
const grant = params?.grant ?? buildSelfExpr()
|
|
54
|
+
const credential = await signFunctionCredential(identity, params?.audience ?? kernelUrl, {
|
|
55
|
+
grant,
|
|
56
|
+
ttl: params?.ttl,
|
|
57
|
+
})
|
|
58
|
+
return bindCredentialSession(kernelUrl, credential, {
|
|
59
|
+
delegation: params?.delegation ?? grant,
|
|
60
|
+
})
|
|
61
|
+
},
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
async function signFunctionCredential(
|
|
66
|
+
identity: RemoteIdentityConfig,
|
|
67
|
+
audience: string,
|
|
68
|
+
opts: { grant?: UnresolvedIdentityExpr; ttl?: string },
|
|
69
|
+
): Promise<string> {
|
|
70
|
+
const grant =
|
|
71
|
+
opts.grant === undefined ? buildSelfGrant().grant : createUnresolvedGrant(opts.grant)
|
|
72
|
+
return signCredential(
|
|
73
|
+
{ grant },
|
|
74
|
+
{
|
|
75
|
+
issuer: identity.issuer,
|
|
76
|
+
subject: identity.subject,
|
|
77
|
+
audience,
|
|
78
|
+
privateKey: identity.privateKey,
|
|
79
|
+
ttl: opts.ttl ?? '30m',
|
|
80
|
+
},
|
|
81
|
+
)
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function resolveAudience(
|
|
85
|
+
audience: string | undefined,
|
|
86
|
+
defaultKernelUrl: string | undefined,
|
|
87
|
+
deps: unknown,
|
|
88
|
+
): string {
|
|
89
|
+
return resolveKernelUrl(undefined, audience, defaultKernelUrl, deps)
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function resolveKernelUrl(
|
|
93
|
+
url: string | undefined,
|
|
94
|
+
audience: string | undefined,
|
|
95
|
+
defaultKernelUrl: string | undefined,
|
|
96
|
+
deps: unknown,
|
|
97
|
+
): string {
|
|
98
|
+
const env = deps as { INSTANCE_KERNEL_URL?: unknown; KERNEL_URL?: unknown } | null | undefined
|
|
99
|
+
const resolved =
|
|
100
|
+
url ?? audience ?? defaultKernelUrl ?? env?.INSTANCE_KERNEL_URL ?? env?.KERNEL_URL
|
|
101
|
+
if (typeof resolved !== 'string' || resolved.length === 0) {
|
|
102
|
+
throw new Error(
|
|
103
|
+
'fn.kernel: no kernel URL — pass one explicitly or set INSTANCE_KERNEL_URL in the ' +
|
|
104
|
+
'worker env (managed deploys set it automatically).',
|
|
105
|
+
)
|
|
106
|
+
}
|
|
107
|
+
return resolved
|
|
108
|
+
}
|
package/src/auth/index.ts
CHANGED
|
@@ -6,8 +6,14 @@ export { resolveInboundAuth, buildAuthContext, type ResolvedAuth } from './resol
|
|
|
6
6
|
export { verifyInboundCredential } from './verify'
|
|
7
7
|
export { buildComposedGrant } from './compose'
|
|
8
8
|
export { signCredential } from './sign'
|
|
9
|
-
export {
|
|
10
|
-
export type {
|
|
11
|
-
export {
|
|
9
|
+
export { makeDomainAuthority } from './issuer-mint'
|
|
10
|
+
export type { DomainAuthority, MintIssuedParams } from './issuer-mint'
|
|
11
|
+
export { makeFunctionContext } from './function-context'
|
|
12
|
+
export type {
|
|
13
|
+
FunctionContextApi,
|
|
14
|
+
FunctionCredentialOptions,
|
|
15
|
+
FunctionKernelOptions,
|
|
16
|
+
} from './function-context'
|
|
17
|
+
export { bindKernel } from './kernel-client'
|
|
12
18
|
export { AuthMissingError, AuthInvalidError } from './errors'
|
|
13
19
|
export { assertPerm, requireOwnership, READ, EDIT, USE, SHARE, ALL } from './check'
|
package/src/auth/issuer-mint.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Domain authority — the worker-side mint seam for identities THIS DOMAIN issues.
|
|
3
3
|
*
|
|
4
4
|
* A domain worker is a trusted issuer: the kernel resolves any `(iss, sub)`
|
|
5
5
|
* credential signed with the worker's key back to the graph node carrying that
|
|
@@ -27,6 +27,11 @@ import type { RemoteIdentityConfig } from './identity'
|
|
|
27
27
|
import { bindCredentialSession } from './kernel-client'
|
|
28
28
|
import { signCredential } from './sign'
|
|
29
29
|
|
|
30
|
+
export type DomainAuthorityRef = {
|
|
31
|
+
/** The issuer ID (used as the `iss` claim in credentials and on Identity nodes). */
|
|
32
|
+
readonly iss: string
|
|
33
|
+
}
|
|
34
|
+
|
|
30
35
|
export type MintIssuedParams = {
|
|
31
36
|
/** The issued identity's `sub` — must match the graph node's stored subject. */
|
|
32
37
|
subject: string
|
|
@@ -44,22 +49,18 @@ export type MintIssuedParams = {
|
|
|
44
49
|
ttl?: string
|
|
45
50
|
}
|
|
46
51
|
|
|
47
|
-
export type
|
|
48
|
-
/** The issuer (`iss`) this worker signs under — what issued identities store. */
|
|
49
|
-
readonly iss: string
|
|
52
|
+
export type DomainAuthority = DomainAuthorityRef & {
|
|
50
53
|
/** Sign a credential AS an identity this domain issues. */
|
|
51
54
|
mint(params: MintIssuedParams): Promise<string>
|
|
52
55
|
/**
|
|
53
56
|
* A kernel session presenting a pre-signed credential (typically from
|
|
54
|
-
* {@link
|
|
55
|
-
* no delegation mint is wired, so redirect-following to other workers is not
|
|
56
|
-
* available on this session.
|
|
57
|
+
* {@link DomainAuthority.mint} with `audience = kernelUrl`).
|
|
57
58
|
*/
|
|
58
59
|
sessionFor(kernelUrl: string, credential: string): BoundClientSessionView<FnMap>
|
|
59
60
|
}
|
|
60
61
|
|
|
61
|
-
/** Build the
|
|
62
|
-
export function
|
|
62
|
+
/** Build the domain authority for one worker identity config. */
|
|
63
|
+
export function makeDomainAuthority(identity: RemoteIdentityConfig): DomainAuthority {
|
|
63
64
|
return {
|
|
64
65
|
iss: identity.issuer,
|
|
65
66
|
mint: ({ subject, audience, grant, ttl }) =>
|