@eudiplo/cli 7.6.1-main.8bbb627 → 7.6.1-main.b6900cb
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/commands/config/portability/action.d.ts +1 -1
- package/dist/commands/config/portability/action.d.ts.map +1 -1
- package/dist/commands/config/portability/action.js +49 -95
- package/dist/commands/config/portability/action.js.map +1 -1
- package/dist/commands/config/portability/index.d.ts.map +1 -1
- package/dist/commands/config/portability/index.js +37 -5
- package/dist/commands/config/portability/index.js.map +1 -1
- package/dist/commands/config/portability/migrations.d.ts +3 -21
- package/dist/commands/config/portability/migrations.d.ts.map +1 -1
- package/dist/commands/config/portability/migrations.js +4 -92
- package/dist/commands/config/portability/migrations.js.map +1 -1
- package/dist/commands/config/portability/migrations.spec.js +12 -14
- package/dist/commands/config/portability/migrations.spec.js.map +1 -1
- package/dist/commands/config/portability/upgrade.d.ts +3 -0
- package/dist/commands/config/portability/upgrade.d.ts.map +1 -0
- package/dist/commands/config/portability/upgrade.js +199 -0
- package/dist/commands/config/portability/upgrade.js.map +1 -0
- package/dist/commands/config/tenant/action.js +3 -4
- package/dist/commands/config/tenant/action.js.map +1 -1
- package/dist/commands/config/validate/validator.d.ts.map +1 -1
- package/dist/commands/config/validate/validator.js +50 -30
- package/dist/commands/config/validate/validator.js.map +1 -1
- package/dist/commands/demo/action.d.ts.map +1 -1
- package/dist/commands/demo/action.js +2 -0
- package/dist/commands/demo/action.js.map +1 -1
- package/dist/commands/deployment/action.d.ts +1 -1
- package/dist/commands/deployment/action.d.ts.map +1 -1
- package/dist/commands/deployment/action.js +1 -0
- package/dist/commands/deployment/action.js.map +1 -1
- package/dist/commands/deployment/index.d.ts.map +1 -1
- package/dist/commands/deployment/index.js +29 -9
- package/dist/commands/deployment/index.js.map +1 -1
- package/dist/commands/init/action.d.ts.map +1 -1
- package/dist/commands/init/action.js +1 -0
- package/dist/commands/init/action.js.map +1 -1
- package/dist/commands/instance/action.d.ts.map +1 -1
- package/dist/commands/instance/action.js +42 -1
- package/dist/commands/instance/action.js.map +1 -1
- package/dist/commands/instance/index.d.ts.map +1 -1
- package/dist/commands/instance/index.js +5 -1
- package/dist/commands/instance/index.js.map +1 -1
- package/dist/services/cli-config.d.ts.map +1 -1
- package/dist/services/cli-config.js +46 -1
- package/dist/services/cli-config.js.map +1 -1
- package/dist/services/deployment-drivers.d.ts +10 -0
- package/dist/services/deployment-drivers.d.ts.map +1 -1
- package/dist/services/deployment-drivers.js +357 -6
- package/dist/services/deployment-drivers.js.map +1 -1
- package/dist/services/deployment-target.js +1 -1
- package/dist/services/deployment-target.js.map +1 -1
- package/dist/services/diagnostics.d.ts +3 -9
- package/dist/services/diagnostics.d.ts.map +1 -1
- package/dist/services/diagnostics.js +1 -7
- package/dist/services/diagnostics.js.map +1 -1
- package/dist/services/kubectl.d.ts +51 -0
- package/dist/services/kubectl.d.ts.map +1 -0
- package/dist/services/kubectl.js +150 -0
- package/dist/services/kubectl.js.map +1 -0
- package/dist/types.d.ts +15 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -2
- package/templates/demo-config/attribute-providers/claims-provider.json +8 -2
- package/templates/demo-config/clients/presentation-test.json +8 -2
- package/templates/demo-config/clients/test.json +12 -6
- package/templates/demo-config/info.json +7 -1
- package/templates/demo-config/issuance/credentials/citizen.json +43 -37
- package/templates/demo-config/issuance/credentials/pid-key.json +371 -365
- package/templates/demo-config/issuance/credentials/pid-mdoc.json +444 -438
- package/templates/demo-config/issuance/credentials/pid.json +472 -466
- package/templates/demo-config/issuance/issuance.json +1 -3
- package/templates/demo-config/issuance/status-lists/pid.json +12 -6
- package/templates/demo-config/key-chains/access.json +2 -4
- package/templates/demo-config/key-chains/attestation.json +2 -4
- package/templates/demo-config/key-chains/status-list.json +1 -3
- package/templates/demo-config/key-chains/trust-list.json +1 -3
- package/templates/demo-config/presentation/age-over-18.json +20 -7
- package/templates/demo-config/presentation/pid.json +1 -3
- package/templates/demo-config/trust-lists/trustlist-580831bc-ef11-43f4-a3be-a2b6bf1b29a3-config.json +96 -90
- package/templates/demo-config/webhook-endpoints/notification.json +8 -2
- package/templates/schemas/AttributeProviderConfigFile.schema.json +38 -15
- package/templates/schemas/ClientConfigFile.schema.json +38 -15
- package/templates/schemas/CredentialConfigFile.schema.json +38 -15
- package/templates/schemas/IssuanceConfigFile.schema.json +24 -12
- package/templates/schemas/KeyChainConfigFile.schema.json +373 -19
- package/templates/schemas/KmsConfigFile.schema.json +21 -14
- package/templates/schemas/PresentationConfigFile.schema.json +41 -13
- package/templates/schemas/RegistrarConfigFile.schema.json +21 -14
- package/templates/schemas/StatusListConfigFile.schema.json +38 -15
- package/templates/schemas/TenantConfigFile.schema.json +136 -20
- package/templates/schemas/TrustListConfigFile.schema.json +38 -15
- package/templates/schemas/WebhookEndpointConfigFile.schema.json +38 -15
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every kubectl invocation carries an explicit context and namespace so a
|
|
3
|
+
* command can never fall through to whatever the user's current kubeconfig
|
|
4
|
+
* happens to point at.
|
|
5
|
+
*/
|
|
6
|
+
function scopeArgs(scope) {
|
|
7
|
+
return [
|
|
8
|
+
"--context",
|
|
9
|
+
scope.context,
|
|
10
|
+
"--namespace",
|
|
11
|
+
scope.namespace,
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
export function resolveScope(instance, instanceName) {
|
|
15
|
+
if (!instance.context) {
|
|
16
|
+
throw new Error(`Instance ${instanceName} does not define a Kubernetes context.`);
|
|
17
|
+
}
|
|
18
|
+
if (!instance.namespace) {
|
|
19
|
+
throw new Error(`Instance ${instanceName} does not define a Kubernetes namespace.`);
|
|
20
|
+
}
|
|
21
|
+
return { context: instance.context, namespace: instance.namespace };
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Workload names from deployment/k8s/base, used when an instance is registered
|
|
25
|
+
* without an explicit --workload map.
|
|
26
|
+
*/
|
|
27
|
+
export const defaultWorkloads = {
|
|
28
|
+
backend: "deployment/eudiplo",
|
|
29
|
+
client: "deployment/eudiplo-client",
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Resolves a `--service` value against the configured workload map. Refuses
|
|
33
|
+
* to guess: with several workloads configured and no service named, the
|
|
34
|
+
* caller has to be explicit.
|
|
35
|
+
*/
|
|
36
|
+
export function resolveWorkload(instance, service) {
|
|
37
|
+
const workloads = instance.workloads ?? {};
|
|
38
|
+
const names = Object.keys(workloads).sort();
|
|
39
|
+
if (names.length === 0) {
|
|
40
|
+
throw new Error("No workloads are configured for this instance. Add them with: eudiplo instance add --workload <service>=<kind>/<name>");
|
|
41
|
+
}
|
|
42
|
+
if (service === undefined) {
|
|
43
|
+
if (names.length === 1) {
|
|
44
|
+
return workloads[names[0]];
|
|
45
|
+
}
|
|
46
|
+
throw new Error(`Several workloads are configured (${names.join(", ")}). Name one with --service.`);
|
|
47
|
+
}
|
|
48
|
+
const workload = workloads[service];
|
|
49
|
+
if (!workload) {
|
|
50
|
+
throw new Error(`Unknown service ${service}. Configured services: ${names.join(", ")}.`);
|
|
51
|
+
}
|
|
52
|
+
return workload;
|
|
53
|
+
}
|
|
54
|
+
export function resolveWorkloads(instance, service) {
|
|
55
|
+
if (service !== undefined) {
|
|
56
|
+
return [resolveWorkload(instance, service)];
|
|
57
|
+
}
|
|
58
|
+
const workloads = instance.workloads ?? {};
|
|
59
|
+
return Object.keys(workloads)
|
|
60
|
+
.sort()
|
|
61
|
+
.map((name) => workloads[name]);
|
|
62
|
+
}
|
|
63
|
+
export function buildGetPodsArgs(scope) {
|
|
64
|
+
return ["get", "pods", ...scopeArgs(scope), "--output", "wide"];
|
|
65
|
+
}
|
|
66
|
+
export function buildGetWorkloadArgs(scope, workload) {
|
|
67
|
+
return ["get", workload, ...scopeArgs(scope), "--output", "json"];
|
|
68
|
+
}
|
|
69
|
+
export function buildLogsArgs(scope, workload, options = {}) {
|
|
70
|
+
const args = ["logs", workload, ...scopeArgs(scope)];
|
|
71
|
+
if (options.follow === true) {
|
|
72
|
+
args.push("--follow");
|
|
73
|
+
}
|
|
74
|
+
if (options.tail !== undefined) {
|
|
75
|
+
args.push("--tail", String(options.tail));
|
|
76
|
+
}
|
|
77
|
+
return args;
|
|
78
|
+
}
|
|
79
|
+
export function buildRestartArgs(scope, workload) {
|
|
80
|
+
return ["rollout", "restart", workload, ...scopeArgs(scope)];
|
|
81
|
+
}
|
|
82
|
+
export function buildRolloutStatusArgs(scope, workload) {
|
|
83
|
+
return ["rollout", "status", workload, ...scopeArgs(scope)];
|
|
84
|
+
}
|
|
85
|
+
export function buildCanIArgs(scope, verb, resource) {
|
|
86
|
+
return ["auth", "can-i", verb, resource, ...scopeArgs(scope)];
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* EndpointSlice rather than Endpoints: the v1 Endpoints API is deprecated from
|
|
90
|
+
* Kubernetes 1.33 and reading it makes the API server emit a deprecation
|
|
91
|
+
* warning on every call.
|
|
92
|
+
*/
|
|
93
|
+
export function buildGetEndpointSlicesArgs(scope) {
|
|
94
|
+
return ["get", "endpointslices", ...scopeArgs(scope), "--output", "json"];
|
|
95
|
+
}
|
|
96
|
+
const dns1123Label = /^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/;
|
|
97
|
+
const workloadReference = /^[a-z][a-z0-9.-]*\/[a-z0-9]([a-z0-9.-]*[a-z0-9])?$/;
|
|
98
|
+
/**
|
|
99
|
+
* Namespaces are DNS-1123 labels, which cannot start with a hyphen. Checking
|
|
100
|
+
* the shape here means a configured value can never be read by kubectl as a
|
|
101
|
+
* flag rather than as an argument.
|
|
102
|
+
*/
|
|
103
|
+
export function assertNamespace(value, label) {
|
|
104
|
+
if (!dns1123Label.test(value) || value.length > 63) {
|
|
105
|
+
throw new Error(`${label} must be a lowercase DNS-1123 label (letters, digits and hyphens, not starting or ending with a hyphen).`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Context names are freer-form than namespaces, so this only rules out the
|
|
110
|
+
* shapes that would be ambiguous on a command line.
|
|
111
|
+
*/
|
|
112
|
+
export function assertContextName(value, label) {
|
|
113
|
+
if (value.length === 0 || value.startsWith("-") || /\s/.test(value)) {
|
|
114
|
+
throw new Error(`${label} must not be empty, start with a hyphen or contain whitespace.`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
export function assertWorkloadReference(value, label) {
|
|
118
|
+
if (!workloadReference.test(value)) {
|
|
119
|
+
throw new Error(`${label} must be a workload reference of the form <kind>/<name>, for example deployment/eudiplo.`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Parses `backend=deployment/eudiplo,client=deployment/eudiplo-client` into a
|
|
124
|
+
* workload map, validating each reference as it goes.
|
|
125
|
+
*/
|
|
126
|
+
export function parseWorkloadMap(value) {
|
|
127
|
+
const workloads = {};
|
|
128
|
+
for (const entry of value.split(",")) {
|
|
129
|
+
const trimmed = entry.trim();
|
|
130
|
+
if (trimmed.length === 0) {
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
const separator = trimmed.indexOf("=");
|
|
134
|
+
if (separator <= 0) {
|
|
135
|
+
throw new Error(`Workload ${trimmed} must be given as <service>=<kind>/<name>.`);
|
|
136
|
+
}
|
|
137
|
+
const service = trimmed.slice(0, separator).trim();
|
|
138
|
+
const reference = trimmed.slice(separator + 1).trim();
|
|
139
|
+
if (Object.hasOwn(workloads, service)) {
|
|
140
|
+
throw new Error(`Workload ${service} was given more than once.`);
|
|
141
|
+
}
|
|
142
|
+
assertWorkloadReference(reference, `Workload ${service}`);
|
|
143
|
+
workloads[service] = reference;
|
|
144
|
+
}
|
|
145
|
+
if (Object.keys(workloads).length === 0) {
|
|
146
|
+
throw new Error("At least one workload must be given.");
|
|
147
|
+
}
|
|
148
|
+
return workloads;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=kubectl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kubectl.js","sourceRoot":"","sources":["../../src/services/kubectl.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type DeploymentTarget = "compose" | "external";
|
|
1
|
+
export type DeploymentTarget = "compose" | "external" | "kubernetes";
|
|
2
2
|
type CliInstallationMethod = "npm" | "standalone";
|
|
3
3
|
export interface InstanceConfig {
|
|
4
4
|
target: DeploymentTarget;
|
|
@@ -10,6 +10,10 @@ export interface InstanceConfig {
|
|
|
10
10
|
envFile?: string;
|
|
11
11
|
projectName?: string;
|
|
12
12
|
projectDirectory?: string;
|
|
13
|
+
context?: string;
|
|
14
|
+
namespace?: string;
|
|
15
|
+
workloads?: Record<string, string>;
|
|
16
|
+
readOnly?: boolean;
|
|
13
17
|
}
|
|
14
18
|
export interface CliConfig {
|
|
15
19
|
defaultInstance?: string;
|
|
@@ -29,14 +33,23 @@ export interface DriverCommandOptions {
|
|
|
29
33
|
instanceName: string;
|
|
30
34
|
instance: InstanceConfig;
|
|
31
35
|
args: string[];
|
|
36
|
+
flags: Record<string, string | boolean>;
|
|
32
37
|
context: CommandContext;
|
|
33
38
|
}
|
|
39
|
+
export type CheckStatus = "pass" | "warn" | "fail";
|
|
40
|
+
export interface DoctorCheck {
|
|
41
|
+
name: string;
|
|
42
|
+
status: CheckStatus;
|
|
43
|
+
message: string;
|
|
44
|
+
}
|
|
34
45
|
export interface DeploymentDriver {
|
|
35
46
|
target: DeploymentTarget;
|
|
36
|
-
diagnostics(instance: InstanceConfig, context: CommandContext): Promise<
|
|
47
|
+
diagnostics(instance: InstanceConfig, context: CommandContext): Promise<DoctorCheck[]>;
|
|
37
48
|
up?(options: DriverCommandOptions): Promise<number>;
|
|
38
49
|
down?(options: DriverCommandOptions): Promise<number>;
|
|
39
50
|
logs?(options: DriverCommandOptions): Promise<number>;
|
|
51
|
+
ps?(options: DriverCommandOptions): Promise<number>;
|
|
52
|
+
restart?(options: DriverCommandOptions): Promise<number>;
|
|
40
53
|
}
|
|
41
54
|
export interface ParsedArgs {
|
|
42
55
|
command?: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;AACrE,KAAK,qBAAqB,GAAG,KAAK,GAAG,YAAY,CAAC;AAElD,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,gBAAgB,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,kBAAkB,CAAC,EAAE,qBAAqB,CAAC;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC1C,KAAK,EAAE,OAAO,KAAK,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IACxC,OAAO,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnD,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,CACP,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,cAAc,GACxB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1B,EAAE,CAAC,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,EAAE,CAAC,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,OAAO,CAAC,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,UAAU;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;CAC3C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eudiplo/cli",
|
|
3
|
-
"version": "7.6.1-main.
|
|
3
|
+
"version": "7.6.1-main.b6900cb",
|
|
4
4
|
"description": "Deployment-aware command line tools for EUDIPLO",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"access": "public"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
+
"@eudiplo/config-format": "workspace:*",
|
|
52
53
|
"ajv": "^8.20.0",
|
|
53
54
|
"ajv-formats": "^3.0.1",
|
|
54
55
|
"commander": "^15.0.0",
|
|
@@ -56,7 +57,7 @@
|
|
|
56
57
|
"jsonc-parser": "^3.3.1"
|
|
57
58
|
},
|
|
58
59
|
"devDependencies": {
|
|
59
|
-
"@biomejs/biome": "2.5.
|
|
60
|
+
"@biomejs/biome": "2.5.13",
|
|
60
61
|
"@types/node": "^26.4.0",
|
|
61
62
|
"esbuild": "^0.28.2",
|
|
62
63
|
"tsx": "^4.23.13",
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
{
|
|
2
|
+
"$schema": "https://eudiplo.dev/schemas/v1/AttributeProviderConfigFile.schema.json",
|
|
3
|
+
"metadata": {
|
|
4
|
+
"generation": 1
|
|
5
|
+
},
|
|
6
|
+
"spec": {
|
|
2
7
|
"id": "claims-provider",
|
|
3
8
|
"name": "Claims Provider",
|
|
4
9
|
"description": "Provides dynamic claim values during credential issuance",
|
|
5
10
|
"url": "${ATTRIBUTE_PROVIDER_URL:http://localhost:8787}",
|
|
6
11
|
"auth": {
|
|
7
|
-
|
|
12
|
+
"type": "none"
|
|
8
13
|
}
|
|
9
|
-
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
{
|
|
2
|
+
"$schema": "https://eudiplo.dev/schemas/v1/ClientConfigFile.schema.json",
|
|
3
|
+
"metadata": {
|
|
4
|
+
"generation": 1
|
|
5
|
+
},
|
|
6
|
+
"spec": {
|
|
2
7
|
"clientId": "presentation-test",
|
|
3
8
|
"secret": "${PRESENTATION_TEST_CLIENT_SECRET:presentation-test-secret}",
|
|
4
9
|
"description": "Load test client for OID4VP presentation scenarios",
|
|
5
10
|
"roles": [
|
|
6
|
-
|
|
7
|
-
|
|
11
|
+
"presentation:request",
|
|
12
|
+
"presentation:manage"
|
|
8
13
|
]
|
|
14
|
+
}
|
|
9
15
|
}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
{
|
|
2
|
+
"$schema": "https://eudiplo.dev/schemas/v1/ClientConfigFile.schema.json",
|
|
3
|
+
"metadata": {
|
|
4
|
+
"generation": 1
|
|
5
|
+
},
|
|
6
|
+
"spec": {
|
|
2
7
|
"clientId": "test-client",
|
|
3
8
|
"secret": "${TEST_CLIENT_SECRET:test-client-secret}",
|
|
4
9
|
"description": "Test client",
|
|
5
10
|
"roles": [
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
"clients:manage",
|
|
12
|
+
"issuance:offer",
|
|
13
|
+
"issuance:manage",
|
|
14
|
+
"presentation:request",
|
|
15
|
+
"presentation:manage"
|
|
11
16
|
]
|
|
12
|
-
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -1,41 +1,47 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
"$schema": "https://eudiplo.dev/schemas/v1/CredentialConfigFile.schema.json",
|
|
3
|
+
"metadata": {
|
|
4
|
+
"generation": 1
|
|
5
|
+
},
|
|
6
|
+
"spec": {
|
|
7
|
+
"id": "citizen",
|
|
8
|
+
"description": "Citizen issuance with IAE flow",
|
|
9
|
+
"config": {
|
|
10
|
+
"format": "dc+sd-jwt",
|
|
11
|
+
"display": [
|
|
12
|
+
{
|
|
13
|
+
"name": "Citizen Pass",
|
|
14
|
+
"background_color": "#FFFFFF",
|
|
15
|
+
"background_image": {
|
|
16
|
+
"uri": "credential.png"
|
|
17
|
+
},
|
|
18
|
+
"description": "A pass for this citizen",
|
|
19
|
+
"locale": "en-US",
|
|
20
|
+
"text_color": "#000000"
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
"iaeActions": [
|
|
25
|
+
{
|
|
26
|
+
"type": "openid4vp_presentation",
|
|
27
|
+
"presentationConfigId": "pid",
|
|
28
|
+
"label": "KYC process"
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"vct": {
|
|
32
|
+
"name": "Citizen",
|
|
33
|
+
"description": "This is our development version of the education credential. Don't panic."
|
|
34
|
+
},
|
|
35
|
+
"fields": [
|
|
7
36
|
{
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"text_color": "#000000"
|
|
37
|
+
"path": [
|
|
38
|
+
"town"
|
|
39
|
+
],
|
|
40
|
+
"type": "string",
|
|
41
|
+
"defaultValue": "BERLIN",
|
|
42
|
+
"mandatory": true,
|
|
43
|
+
"disclosable": false
|
|
16
44
|
}
|
|
17
45
|
]
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
{
|
|
21
|
-
"type": "openid4vp_presentation",
|
|
22
|
-
"presentationConfigId": "pid",
|
|
23
|
-
"label": "KYC process"
|
|
24
|
-
}
|
|
25
|
-
],
|
|
26
|
-
"vct": {
|
|
27
|
-
"name": "Citizen",
|
|
28
|
-
"description": "This is our development version of the education credential. Don't panic."
|
|
29
|
-
},
|
|
30
|
-
"fields": [
|
|
31
|
-
{
|
|
32
|
-
"path": [
|
|
33
|
-
"town"
|
|
34
|
-
],
|
|
35
|
-
"type": "string",
|
|
36
|
-
"defaultValue": "BERLIN",
|
|
37
|
-
"mandatory": true,
|
|
38
|
-
"disclosable": false
|
|
39
|
-
}
|
|
40
|
-
]
|
|
41
|
-
}
|
|
46
|
+
}
|
|
47
|
+
}
|