@toa.io/extensions.exposition 1.0.0-alpha.288 → 1.0.0-alpha.289
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/CHANGELOG.md +11 -0
- package/components/identity.basic/tsconfig.tsbuildinfo +1 -1
- package/components/identity.clients/tsconfig.tsbuildinfo +1 -1
- package/components/identity.credentials/tsconfig.tsbuildinfo +1 -1
- package/components/identity.federation/tsconfig.tsbuildinfo +1 -1
- package/components/identity.grants/tsconfig.tsbuildinfo +1 -1
- package/components/identity.keys/tsconfig.tsbuildinfo +1 -1
- package/components/identity.otp/tsconfig.tsbuildinfo +1 -1
- package/components/identity.passkeys/tsconfig.tsbuildinfo +1 -1
- package/components/identity.roles/tsconfig.tsbuildinfo +1 -1
- package/components/identity.tokens/tsconfig.tsbuildinfo +1 -1
- package/documentation/access.md +3 -2
- package/documentation/discovery.md +8 -8
- package/documentation/help.md +16 -3
- package/documentation/introspection.md +10 -2
- package/documentation/octets.md +20 -0
- package/features/discovery.feature +4 -2
- package/features/discovery.ui.feature +19 -3
- package/features/help.feature +46 -0
- package/features/octets.feature +59 -0
- package/features/steps/Components.ts +4 -2
- package/features/steps/Database.ts +7 -1
- package/features/steps/Gateway.ts +23 -21
- package/features/steps/Parameters.ts +25 -16
- package/features/steps/Realtime.ts +3 -3
- package/package.json +5 -5
- package/source/Directive.ts +0 -11
- package/source/Discovery/trunk.ts +13 -3
- package/source/Factory.ts +3 -86
- package/source/HTTP/Probe.ts +0 -11
- package/source/HTTP/Server.ts +2 -3
- package/source/HTTP/messages.ts +4 -2
- package/source/Introspection.ts +28 -0
- package/source/const.ts +18 -0
- package/source/deployment.ts +2 -2
- package/source/directives/auth/Anonymous.ts +10 -0
- package/source/directives/help/Family.ts +5 -1
- package/source/directives/help/Help.ts +21 -0
- package/source/directives/octets/Directive.ts +7 -0
- package/source/directives/octets/Octets.ts +8 -0
- package/source/directives/octets/Put.ts +10 -0
- package/source/manifest.ts +1 -1
- package/source/root.ts +2 -2
- package/source/service.ts +94 -0
- package/source/shortcuts.ts +14 -0
- package/transpiled/Directive.d.ts +0 -1
- package/transpiled/Directive.js +0 -11
- package/transpiled/Directive.js.map +1 -1
- package/transpiled/Discovery/trunk.d.ts +5 -2
- package/transpiled/Discovery/trunk.js +12 -4
- package/transpiled/Discovery/trunk.js.map +1 -1
- package/transpiled/Factory.js +3 -61
- package/transpiled/Factory.js.map +1 -1
- package/transpiled/HTTP/Probe.d.ts +0 -10
- package/transpiled/HTTP/Probe.js +0 -10
- package/transpiled/HTTP/Probe.js.map +1 -1
- package/transpiled/HTTP/Server.d.ts +0 -1
- package/transpiled/HTTP/Server.js +2 -2
- package/transpiled/HTTP/Server.js.map +1 -1
- package/transpiled/HTTP/messages.js +4 -2
- package/transpiled/HTTP/messages.js.map +1 -1
- package/transpiled/Introspection.d.ts +21 -0
- package/transpiled/Introspection.js +2 -0
- package/transpiled/Introspection.js.map +1 -1
- package/transpiled/const.d.ts +14 -0
- package/transpiled/const.js +14 -0
- package/transpiled/const.js.map +1 -1
- package/transpiled/deployment.js +2 -2
- package/transpiled/deployment.js.map +1 -1
- package/transpiled/directives/auth/Anonymous.d.ts +7 -0
- package/transpiled/directives/auth/Anonymous.js +8 -0
- package/transpiled/directives/auth/Anonymous.js.map +1 -1
- package/transpiled/directives/help/Family.d.ts +1 -1
- package/transpiled/directives/help/Family.js +4 -0
- package/transpiled/directives/help/Family.js.map +1 -1
- package/transpiled/directives/help/Help.d.ts +6 -0
- package/transpiled/directives/help/Help.js +14 -0
- package/transpiled/directives/help/Help.js.map +1 -1
- package/transpiled/directives/octets/Directive.d.ts +6 -0
- package/transpiled/directives/octets/Directive.js.map +1 -1
- package/transpiled/directives/octets/Octets.d.ts +3 -0
- package/transpiled/directives/octets/Octets.js +6 -0
- package/transpiled/directives/octets/Octets.js.map +1 -1
- package/transpiled/directives/octets/Put.d.ts +3 -0
- package/transpiled/directives/octets/Put.js +8 -0
- package/transpiled/directives/octets/Put.js.map +1 -1
- package/transpiled/manifest.js +1 -1
- package/transpiled/root.js +2 -2
- package/transpiled/root.js.map +1 -1
- package/transpiled/service.d.ts +7 -0
- package/transpiled/service.js +74 -0
- package/transpiled/service.js.map +1 -0
- package/transpiled/shortcuts.d.ts +3 -0
- package/transpiled/shortcuts.js +13 -0
- package/transpiled/shortcuts.js.map +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/ui/dist/_app/immutable/assets/0.Bl7vLmIK.css +2 -0
- package/ui/dist/_app/immutable/chunks/{CWJaG9mK.js → CDMRPWCx.js} +2 -2
- package/ui/dist/_app/immutable/chunks/DJTKIUs8.js +1 -0
- package/ui/dist/_app/immutable/chunks/{yDQhitF9.js → z-DVUbQC.js} +1 -1
- package/ui/dist/_app/immutable/entry/{app.WZSMBcGf.js → app.5S2Jtv46.js} +2 -2
- package/ui/dist/_app/immutable/entry/start.Bqi6IBmH.js +1 -0
- package/ui/dist/_app/immutable/nodes/{0.Dl2DqINo.js → 0.D4LwNilH.js} +1 -1
- package/ui/dist/_app/immutable/nodes/{1.CSSnGhVD.js → 1.CSRya9So.js} +1 -1
- package/ui/dist/_app/immutable/nodes/{2.DmolQyNG.js → 2.BtiGmR6I.js} +4 -4
- package/ui/dist/_app/version.json +1 -1
- package/ui/dist/index.html +11 -11
- package/components/identity.bans/migrations/0001-system-properties.yaml +0 -14
- package/components/identity.basic/migrations/0001-system-properties.yaml +0 -14
- package/components/identity.clients/migrations/0001-system-properties.yaml +0 -14
- package/components/identity.federation/migrations/0001-system-properties.yaml +0 -14
- package/components/identity.grants/migrations/0001-system-properties.yaml +0 -14
- package/components/identity.keys/migrations/0001-system-properties.yaml +0 -14
- package/components/identity.otp/migrations/0001-system-properties.yaml +0 -14
- package/components/identity.passkeys/migrations/0001-system-properties.yaml +0 -14
- package/components/identity.roles/migrations/0001-system-properties.yaml +0 -14
- package/components/identity.tokens/migrations/0001-system-properties.yaml +0 -14
- package/ui/dist/_app/immutable/assets/0.BcIGtTfw.css +0 -2
- package/ui/dist/_app/immutable/chunks/BgTrzN6u.js +0 -1
- package/ui/dist/_app/immutable/entry/start._LkoC6Lz.js +0 -1
|
@@ -3,6 +3,7 @@ import type { Parameter } from '../../RTD/index.js';
|
|
|
3
3
|
import type { Unit } from './workflows/index.js';
|
|
4
4
|
import type { Remotes } from '../../Remotes.js';
|
|
5
5
|
import type { Component } from '@toa.io/core';
|
|
6
|
+
import type { Introspection } from '../../Introspection.js';
|
|
6
7
|
import type { Output } from '../../io.js';
|
|
7
8
|
import type { Input } from './types.js';
|
|
8
9
|
export declare class Put extends Directive {
|
|
@@ -16,6 +17,8 @@ export declare class Put extends Directive {
|
|
|
16
17
|
private readonly discovery;
|
|
17
18
|
private storage;
|
|
18
19
|
constructor(options: Options | null, discovery: Promise<Component>, remotes: Remotes);
|
|
20
|
+
/** What sending a file here takes: what may be sent, how much of it, and what comes back. */
|
|
21
|
+
describe(introspection: Introspection): void;
|
|
19
22
|
apply(storage: string, input: Input, parameters: Parameter[]): Promise<Output>;
|
|
20
23
|
private reply;
|
|
21
24
|
private execute;
|
|
@@ -32,6 +32,14 @@ export class Put extends Directive {
|
|
|
32
32
|
cors.allow('content-attributes');
|
|
33
33
|
cors.allow('content-location');
|
|
34
34
|
}
|
|
35
|
+
/** What sending a file here takes: what may be sent, how much of it, and what comes back. */
|
|
36
|
+
describe(introspection) {
|
|
37
|
+
introspection.octets = {
|
|
38
|
+
...(this.accept === undefined ? {} : { accept: this.accept }),
|
|
39
|
+
limit: this.limitString,
|
|
40
|
+
...(this.workflow === undefined ? {} : { stream: true })
|
|
41
|
+
};
|
|
42
|
+
}
|
|
35
43
|
async apply(storage, input, parameters) {
|
|
36
44
|
this.storage ??= await this.discovery.storage;
|
|
37
45
|
const request = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Put.js","sourceRoot":"","sources":["../../../source/directives/octets/Put.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,IAAI,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"Put.js","sourceRoot":"","sources":["../../../source/directives/octets/Put.ts"],"names":[],"mappings":"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"}
|
package/transpiled/manifest.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import assert from 'node:assert';
|
|
2
2
|
import { parse } from './RTD/syntax/index.js';
|
|
3
|
-
import { shortcuts } from './
|
|
3
|
+
import { shortcuts } from './shortcuts.js';
|
|
4
4
|
import * as schemas from './schemas.js';
|
|
5
5
|
export function manifest(declaration, manifest) {
|
|
6
6
|
assert.ok(typeof declaration === 'object' && declaration !== null, 'Exposition declaration must be an object');
|
package/transpiled/root.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { merge } from '@toa.io/generic';
|
|
1
|
+
import { environment, merge } from '@toa.io/generic';
|
|
2
2
|
import { syntax } from './RTD/index.js';
|
|
3
3
|
export function resolve() {
|
|
4
|
-
const value =
|
|
4
|
+
const value = environment.get('TOA_EXPOSITION');
|
|
5
5
|
const root = value !== undefined ? JSON.parse(value) : syntax.createNode();
|
|
6
6
|
merge(root, PREDEFINED);
|
|
7
7
|
return root;
|
package/transpiled/root.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root.js","sourceRoot":"","sources":["../source/root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"root.js","sourceRoot":"","sources":["../source/root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEvC,MAAM,UAAU,OAAO;IACrB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAC/C,MAAM,IAAI,GACR,KAAK,KAAK,SAAS,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;IAEhF,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAEvB,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,GAAgB;IAC9B,MAAM,EAAE;QACN;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE;gBACJ,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,KAAK;wBACX,UAAU,EAAE;4BACV;gCACE,MAAM,EAAE,IAAI;gCACZ,IAAI,EAAE,QAAQ;gCACd,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;6BACvB;4BACD;gCACE,MAAM,EAAE,MAAM;gCACd,IAAI,EAAE,MAAM;gCACZ,KAAK,EAAE,IAAI;6BACZ;yBACF;qBACF;oBACD;wBACE,IAAI,EAAE,MAAM;wBACZ,UAAU,EAAE;4BACV;gCACE,MAAM,EAAE,IAAI;gCACZ,IAAI,EAAE,QAAQ;gCACd,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;6BACvB;4BACD;gCACE,MAAM,EAAE,MAAM;gCACd,IAAI,EAAE,QAAQ;gCACd,KAAK,EAAE,IAAI;6BACZ;yBACF;qBACF;iBACF;gBACD,UAAU,EAAE,EAAE;aACf;SACF;KACF;IACD,OAAO,EAAE,EAAE;IACX,UAAU,EAAE,EAAE;CACf,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Connector } from '@toa.io/core';
|
|
2
|
+
import type { Host } from './Factory.js';
|
|
3
|
+
/**
|
|
4
|
+
* The gateway. A composition loads this extension for its tenants alone, so what the
|
|
5
|
+
* gateway is made of is reached from here and nowhere the factory imports.
|
|
6
|
+
*/
|
|
7
|
+
export declare function service(host: Host): Promise<Connector | null>;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import assert from 'node:assert';
|
|
2
|
+
import { console, traces } from 'openspan';
|
|
3
|
+
import { Gateway } from './Gateway.js';
|
|
4
|
+
import { Remotes } from './Remotes.js';
|
|
5
|
+
import { Tree } from './RTD/index.js';
|
|
6
|
+
import { EndpointsFactory } from './Endpoint.js';
|
|
7
|
+
import { families, interceptors } from './directives/index.js';
|
|
8
|
+
import { DirectivesFactory } from './Directive.js';
|
|
9
|
+
import { Composition } from './Composition.js';
|
|
10
|
+
import * as root from './root.js';
|
|
11
|
+
import { ATOM_GROUP, CHANNEL } from './const.js';
|
|
12
|
+
import { Interception } from './Interception.js';
|
|
13
|
+
import { Dispatcher } from './RPC/index.js';
|
|
14
|
+
import { Server as Model } from './MCP/index.js';
|
|
15
|
+
import * as http from './HTTP/index.js';
|
|
16
|
+
import { environment } from '@toa.io/generic';
|
|
17
|
+
/**
|
|
18
|
+
* The gateway. A composition loads this extension for its tenants alone, so what the
|
|
19
|
+
* gateway is made of is reached from here and nowhere the factory imports.
|
|
20
|
+
*/
|
|
21
|
+
export async function service(host) {
|
|
22
|
+
const properties = environment.get('TOA_EXPOSITION_PROPERTIES');
|
|
23
|
+
assert.ok(properties !== undefined, 'TOA_EXPOSITION_PROPERTIES is undefined');
|
|
24
|
+
configureLogs();
|
|
25
|
+
const options = JSON.parse(properties);
|
|
26
|
+
const broadcast = await host.broadcast(CHANNEL);
|
|
27
|
+
const server = http.Server.create({ ...options });
|
|
28
|
+
const remotes = new Remotes(host);
|
|
29
|
+
const node = root.resolve();
|
|
30
|
+
const methods = new EndpointsFactory(remotes);
|
|
31
|
+
const directives = new DirectivesFactory(families, remotes, host, options);
|
|
32
|
+
const interception = new Interception(interceptors, options);
|
|
33
|
+
const tree = new Tree(node, methods, directives);
|
|
34
|
+
const composition = new Composition(host);
|
|
35
|
+
const dispatcher = options.rpc === undefined ? null : new Dispatcher(options.rpc);
|
|
36
|
+
const mcp = options.mcp === undefined ? null : new Model(options.mcp, tree);
|
|
37
|
+
const gateway = new Gateway(broadcast, tree, interception, directives, dispatcher, mcp);
|
|
38
|
+
gateway.depends(remotes);
|
|
39
|
+
gateway.depends(composition);
|
|
40
|
+
// what the directives meter through; one atom per process, connected once
|
|
41
|
+
gateway.depends(host.atom(ATOM_GROUP));
|
|
42
|
+
server.attach(gateway.process.bind(gateway));
|
|
43
|
+
server.depends(gateway);
|
|
44
|
+
return server;
|
|
45
|
+
}
|
|
46
|
+
const LOGS_PREFIX = 'TOA_TELEMETRY_LOGS';
|
|
47
|
+
const TRACES_ENV = 'TOA_TELEMETRY_TRACES';
|
|
48
|
+
function configureLogs() {
|
|
49
|
+
const globEnv = environment.get(LOGS_PREFIX);
|
|
50
|
+
const level = environment.get('TOA_DEV') === '1' ? 'trace' : 'info';
|
|
51
|
+
const options = globEnv === undefined ? { level } : JSON.parse(globEnv);
|
|
52
|
+
console.configure({ level: options.level ?? level });
|
|
53
|
+
const tracesEnv = environment.get(TRACES_ENV);
|
|
54
|
+
const tracing = tracesEnv === undefined ? development() : JSON.parse(tracesEnv);
|
|
55
|
+
// `openspan` is not Toa's and reads the environment, which no longer holds the context by
|
|
56
|
+
// the time the exporter is made — so the service is named here
|
|
57
|
+
if (tracing.exporters?.otlp !== undefined)
|
|
58
|
+
tracing.exporters.otlp.service ??= environment.get('TOA_CONTEXT');
|
|
59
|
+
traces(tracing);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Tracing is off unless it is configured. The console exporter is a local development
|
|
63
|
+
* mechanism, so it is turned on for `toa dev` and for a boot trace the CLI has already
|
|
64
|
+
* asked for (`runtime/boot/src/span.js`), and nowhere else — a deployment that wants
|
|
65
|
+
* traces annotates `telemetry.traces.exporters`.
|
|
66
|
+
*
|
|
67
|
+
* The gateway boots without the telemetry extension, hence the copy of
|
|
68
|
+
* `extensions/telemetry/source/extension.ts`.
|
|
69
|
+
*/
|
|
70
|
+
function development() {
|
|
71
|
+
const local = environment.get('TOA_DEV') === '1' || environment.get('TOA_BOOT_TRACE') === '1';
|
|
72
|
+
return local ? { exporters: { console: {} } } : {};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../source/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** What a directive may be written as, where the family is implied. */
|
|
2
|
+
export const shortcuts = new Map([
|
|
3
|
+
['anonymous', 'auth:anonymous'],
|
|
4
|
+
['anyone', 'auth:anyone'],
|
|
5
|
+
['id', 'auth:id'],
|
|
6
|
+
['role', 'auth:role'],
|
|
7
|
+
['rule', 'auth:rule'],
|
|
8
|
+
['incept', 'auth:incept'],
|
|
9
|
+
['input', 'io:input'],
|
|
10
|
+
['output', 'io:output'],
|
|
11
|
+
['languages', 'map:languages']
|
|
12
|
+
]);
|
|
13
|
+
//# sourceMappingURL=shortcuts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shortcuts.js","sourceRoot":"","sources":["../source/shortcuts.ts"],"names":[],"mappings":"AAEA,uEAAuE;AACvE,MAAM,CAAC,MAAM,SAAS,GAAc,IAAI,GAAG,CAAC;IAC1C,CAAC,WAAW,EAAE,gBAAgB,CAAC;IAC/B,CAAC,QAAQ,EAAE,aAAa,CAAC;IACzB,CAAC,IAAI,EAAE,SAAS,CAAC;IACjB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,QAAQ,EAAE,aAAa,CAAC;IACzB,CAAC,OAAO,EAAE,UAAU,CAAC;IACrB,CAAC,QAAQ,EAAE,WAAW,CAAC;IACvB,CAAC,WAAW,EAAE,eAAe,CAAC;CAC/B,CAAC,CAAA"}
|