@celilo/cli 4.1.0 → 5.0.0
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/AGENTS.md +2 -2
- package/drizzle/0034_private_routes.sql +41 -0
- package/drizzle/meta/_journal.json +8 -1
- package/package.json +2 -2
- package/src/api/sessions.test.ts +1 -1
- package/src/capabilities/registration.test.ts +11 -11
- package/src/capabilities/secrets.test.ts +18 -18
- package/src/capabilities/validation.test.ts +24 -24
- package/src/cli/cli.test.ts +3 -3
- package/src/cli/commands/module-changeset.test.ts +1 -1
- package/src/cli/commands/module-generate.test.ts +2 -2
- package/src/cli/commands/module-import-aspect.test.ts +2 -2
- package/src/cli/commands/module-update.test.ts +14 -14
- package/src/cli/commands/module-upgrade-gate.test.ts +26 -1
- package/src/cli/commands/module-upgrade.test.ts +3 -3
- package/src/cli/commands/module-upgrade.ts +12 -0
- package/src/cli/commands/module-version.test.ts +1 -1
- package/src/cli/index.ts +22 -2
- package/src/cli/restore-migration-failure.test.ts +1 -1
- package/src/cli/stdout-pipe-flush.test.ts +35 -0
- package/src/db/private-routes.test.ts +159 -0
- package/src/db/schema.ts +49 -0
- package/src/hooks/capability-loader.ts +179 -12
- package/src/hooks/executor.test.ts +13 -13
- package/src/hooks/hook-state-dir.test.ts +2 -2
- package/src/hooks/test-fixtures/store-backed.ts +5 -3
- package/src/manifest/contracts/index.ts +28 -7
- package/src/manifest/contracts/v2.ts +32 -0
- package/src/manifest/icon-schema.test.ts +1 -1
- package/src/manifest/schema.ts +13 -2
- package/src/manifest/template-validator.test.ts +1 -1
- package/src/manifest/validate-privileged.test.ts +1 -1
- package/src/manifest/validate.test.ts +68 -29
- package/src/manifest/validate.ts +14 -1
- package/src/module/import.test.ts +7 -7
- package/src/module/packaging/build.test.ts +1 -1
- package/src/packaging/nfpm-depends.test.ts +42 -0
- package/src/policy/capability-shape-baseline.ts +7 -1
- package/src/policy/fixture-capability-coverage.test.ts +5 -5
- package/src/policy/module-business-baseline.ts +33 -4
- package/src/services/aspect-approvals.test.ts +2 -2
- package/src/services/aspect-reconcile.test.ts +2 -2
- package/src/services/aspect-runner.test.ts +4 -4
- package/src/services/audit/backups.test.ts +1 -1
- package/src/services/audit/capability-abi.test.ts +1 -1
- package/src/services/audit/module-configs.test.ts +1 -1
- package/src/services/build-bus/hook-dispatch-executor.test.ts +3 -3
- package/src/services/bus-interview-park.test.ts +1 -1
- package/src/services/bus-secret-flow.test.ts +1 -1
- package/src/services/capability-table-rows.test.ts +20 -2
- package/src/services/celilo-events.test.ts +80 -6
- package/src/services/celilo-events.ts +115 -12
- package/src/services/celilo-mgmt-hooks.test.ts +6 -3
- package/src/services/cross-module-read.test.ts +2 -2
- package/src/services/deploy-validation.test.ts +6 -6
- package/src/services/dns-provider-backfill.test.ts +2 -2
- package/src/services/dns-registrations.test.ts +1 -1
- package/src/services/fleet-checks.test.ts +2 -2
- package/src/services/health-runner.test.ts +1 -1
- package/src/services/infrastructure-variable-resolver.test.ts +11 -11
- package/src/services/instance-ops.test.ts +2 -2
- package/src/services/module-deploy.dns-repoint.test.ts +1 -1
- package/src/services/module-pause-quiescence.test.ts +1 -1
- package/src/services/module-pause.test.ts +1 -1
- package/src/services/module-subscriptions.test.ts +2 -2
- package/src/services/module-types-generator.test.ts +1 -1
- package/src/services/module-validator/contract-version.test.ts +3 -3
- package/src/services/network-ensure.test.ts +1 -1
- package/src/services/proxmox-reconcile.test.ts +2 -2
- package/src/services/remove-guard.test.ts +1 -1
- package/src/services/update/dep-graph.test.ts +1 -1
- package/src/services/update/orchestrator.test.ts +1 -1
- package/src/variables/capability-self-ref.test.ts +2 -2
- package/src/variables/computed/computed-integration.test.ts +1 -1
- package/src/variables/declarative-derivation.test.ts +19 -19
|
@@ -59,7 +59,7 @@ describe('resolveInfrastructureVariables - Machine Infrastructure', () => {
|
|
|
59
59
|
|
|
60
60
|
// Create manifest with infrastructure variables
|
|
61
61
|
const manifest: ModuleManifest = {
|
|
62
|
-
celilo_contract: '
|
|
62
|
+
celilo_contract: '2.0',
|
|
63
63
|
id: moduleId,
|
|
64
64
|
name: 'DNS External',
|
|
65
65
|
version: '1.0.0',
|
|
@@ -137,7 +137,7 @@ describe('resolveInfrastructureVariables - Machine Infrastructure', () => {
|
|
|
137
137
|
const moduleId = 'test-module';
|
|
138
138
|
|
|
139
139
|
const manifest: ModuleManifest = {
|
|
140
|
-
celilo_contract: '
|
|
140
|
+
celilo_contract: '2.0',
|
|
141
141
|
id: moduleId,
|
|
142
142
|
name: 'Test',
|
|
143
143
|
version: '1.0.0',
|
|
@@ -203,7 +203,7 @@ describe('resolveInfrastructureVariables - Proxmox Container Service', () => {
|
|
|
203
203
|
const moduleId = 'homebridge';
|
|
204
204
|
|
|
205
205
|
const manifest: ModuleManifest = {
|
|
206
|
-
celilo_contract: '
|
|
206
|
+
celilo_contract: '2.0',
|
|
207
207
|
id: moduleId,
|
|
208
208
|
name: 'Homebridge',
|
|
209
209
|
version: '1.0.0',
|
|
@@ -287,7 +287,7 @@ describe('resolveInfrastructureVariables - Proxmox Container Service', () => {
|
|
|
287
287
|
const moduleId = 'test-module';
|
|
288
288
|
|
|
289
289
|
const manifest: ModuleManifest = {
|
|
290
|
-
celilo_contract: '
|
|
290
|
+
celilo_contract: '2.0',
|
|
291
291
|
id: moduleId,
|
|
292
292
|
name: 'Test',
|
|
293
293
|
version: '1.0.0',
|
|
@@ -350,7 +350,7 @@ describe('resolveInfrastructureVariables - Digital Ocean Container Service', ()
|
|
|
350
350
|
const moduleId = 'dns-external';
|
|
351
351
|
|
|
352
352
|
const manifest: ModuleManifest = {
|
|
353
|
-
celilo_contract: '
|
|
353
|
+
celilo_contract: '2.0',
|
|
354
354
|
id: moduleId,
|
|
355
355
|
name: 'DNS External',
|
|
356
356
|
version: '1.0.0',
|
|
@@ -436,7 +436,7 @@ describe('resolveInfrastructureVariables - User Override', () => {
|
|
|
436
436
|
const moduleId = 'dns-external';
|
|
437
437
|
|
|
438
438
|
const manifest: ModuleManifest = {
|
|
439
|
-
celilo_contract: '
|
|
439
|
+
celilo_contract: '2.0',
|
|
440
440
|
id: moduleId,
|
|
441
441
|
name: 'DNS External',
|
|
442
442
|
version: '1.0.0',
|
|
@@ -494,7 +494,7 @@ describe('resolveInfrastructureVariables - Required vs Optional', () => {
|
|
|
494
494
|
const moduleId = 'test-module';
|
|
495
495
|
|
|
496
496
|
const manifest: ModuleManifest = {
|
|
497
|
-
celilo_contract: '
|
|
497
|
+
celilo_contract: '2.0',
|
|
498
498
|
id: moduleId,
|
|
499
499
|
name: 'Test',
|
|
500
500
|
version: '1.0.0',
|
|
@@ -544,7 +544,7 @@ describe('resolveInfrastructureVariables - Required vs Optional', () => {
|
|
|
544
544
|
const moduleId = 'test-module';
|
|
545
545
|
|
|
546
546
|
const manifest: ModuleManifest = {
|
|
547
|
-
celilo_contract: '
|
|
547
|
+
celilo_contract: '2.0',
|
|
548
548
|
id: moduleId,
|
|
549
549
|
name: 'Test',
|
|
550
550
|
version: '1.0.0',
|
|
@@ -605,7 +605,7 @@ describe('resolveInfrastructureVariables - Required vs Optional', () => {
|
|
|
605
605
|
describe('resolveInfrastructureVariables - Edge Cases', () => {
|
|
606
606
|
test('returns empty when no infrastructure variables declared', async () => {
|
|
607
607
|
const manifest: ModuleManifest = {
|
|
608
|
-
celilo_contract: '
|
|
608
|
+
celilo_contract: '2.0',
|
|
609
609
|
id: 'test-module',
|
|
610
610
|
name: 'Test',
|
|
611
611
|
version: '1.0.0',
|
|
@@ -632,7 +632,7 @@ describe('resolveInfrastructureVariables - Edge Cases', () => {
|
|
|
632
632
|
|
|
633
633
|
test('throws when no infrastructure selected', async () => {
|
|
634
634
|
const manifest: ModuleManifest = {
|
|
635
|
-
celilo_contract: '
|
|
635
|
+
celilo_contract: '2.0',
|
|
636
636
|
id: 'test-module',
|
|
637
637
|
name: 'Test',
|
|
638
638
|
version: '1.0.0',
|
|
@@ -660,7 +660,7 @@ describe('resolveInfrastructureVariables - Edge Cases', () => {
|
|
|
660
660
|
const moduleId = 'test-module';
|
|
661
661
|
|
|
662
662
|
const manifest: ModuleManifest = {
|
|
663
|
-
celilo_contract: '
|
|
663
|
+
celilo_contract: '2.0',
|
|
664
664
|
id: moduleId,
|
|
665
665
|
name: 'Test',
|
|
666
666
|
version: '1.0.0',
|
|
@@ -15,7 +15,7 @@ import { deriveInstanceModuleId } from './module-instances';
|
|
|
15
15
|
|
|
16
16
|
const manifest = (over: Record<string, unknown> = {}): ModuleManifest =>
|
|
17
17
|
({
|
|
18
|
-
celilo_contract: '
|
|
18
|
+
celilo_contract: '2.0',
|
|
19
19
|
id: 'lab',
|
|
20
20
|
name: 'BYOI Lab',
|
|
21
21
|
version: '1.0.0',
|
|
@@ -110,7 +110,7 @@ describe('createInstanceOps against a real database', () => {
|
|
|
110
110
|
let parentPath: string;
|
|
111
111
|
|
|
112
112
|
const SUBMODULE_YAML = `
|
|
113
|
-
celilo_contract: "
|
|
113
|
+
celilo_contract: "2.0"
|
|
114
114
|
id: lab
|
|
115
115
|
name: BYOI Lab
|
|
116
116
|
version: 1.0.0
|
|
@@ -64,7 +64,7 @@ describe('repointDnsPrimaryForProvider (module-orchestrator-primitives slice 3)'
|
|
|
64
64
|
id: MODULE_ID,
|
|
65
65
|
name: MODULE_ID,
|
|
66
66
|
version: '1.3.4',
|
|
67
|
-
manifestData: { id: MODULE_ID, name: MODULE_ID, version: '1.3.4', celilo_contract: '
|
|
67
|
+
manifestData: { id: MODULE_ID, name: MODULE_ID, version: '1.3.4', celilo_contract: '2.0' },
|
|
68
68
|
sourcePath: `/tmp/${MODULE_ID}`,
|
|
69
69
|
})
|
|
70
70
|
.run();
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
} from './module-subscriptions';
|
|
20
20
|
|
|
21
21
|
const baseManifest = (overrides: Partial<ModuleManifest> = {}): ModuleManifest => ({
|
|
22
|
-
celilo_contract: '
|
|
22
|
+
celilo_contract: '2.0',
|
|
23
23
|
id: 'lunacycle',
|
|
24
24
|
name: 'Lunacycle',
|
|
25
25
|
version: '1.0.0',
|
|
@@ -357,7 +357,7 @@ describe('resyncAllSubscriptions (ISS-0088)', () => {
|
|
|
357
357
|
subs: Array<{ name: string; pattern: string; handler: string }>,
|
|
358
358
|
): void {
|
|
359
359
|
const manifest = JSON.stringify({
|
|
360
|
-
celilo_contract: '
|
|
360
|
+
celilo_contract: '2.0',
|
|
361
361
|
id,
|
|
362
362
|
name: id,
|
|
363
363
|
version: '1.0.0',
|
|
@@ -3,7 +3,7 @@ import { checkContractVersion } from './contract-version';
|
|
|
3
3
|
|
|
4
4
|
describe('checkContractVersion', () => {
|
|
5
5
|
test('ok when manifest declares the latest supported contract', () => {
|
|
6
|
-
const r = checkContractVersion({ celilo_contract: '
|
|
6
|
+
const r = checkContractVersion({ celilo_contract: '2.0' });
|
|
7
7
|
expect(r.status).toBe('ok');
|
|
8
8
|
expect(r.message).toContain('latest');
|
|
9
9
|
});
|
|
@@ -12,13 +12,13 @@ describe('checkContractVersion', () => {
|
|
|
12
12
|
const r = checkContractVersion({});
|
|
13
13
|
expect(r.status).toBe('fail');
|
|
14
14
|
expect(r.message).toContain('missing');
|
|
15
|
-
expect(r.suggestedValue).toBe('
|
|
15
|
+
expect(r.suggestedValue).toBe('2.0');
|
|
16
16
|
});
|
|
17
17
|
|
|
18
18
|
test('fail when celilo_contract claims an unknown version', () => {
|
|
19
19
|
const r = checkContractVersion({ celilo_contract: '99.0' });
|
|
20
20
|
expect(r.status).toBe('fail');
|
|
21
21
|
expect(r.message).toContain('unknown');
|
|
22
|
-
expect(r.suggestedValue).toBe('
|
|
22
|
+
expect(r.suggestedValue).toBe('2.0');
|
|
23
23
|
});
|
|
24
24
|
});
|
|
@@ -16,7 +16,7 @@ import { type NetworkAsker, ensureRequiredNetworks } from './network-ensure';
|
|
|
16
16
|
|
|
17
17
|
function manifestRequiring(...networks: string[]): ModuleManifest {
|
|
18
18
|
return {
|
|
19
|
-
celilo_contract: '
|
|
19
|
+
celilo_contract: '2.0',
|
|
20
20
|
id: 'test-module',
|
|
21
21
|
name: 'Test Module',
|
|
22
22
|
version: '0.1.0',
|
|
@@ -44,7 +44,7 @@ function seedProviderModule(opts: { configs?: Record<string, string> } = {}) {
|
|
|
44
44
|
id: PROVIDER_MODULE_ID,
|
|
45
45
|
name: PROVIDER_MODULE_ID,
|
|
46
46
|
version: '1.0.0',
|
|
47
|
-
celilo_contract: '
|
|
47
|
+
celilo_contract: '2.0',
|
|
48
48
|
},
|
|
49
49
|
sourcePath: `/tmp/${PROVIDER_MODULE_ID}`,
|
|
50
50
|
})
|
|
@@ -107,7 +107,7 @@ function seedContainerLxc(opts: {
|
|
|
107
107
|
id: opts.moduleId,
|
|
108
108
|
name: opts.moduleId,
|
|
109
109
|
version: '1.0.0',
|
|
110
|
-
celilo_contract: '
|
|
110
|
+
celilo_contract: '2.0',
|
|
111
111
|
},
|
|
112
112
|
sourcePath: `/tmp/${opts.moduleId}`,
|
|
113
113
|
})
|
|
@@ -14,7 +14,7 @@ function manifest(
|
|
|
14
14
|
id,
|
|
15
15
|
name: id,
|
|
16
16
|
version: '1.0.0',
|
|
17
|
-
celilo_contract: '
|
|
17
|
+
celilo_contract: '2.0',
|
|
18
18
|
provides: { capabilities: [] },
|
|
19
19
|
requires: { capabilities: (opts.requires ?? []).map((name) => ({ name, version: '1.0.0' })) },
|
|
20
20
|
optional: opts.optional
|
|
@@ -261,7 +261,7 @@ describe('Capability data $self: variable resolution', () => {
|
|
|
261
261
|
id: 'lunacycle',
|
|
262
262
|
name: 'LunaCycle',
|
|
263
263
|
version: '1.0.0',
|
|
264
|
-
celilo_contract: '
|
|
264
|
+
celilo_contract: '2.0',
|
|
265
265
|
variables: {
|
|
266
266
|
owns: [
|
|
267
267
|
{
|
|
@@ -388,7 +388,7 @@ describe('Capability data $self: variable resolution', () => {
|
|
|
388
388
|
id: 'lunacycle',
|
|
389
389
|
name: 'LunaCycle',
|
|
390
390
|
version: '1.0.0',
|
|
391
|
-
celilo_contract: '
|
|
391
|
+
celilo_contract: '2.0',
|
|
392
392
|
variables: {
|
|
393
393
|
owns: [
|
|
394
394
|
{
|
|
@@ -29,7 +29,7 @@ let db: DbClient;
|
|
|
29
29
|
/** Fresh manifest per call — never share a mutable manifest across tests. */
|
|
30
30
|
function namecheapManifest(computedValue = 'keys(secret.ddns_passwords)'): ModuleManifest {
|
|
31
31
|
return {
|
|
32
|
-
celilo_contract: '
|
|
32
|
+
celilo_contract: '2.0',
|
|
33
33
|
id: 'namecheap',
|
|
34
34
|
name: 'Namecheap',
|
|
35
35
|
version: '4.1.0',
|
|
@@ -441,7 +441,7 @@ describe('applyDeclarativeDerivations', () => {
|
|
|
441
441
|
describe('basic derivations', () => {
|
|
442
442
|
test('applies single derivation', () => {
|
|
443
443
|
const manifest: ModuleManifest = {
|
|
444
|
-
celilo_contract: '
|
|
444
|
+
celilo_contract: '2.0',
|
|
445
445
|
id: 'test-module',
|
|
446
446
|
name: 'Test Module',
|
|
447
447
|
version: '1.0.0',
|
|
@@ -477,7 +477,7 @@ describe('applyDeclarativeDerivations', () => {
|
|
|
477
477
|
|
|
478
478
|
test('applies multiple derivations in order', () => {
|
|
479
479
|
const manifest: ModuleManifest = {
|
|
480
|
-
celilo_contract: '
|
|
480
|
+
celilo_contract: '2.0',
|
|
481
481
|
id: 'test-module',
|
|
482
482
|
name: 'Test Module',
|
|
483
483
|
version: '1.0.0',
|
|
@@ -523,7 +523,7 @@ describe('applyDeclarativeDerivations', () => {
|
|
|
523
523
|
describe('user config precedence', () => {
|
|
524
524
|
test('does not overwrite user-provided values', () => {
|
|
525
525
|
const manifest: ModuleManifest = {
|
|
526
|
-
celilo_contract: '
|
|
526
|
+
celilo_contract: '2.0',
|
|
527
527
|
id: 'test-module',
|
|
528
528
|
name: 'Test Module',
|
|
529
529
|
version: '1.0.0',
|
|
@@ -562,7 +562,7 @@ describe('applyDeclarativeDerivations', () => {
|
|
|
562
562
|
describe('dependency resolution', () => {
|
|
563
563
|
test('resolves dependencies in declaration order', () => {
|
|
564
564
|
const manifest: ModuleManifest = {
|
|
565
|
-
celilo_contract: '
|
|
565
|
+
celilo_contract: '2.0',
|
|
566
566
|
id: 'test-module',
|
|
567
567
|
name: 'Test Module',
|
|
568
568
|
version: '1.0.0',
|
|
@@ -619,7 +619,7 @@ describe('applyDeclarativeDerivations', () => {
|
|
|
619
619
|
describe('error handling', () => {
|
|
620
620
|
test('throws error for required variable with missing dependency', () => {
|
|
621
621
|
const manifest: ModuleManifest = {
|
|
622
|
-
celilo_contract: '
|
|
622
|
+
celilo_contract: '2.0',
|
|
623
623
|
id: 'test-module',
|
|
624
624
|
name: 'Test Module',
|
|
625
625
|
version: '1.0.0',
|
|
@@ -655,7 +655,7 @@ describe('applyDeclarativeDerivations', () => {
|
|
|
655
655
|
|
|
656
656
|
test('silently skips optional variable with missing dependency', () => {
|
|
657
657
|
const manifest: ModuleManifest = {
|
|
658
|
-
celilo_contract: '
|
|
658
|
+
celilo_contract: '2.0',
|
|
659
659
|
id: 'test-module',
|
|
660
660
|
name: 'Test Module',
|
|
661
661
|
version: '1.0.0',
|
|
@@ -693,7 +693,7 @@ describe('applyDeclarativeDerivations', () => {
|
|
|
693
693
|
|
|
694
694
|
test('derives scalar numeric values from capability data', () => {
|
|
695
695
|
const manifest: ModuleManifest = {
|
|
696
|
-
celilo_contract: '
|
|
696
|
+
celilo_contract: '2.0',
|
|
697
697
|
id: 'test-module',
|
|
698
698
|
name: 'Test Module',
|
|
699
699
|
version: '1.0.0',
|
|
@@ -731,7 +731,7 @@ describe('applyDeclarativeDerivations', () => {
|
|
|
731
731
|
|
|
732
732
|
test('continues to skip structured derivations', () => {
|
|
733
733
|
const manifest: ModuleManifest = {
|
|
734
|
-
celilo_contract: '
|
|
734
|
+
celilo_contract: '2.0',
|
|
735
735
|
id: 'test-module',
|
|
736
736
|
name: 'Test Module',
|
|
737
737
|
version: '1.0.0',
|
|
@@ -776,7 +776,7 @@ describe('applyDeclarativeDerivations', () => {
|
|
|
776
776
|
// context. The key must remain unset rather than being poisoned with the raw template.
|
|
777
777
|
test('does not set selfConfig when capability value still contains $self: ref', () => {
|
|
778
778
|
const manifest: ModuleManifest = {
|
|
779
|
-
celilo_contract: '
|
|
779
|
+
celilo_contract: '2.0',
|
|
780
780
|
id: 'lunacycle',
|
|
781
781
|
name: 'Lunacycle',
|
|
782
782
|
version: '1.0.0',
|
|
@@ -816,7 +816,7 @@ describe('applyDeclarativeDerivations', () => {
|
|
|
816
816
|
|
|
817
817
|
test('uses existing selfConfig value when capability returns unresolved $self: ref', () => {
|
|
818
818
|
const manifest: ModuleManifest = {
|
|
819
|
-
celilo_contract: '
|
|
819
|
+
celilo_contract: '2.0',
|
|
820
820
|
id: 'lunacycle',
|
|
821
821
|
name: 'Lunacycle',
|
|
822
822
|
version: '1.0.0',
|
|
@@ -860,7 +860,7 @@ describe('applyDeclarativeDerivations', () => {
|
|
|
860
860
|
// all 5 resolution passes unchanged and must be skipped.
|
|
861
861
|
test('does not set selfConfig when capability value contains $secret: ref', () => {
|
|
862
862
|
const manifest: ModuleManifest = {
|
|
863
|
-
celilo_contract: '
|
|
863
|
+
celilo_contract: '2.0',
|
|
864
864
|
id: 'consumer',
|
|
865
865
|
name: 'Consumer',
|
|
866
866
|
version: '1.0.0',
|
|
@@ -903,7 +903,7 @@ describe('applyDeclarativeDerivations', () => {
|
|
|
903
903
|
// end-to-end, not just resolveDeclarativeDerivation in isolation.
|
|
904
904
|
test('resolves $system: ref inside capability value', () => {
|
|
905
905
|
const manifest: ModuleManifest = {
|
|
906
|
-
celilo_contract: '
|
|
906
|
+
celilo_contract: '2.0',
|
|
907
907
|
id: 'caddy',
|
|
908
908
|
name: 'Caddy',
|
|
909
909
|
version: '1.0.0',
|
|
@@ -946,7 +946,7 @@ describe('applyDeclarativeDerivations', () => {
|
|
|
946
946
|
// on first pass (the other isn't set yet). Both should remain unset.
|
|
947
947
|
test('silently skips both optional variables in a circular reference', () => {
|
|
948
948
|
const manifest: ModuleManifest = {
|
|
949
|
-
celilo_contract: '
|
|
949
|
+
celilo_contract: '2.0',
|
|
950
950
|
id: 'test-module',
|
|
951
951
|
name: 'Test Module',
|
|
952
952
|
version: '1.0.0',
|
|
@@ -990,7 +990,7 @@ describe('applyDeclarativeDerivations', () => {
|
|
|
990
990
|
|
|
991
991
|
test('throws when either circular variable is required', () => {
|
|
992
992
|
const manifest: ModuleManifest = {
|
|
993
|
-
celilo_contract: '
|
|
993
|
+
celilo_contract: '2.0',
|
|
994
994
|
id: 'test-module',
|
|
995
995
|
name: 'Test Module',
|
|
996
996
|
version: '1.0.0',
|
|
@@ -1040,7 +1040,7 @@ describe('applyDeclarativeDerivations', () => {
|
|
|
1040
1040
|
// Equivalent to the {var} syntax; reads from selfConfig.
|
|
1041
1041
|
test('resolves $self: against selfConfig like {var}', () => {
|
|
1042
1042
|
const manifest: ModuleManifest = {
|
|
1043
|
-
celilo_contract: '
|
|
1043
|
+
celilo_contract: '2.0',
|
|
1044
1044
|
id: 'test-module',
|
|
1045
1045
|
name: 'Test Module',
|
|
1046
1046
|
version: '1.0.0',
|
|
@@ -1079,7 +1079,7 @@ describe('applyDeclarativeDerivations', () => {
|
|
|
1079
1079
|
// auth_url derives from "https://auth.$self:domain" where domain
|
|
1080
1080
|
// is another self-owned variable set by the user.
|
|
1081
1081
|
const manifest: ModuleManifest = {
|
|
1082
|
-
celilo_contract: '
|
|
1082
|
+
celilo_contract: '2.0',
|
|
1083
1083
|
id: 'authentik',
|
|
1084
1084
|
name: 'Authentik',
|
|
1085
1085
|
version: '1.0.0',
|
|
@@ -1121,7 +1121,7 @@ describe('applyDeclarativeDerivations', () => {
|
|
|
1121
1121
|
|
|
1122
1122
|
test('throws when $self: references an undeclared variable', () => {
|
|
1123
1123
|
const manifest: ModuleManifest = {
|
|
1124
|
-
celilo_contract: '
|
|
1124
|
+
celilo_contract: '2.0',
|
|
1125
1125
|
id: 'test',
|
|
1126
1126
|
name: 'Test',
|
|
1127
1127
|
version: '1.0.0',
|
|
@@ -1162,7 +1162,7 @@ describe('applyDeclarativeDerivations', () => {
|
|
|
1162
1162
|
describe('skips', () => {
|
|
1163
1163
|
test('skips variables without derive_from', () => {
|
|
1164
1164
|
const manifest: ModuleManifest = {
|
|
1165
|
-
celilo_contract: '
|
|
1165
|
+
celilo_contract: '2.0',
|
|
1166
1166
|
id: 'test-module',
|
|
1167
1167
|
name: 'Test Module',
|
|
1168
1168
|
version: '1.0.0',
|
|
@@ -1199,7 +1199,7 @@ describe('applyDeclarativeDerivations', () => {
|
|
|
1199
1199
|
|
|
1200
1200
|
test('handles manifest with no variables', () => {
|
|
1201
1201
|
const manifest: ModuleManifest = {
|
|
1202
|
-
celilo_contract: '
|
|
1202
|
+
celilo_contract: '2.0',
|
|
1203
1203
|
id: 'test-module',
|
|
1204
1204
|
name: 'Test Module',
|
|
1205
1205
|
version: '1.0.0',
|