@pikku/core 0.12.104 → 0.12.106
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 +14 -0
- package/dist/dev/module-runner.js +33 -1
- package/dist/middleware/index.d.ts +1 -0
- package/dist/middleware/index.js +1 -0
- package/dist/middleware/remote-jobs-secret.d.ts +14 -0
- package/dist/middleware/remote-jobs-secret.js +27 -0
- package/dist/services/credential-wire-service.d.ts +15 -0
- package/dist/services/credential-wire-service.js +30 -11
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.js +1 -0
- package/dist/services/remote-jobs.d.ts +27 -0
- package/dist/services/remote-jobs.js +59 -0
- package/dist/wirings/scheduler/index.d.ts +1 -1
- package/dist/wirings/scheduler/index.js +1 -1
- package/dist/wirings/scheduler/scheduler-runner.d.ts +4 -0
- package/dist/wirings/scheduler/scheduler-runner.js +1 -1
- package/package.json +1 -1
- package/src/dev/module-runner.test.ts +23 -0
- package/src/dev/module-runner.ts +39 -1
- package/src/middleware/index.ts +1 -0
- package/src/middleware/remote-jobs-secret.ts +35 -0
- package/src/public-surface.json +61 -14
- package/src/services/credential-wire-service.test.ts +63 -0
- package/src/services/credential-wire-service.ts +27 -9
- package/src/services/index.ts +10 -0
- package/src/services/remote-jobs.test.ts +106 -0
- package/src/services/remote-jobs.ts +92 -0
- package/src/wirings/scheduler/index.ts +1 -0
- package/src/wirings/scheduler/scheduler-runner.ts +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/classification/data-lock.d.ts +0 -80
- package/dist/classification/data-lock.js +0 -146
- package/dist/column-form.d.ts +0 -32
- package/dist/column-form.js +0 -42
- package/dist/data-classification.d.ts +0 -64
- package/dist/data-classification.js +0 -1
- package/dist/ecosystem/agent-scorer.d.ts +0 -12
- package/dist/ecosystem/agent-scorer.js +0 -5
- package/dist/ecosystem/agent.d.ts +0 -21
- package/dist/ecosystem/agent.js +0 -6
- package/dist/ecosystem/channel/local.d.ts +0 -3
- package/dist/ecosystem/channel/local.js +0 -3
- package/dist/ecosystem/channel/serverless.d.ts +0 -9
- package/dist/ecosystem/channel/serverless.js +0 -1
- package/dist/ecosystem/channel.d.ts +0 -15
- package/dist/ecosystem/channel.js +0 -5
- package/dist/ecosystem/cli/channel.d.ts +0 -16
- package/dist/ecosystem/cli/channel.js +0 -2
- package/dist/ecosystem/cli.d.ts +0 -9
- package/dist/ecosystem/cli.js +0 -2
- package/dist/ecosystem/credential.d.ts +0 -10
- package/dist/ecosystem/credential.js +0 -1
- package/dist/ecosystem/crypto-utils.d.ts +0 -8
- package/dist/ecosystem/crypto-utils.js +0 -1
- package/dist/ecosystem/dev.d.ts +0 -9
- package/dist/ecosystem/dev.js +0 -2
- package/dist/ecosystem/errors.d.ts +0 -8
- package/dist/ecosystem/errors.js +0 -2
- package/dist/ecosystem/function.d.ts +0 -13
- package/dist/ecosystem/function.js +0 -2
- package/dist/ecosystem/gateway.d.ts +0 -1
- package/dist/ecosystem/gateway.js +0 -1
- package/dist/ecosystem/hmac.d.ts +0 -1
- package/dist/ecosystem/hmac.js +0 -1
- package/dist/ecosystem/http.d.ts +0 -13
- package/dist/ecosystem/http.js +0 -5
- package/dist/ecosystem/mcp.d.ts +0 -3
- package/dist/ecosystem/mcp.js +0 -2
- package/dist/ecosystem/middleware.d.ts +0 -18
- package/dist/ecosystem/middleware.js +0 -7
- package/dist/ecosystem/node-host-resolver.d.ts +0 -1
- package/dist/ecosystem/node-host-resolver.js +0 -1
- package/dist/ecosystem/node.d.ts +0 -1
- package/dist/ecosystem/node.js +0 -1
- package/dist/ecosystem/oauth2.d.ts +0 -1
- package/dist/ecosystem/oauth2.js +0 -1
- package/dist/ecosystem/persona.d.ts +0 -17
- package/dist/ecosystem/persona.js +0 -5
- package/dist/ecosystem/queue.d.ts +0 -13
- package/dist/ecosystem/queue.js +0 -4
- package/dist/ecosystem/remote.d.ts +0 -8
- package/dist/ecosystem/remote.js +0 -1
- package/dist/ecosystem/role.d.ts +0 -4
- package/dist/ecosystem/role.js +0 -2
- package/dist/ecosystem/rpc.d.ts +0 -6
- package/dist/ecosystem/rpc.js +0 -3
- package/dist/ecosystem/safe-fetch.d.ts +0 -7
- package/dist/ecosystem/safe-fetch.js +0 -1
- package/dist/ecosystem/scenario.d.ts +0 -21
- package/dist/ecosystem/scenario.js +0 -8
- package/dist/ecosystem/scheduler.d.ts +0 -3
- package/dist/ecosystem/scheduler.js +0 -2
- package/dist/ecosystem/schema.d.ts +0 -2
- package/dist/ecosystem/schema.js +0 -1
- package/dist/ecosystem/scope.d.ts +0 -5
- package/dist/ecosystem/scope.js +0 -3
- package/dist/ecosystem/secret.d.ts +0 -11
- package/dist/ecosystem/secret.js +0 -2
- package/dist/ecosystem/services/istanbul-coverage.d.ts +0 -1
- package/dist/ecosystem/services/istanbul-coverage.js +0 -1
- package/dist/ecosystem/services/local-content-request-handler.d.ts +0 -9
- package/dist/ecosystem/services/local-content-request-handler.js +0 -1
- package/dist/ecosystem/services/local-content.d.ts +0 -2
- package/dist/ecosystem/services/local-content.js +0 -1
- package/dist/ecosystem/services/local-meta.d.ts +0 -1
- package/dist/ecosystem/services/local-meta.js +0 -1
- package/dist/ecosystem/services/v8-coverage.d.ts +0 -1
- package/dist/ecosystem/services/v8-coverage.js +0 -1
- package/dist/ecosystem/services.d.ts +0 -36
- package/dist/ecosystem/services.js +0 -12
- package/dist/ecosystem/testing.d.ts +0 -7
- package/dist/ecosystem/testing.js +0 -1
- package/dist/ecosystem/trigger.d.ts +0 -2
- package/dist/ecosystem/trigger.js +0 -1
- package/dist/ecosystem/types.d.ts +0 -12
- package/dist/ecosystem/types.js +0 -6
- package/dist/ecosystem/variable.d.ts +0 -9
- package/dist/ecosystem/variable.js +0 -1
- package/dist/ecosystem/virtual-user.d.ts +0 -24
- package/dist/ecosystem/virtual-user.js +0 -8
- package/dist/ecosystem/workflow.d.ts +0 -20
- package/dist/ecosystem/workflow.js +0 -6
- package/dist/ecosystem.d.ts +0 -27
- package/dist/ecosystem.js +0 -26
- package/dist/index.d.ts +0 -60
- package/dist/index.js +0 -25
- package/dist/middleware/require-unlocked.d.ts +0 -23
- package/dist/middleware/require-unlocked.js +0 -21
- package/dist/pikku-request.d.ts +0 -8
- package/dist/pikku-request.js +0 -15
- package/dist/secret-value.d.ts +0 -56
- package/dist/secret-value.js +0 -46
- package/dist/wirings/data-lock/data-lock-wiring.d.ts +0 -40
- package/dist/wirings/data-lock/data-lock-wiring.js +0 -77
- package/dist/wirings/data-lock/index.d.ts +0 -9
- package/dist/wirings/data-lock/index.js +0 -8
- package/dist/wirings/rpc/addon-runner.d.ts +0 -17
- package/dist/wirings/rpc/addon-runner.js +0 -150
- package/dist/wirings/rpc/remote-addon-auth.d.ts +0 -16
- package/dist/wirings/rpc/remote-addon-auth.js +0 -39
- package/dist/wirings/rpc/wire-addon.d.ts +0 -62
- package/dist/wirings/rpc/wire-addon.js +0 -88
- package/dist/wirings/rpc/wire-remote-addon.d.ts +0 -22
- package/dist/wirings/rpc/wire-remote-addon.js +0 -11
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { pikkuState } from '../../pikku-state.js';
|
|
2
|
-
import { getTagGroups } from '../../utils.js';
|
|
3
|
-
export const wireAddon = (config) => {
|
|
4
|
-
pikkuState(null, 'addons', 'packages').set(config.name, {
|
|
5
|
-
package: config.package,
|
|
6
|
-
rpcEndpoint: config.rpcEndpoint,
|
|
7
|
-
auth: config.auth,
|
|
8
|
-
tags: config.tags,
|
|
9
|
-
...(config.scopes ? { scopes: config.scopes } : {}),
|
|
10
|
-
...(config.secretOverrides
|
|
11
|
-
? { secretOverrides: config.secretOverrides }
|
|
12
|
-
: {}),
|
|
13
|
-
...(config.variableOverrides
|
|
14
|
-
? { variableOverrides: config.variableOverrides }
|
|
15
|
-
: {}),
|
|
16
|
-
...(config.credentialOverrides
|
|
17
|
-
? { credentialOverrides: config.credentialOverrides }
|
|
18
|
-
: {}),
|
|
19
|
-
...(config.secretGrants ? { secretGrants: config.secretGrants } : {}),
|
|
20
|
-
...(config.credentialGrants
|
|
21
|
-
? { credentialGrants: config.credentialGrants }
|
|
22
|
-
: {}),
|
|
23
|
-
...(config.globalSecrets ? { globalSecrets: config.globalSecrets } : {}),
|
|
24
|
-
...(config.globalCredentials
|
|
25
|
-
? { globalCredentials: config.globalCredentials }
|
|
26
|
-
: {}),
|
|
27
|
-
});
|
|
28
|
-
};
|
|
29
|
-
/**
|
|
30
|
-
* The addon configs a running function is governed by: the named instance when
|
|
31
|
-
* the caller resolved one, every instance of the package otherwise.
|
|
32
|
-
*
|
|
33
|
-
* knowledge: decisions/security/addon-scopes-are-resolved-where-the-function-runs.md
|
|
34
|
-
*/
|
|
35
|
-
const governingAddonConfigs = (packageName, namespace) => {
|
|
36
|
-
if (!packageName) {
|
|
37
|
-
return [];
|
|
38
|
-
}
|
|
39
|
-
const addons = pikkuState(null, 'addons', 'packages');
|
|
40
|
-
if (!addons) {
|
|
41
|
-
return [];
|
|
42
|
-
}
|
|
43
|
-
if (namespace) {
|
|
44
|
-
const config = addons.get(namespace);
|
|
45
|
-
if (config?.package === packageName) {
|
|
46
|
-
return [config];
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return [...addons.values()].filter((config) => config?.package === packageName);
|
|
50
|
-
};
|
|
51
|
-
const unionOf = (packageName, namespace, field) => {
|
|
52
|
-
const values = new Set();
|
|
53
|
-
for (const config of governingAddonConfigs(packageName, namespace)) {
|
|
54
|
-
for (const value of config[field] ?? []) {
|
|
55
|
-
values.add(value);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return [...values];
|
|
59
|
-
};
|
|
60
|
-
/**
|
|
61
|
-
* knowledge: decisions/security/addon-scopes-are-resolved-where-the-function-runs.md
|
|
62
|
-
*/
|
|
63
|
-
export const resolveAddonScopes = (packageName, namespace) => unionOf(packageName, namespace, 'scopes');
|
|
64
|
-
/**
|
|
65
|
-
* knowledge: decisions/security/addon-auth-and-tags-only-tighten.md
|
|
66
|
-
*/
|
|
67
|
-
export const resolveAddonTags = (packageName, namespace) => unionOf(packageName, namespace, 'tags');
|
|
68
|
-
/**
|
|
69
|
-
* True when any governing instance requires a session. `auth: false` is not
|
|
70
|
-
* honoured here — on a direct wiring it would weaken the wiring's own gate.
|
|
71
|
-
*
|
|
72
|
-
* knowledge: decisions/security/addon-auth-and-tags-only-tighten.md
|
|
73
|
-
*/
|
|
74
|
-
export const resolveAddonAuth = (packageName, namespace) => governingAddonConfigs(packageName, namespace).some((config) => config.auth === true);
|
|
75
|
-
/**
|
|
76
|
-
* Addon tags name middleware the *consuming app* registered, so they resolve
|
|
77
|
-
* against the root tag groups rather than the addon package's own.
|
|
78
|
-
*
|
|
79
|
-
* knowledge: decisions/security/addon-auth-and-tags-only-tighten.md
|
|
80
|
-
*/
|
|
81
|
-
export const resolveAddonTagMiddleware = (packageName, namespace) => {
|
|
82
|
-
const tags = resolveAddonTags(packageName, namespace);
|
|
83
|
-
if (tags.length === 0) {
|
|
84
|
-
return [];
|
|
85
|
-
}
|
|
86
|
-
const tagGroups = pikkuState(null, 'middleware', 'tagGroup');
|
|
87
|
-
return tags.flatMap((tag) => getTagGroups(tagGroups, tag).flat());
|
|
88
|
-
};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { CoreServices, PikkuWire } from '../../types/core.types.js';
|
|
2
|
-
/** Sent as `Authorization: Bearer <token>`; a non-default header is declared by the addon. */
|
|
3
|
-
export type RemoteAddonAuth = {
|
|
4
|
-
credentialId: string;
|
|
5
|
-
} | {
|
|
6
|
-
secretId: string;
|
|
7
|
-
} | {
|
|
8
|
-
resolve: (services: CoreServices, wire: PikkuWire) => string | Promise<string>;
|
|
9
|
-
};
|
|
10
|
-
export type WireRemoteAddonConfig = {
|
|
11
|
-
/** Consumer-facing namespace, e.g. `registry` → `rpc('registry:getOpenApi')` */
|
|
12
|
-
name: string;
|
|
13
|
-
/** Must be installed as a devDependency — `pikku verify` enforces this. */
|
|
14
|
-
package: string;
|
|
15
|
-
serverUrl: string | ((services: CoreServices) => string | Promise<string>);
|
|
16
|
-
/** Omit when the addon declares its remote surface public. */
|
|
17
|
-
auth?: RemoteAddonAuth;
|
|
18
|
-
/** Map a consumer-facing fn name → the remote fn name, when they differ (rare). */
|
|
19
|
-
remoteName?: (fn: string) => string;
|
|
20
|
-
tags?: string[];
|
|
21
|
-
};
|
|
22
|
-
export declare const wireRemoteAddon: (config: WireRemoteAddonConfig) => void;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { pikkuState } from '../../pikku-state.js';
|
|
2
|
-
export const wireRemoteAddon = (config) => {
|
|
3
|
-
pikkuState(null, 'addons', 'packages').set(config.name, {
|
|
4
|
-
package: config.package,
|
|
5
|
-
tags: config.tags,
|
|
6
|
-
remote: true,
|
|
7
|
-
serverUrl: config.serverUrl,
|
|
8
|
-
...(config.auth ? { remoteAuth: config.auth } : {}),
|
|
9
|
-
...(config.remoteName ? { remoteName: config.remoteName } : {}),
|
|
10
|
-
});
|
|
11
|
-
};
|