borgmcp-shared 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/README.md +46 -26
- package/SECURITY.md +6 -5
- package/dist/conformance/adapter.d.ts +62 -11
- package/dist/conformance/adapter.d.ts.map +1 -1
- package/dist/conformance/adapter.js +273 -55
- package/dist/conformance/adapter.js.map +1 -1
- package/dist/protocol/contract.d.ts +56 -25
- package/dist/protocol/contract.d.ts.map +1 -1
- package/dist/protocol/contract.js +147 -116
- package/dist/protocol/contract.js.map +1 -1
- package/dist/protocol/coordination.d.ts +25 -0
- package/dist/protocol/coordination.d.ts.map +1 -1
- package/dist/protocol/coordination.js +44 -0
- package/dist/protocol/coordination.js.map +1 -1
- package/dist/protocol/errors.d.ts +2 -4
- package/dist/protocol/errors.d.ts.map +1 -1
- package/dist/protocol/errors.js +1 -1
- package/dist/protocol/errors.js.map +1 -1
- package/dist/protocol/version.d.ts +2 -10
- package/dist/protocol/version.d.ts.map +1 -1
- package/dist/protocol/version.js +1 -18
- package/dist/protocol/version.js.map +1 -1
- package/dist/templates.d.ts +1 -1
- package/dist/templates.d.ts.map +1 -1
- package/dist/templates.js +9 -11
- package/dist/templates.js.map +1 -1
- package/docs/compatibility.md +38 -50
- package/docs/enrollment.md +27 -17
- package/docs/releasing.md +61 -33
- package/package.json +2 -2
- package/src/conformance/adapter.ts +618 -82
- package/src/protocol/contract.ts +250 -160
- package/src/protocol/coordination.ts +82 -0
- package/src/protocol/errors.ts +7 -3
- package/src/protocol/version.ts +3 -35
- package/src/templates.ts +9 -11
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { ErrorCode,
|
|
1
|
+
import { ErrorCode, compareLogCursor, createProtocolEnvelope, decodeCreateCubeResponseEnvelope, decodeAppendLogResultEnvelope, decodeDecisionResultEnvelope, decodeDecisionsResultEnvelope, decodeEnrollmentExchangeResponseEnvelope, decodeEvictDroneResultEnvelope, decodeProtocolEnvelope, decodeProtocolErrorEnvelope, decodeProtocolTagPreflight, decodeReadLogResultEnvelope, decodeReassignDroneResultEnvelope, decodeSseFrames, PROTOCOL_LIMIT_CEILINGS, PROTOCOL_HTTP_CONTRACT, PROTOCOL_VERSION, utf8ByteLength, } from '../protocol/index.js';
|
|
2
2
|
import { ENROLLMENT_RETRY_CONFORMANCE } from './index.js';
|
|
3
3
|
export const ADAPTER_CONFORMANCE_FIXTURES = [
|
|
4
4
|
{ id: 'http.unauthenticated-liveness', area: 'http' },
|
|
5
|
-
{ id: 'protocol.
|
|
5
|
+
{ id: 'protocol.credential-free-preflight', area: 'protocol' },
|
|
6
|
+
{ id: 'enrollment.retry-authority', area: 'enrollment' },
|
|
6
7
|
{ id: 'security.adapter-boundary-injection', area: 'security' },
|
|
7
8
|
{ id: 'security.oversize-request', area: 'security' },
|
|
8
9
|
{ id: 'security.cross-cube-isolation', area: 'security' },
|
|
@@ -12,7 +13,12 @@ export const ADAPTER_CONFORMANCE_FIXTURES = [
|
|
|
12
13
|
{ id: 'acks.idempotent', area: 'acks' },
|
|
13
14
|
{ id: 'claims.durable-noncursor', area: 'claims' },
|
|
14
15
|
{ id: 'decisions.topic-supersession', area: 'decisions' },
|
|
15
|
-
{ id: '
|
|
16
|
+
{ id: 'security.drone-management-authorization', area: 'security' },
|
|
17
|
+
{ id: 'security.manage-access-matrix', area: 'security' },
|
|
18
|
+
{ id: 'drones.reassign-invariants', area: 'drones' },
|
|
19
|
+
{ id: 'security.cross-cube-drone-management', area: 'security' },
|
|
20
|
+
{ id: 'drones.evict-terminal-signal', area: 'drones' },
|
|
21
|
+
{ id: 'security.drone-session-rejection-causes', area: 'security' },
|
|
16
22
|
{ id: 'security.active-stream-revocation', area: 'security' },
|
|
17
23
|
];
|
|
18
24
|
const DEFAULT_STREAM_DEADLINE_MS = 5_000;
|
|
@@ -117,6 +123,19 @@ function logEvent(event, description) {
|
|
|
117
123
|
function same(left, right) {
|
|
118
124
|
return JSON.stringify(left) === JSON.stringify(right);
|
|
119
125
|
}
|
|
126
|
+
function listedDroneIds(response) {
|
|
127
|
+
return decodeProtocolEnvelope(response.body, (payload) => {
|
|
128
|
+
invariant(typeof payload === 'object' && payload !== null, 'Roster payload is not an object.');
|
|
129
|
+
const drones = payload.drones;
|
|
130
|
+
invariant(Array.isArray(drones), 'Roster payload omitted drones.');
|
|
131
|
+
return drones.map((drone) => {
|
|
132
|
+
invariant(typeof drone === 'object' && drone !== null, 'Roster contains an invalid drone.');
|
|
133
|
+
const id = drone.id;
|
|
134
|
+
invariant(typeof id === 'string', 'Roster drone omitted its id.');
|
|
135
|
+
return id;
|
|
136
|
+
});
|
|
137
|
+
}).payload;
|
|
138
|
+
}
|
|
120
139
|
function assertStateDelta(before, after, expected, description) {
|
|
121
140
|
for (const key of Object.keys(before)) {
|
|
122
141
|
invariant(after[key] - before[key] === (expected[key] ?? 0), `${description} changed ${key} by ${after[key] - before[key]}; expected ${expected[key] ?? 0}.`);
|
|
@@ -166,16 +185,22 @@ export async function runAdapterConformance(environment, options = {}) {
|
|
|
166
185
|
let cubeB;
|
|
167
186
|
let credentialA = '';
|
|
168
187
|
let credentialB = '';
|
|
169
|
-
let protocolBody;
|
|
170
|
-
let protocolInfo = null;
|
|
171
188
|
await record('http.unauthenticated-liveness', async () => {
|
|
172
189
|
const response = await environment.operations.health();
|
|
173
190
|
expectStatus(response, 204, 'Unauthenticated liveness');
|
|
174
191
|
invariant(response.body === '' || response.body === undefined, 'Unauthenticated liveness exposed a response body.');
|
|
175
192
|
return { status: 204, bodyless: true };
|
|
176
193
|
});
|
|
177
|
-
await record('protocol.
|
|
178
|
-
|
|
194
|
+
await record('protocol.credential-free-preflight', async () => {
|
|
195
|
+
const before = await environment.admin.observeAuthorityState();
|
|
196
|
+
const response = await environment.operations.protocol(null);
|
|
197
|
+
expectStatus(response, 200, 'Credential-free protocol-tag preflight');
|
|
198
|
+
const preflight = decodeProtocolTagPreflight(response.body);
|
|
199
|
+
invariant(Object.keys(preflight).length === 1 && preflight.protocol_version === PROTOCOL_VERSION, 'Protocol-tag preflight exposed more than the exact tag.');
|
|
200
|
+
assertStateDelta(before, await environment.admin.observeAuthorityState(), {}, 'Protocol-tag preflight');
|
|
201
|
+
return { authenticated: false, mutation_free: true, protocol_version: preflight.protocol_version };
|
|
202
|
+
});
|
|
203
|
+
await record('enrollment.retry-authority', async () => {
|
|
179
204
|
const retryVectorErrors = [];
|
|
180
205
|
for (const [index, vector] of ENROLLMENT_RETRY_CONFORMANCE.entries()) {
|
|
181
206
|
for (const purpose of ['client', 'owner']) {
|
|
@@ -212,13 +237,10 @@ export async function runAdapterConformance(environment, options = {}) {
|
|
|
212
237
|
assertEnrollmentErrorIsSecretFree(retryResponse, [initialPayload, retryPayload], `${purpose} ${vector.name}`);
|
|
213
238
|
}
|
|
214
239
|
assertStateDelta(beforeRetry, await environment.admin.observeAuthorityState(), {}, `${purpose} ${vector.name} retry`);
|
|
215
|
-
expectStatus(await environment.operations.protocol(vector.initial.client_credential), 200, `${purpose} ${vector.name} original credential continuity`);
|
|
216
|
-
if (vector.retry.client_credential !== vector.initial.client_credential) {
|
|
217
|
-
expectError(await environment.operations.protocol(vector.retry.client_credential), 401, ErrorCode.AUTH_INVALID, `${purpose} ${vector.name} mismatched credential rejection`);
|
|
218
|
-
}
|
|
219
240
|
invariant(same(await environment.admin.inspectEnrollmentPrincipal(principal, initial.client_id), {
|
|
220
241
|
response_client_matches: true,
|
|
221
242
|
active_credential_bindings: 1,
|
|
243
|
+
bound_credential_matches_enrollment: true,
|
|
222
244
|
}), `${purpose} ${vector.name} changed enrollment binding ownership.`);
|
|
223
245
|
}
|
|
224
246
|
catch (error) {
|
|
@@ -358,32 +380,18 @@ export async function runAdapterConformance(environment, options = {}) {
|
|
|
358
380
|
...enrollmentARequest.payload,
|
|
359
381
|
retry_key: '00000000-0000-4000-8000-000000000203',
|
|
360
382
|
})), 401, ErrorCode.AUTH_INVALID, 'Enrollment retry mismatch');
|
|
361
|
-
const protocolResponse = await environment.operations.protocol(credentialA);
|
|
362
|
-
expectStatus(protocolResponse, 200, 'Authenticated protocol request');
|
|
363
|
-
protocolBody = protocolResponse.body;
|
|
364
|
-
protocolInfo = negotiateProtocol(decodeProtocolInfoEnvelope(protocolBody).payload, [
|
|
365
|
-
'log.cursor',
|
|
366
|
-
'stream.sse',
|
|
367
|
-
'stream.replay',
|
|
368
|
-
'acks',
|
|
369
|
-
'claims',
|
|
370
|
-
'decisions',
|
|
371
|
-
]);
|
|
372
383
|
return {
|
|
373
|
-
unauthenticated: ErrorCode.AUTH_MISSING,
|
|
374
384
|
enrollment_status: 201,
|
|
375
385
|
exact_retry_status: 201,
|
|
376
386
|
mismatched_retry: ErrorCode.AUTH_INVALID,
|
|
377
387
|
response_secret_free: true,
|
|
378
|
-
protocol_version: protocolInfo.protocol_version,
|
|
379
388
|
};
|
|
380
389
|
});
|
|
381
390
|
await record('security.adapter-boundary-injection', async () => {
|
|
382
|
-
invariant(protocolInfo, 'Protocol fixture did not produce request limits.');
|
|
383
391
|
const injectedMessage = "'); DROP TABLE log_entries; --\r\ndata: forged-sse-frame";
|
|
384
392
|
const injectedBody = JSON.stringify(createProtocolEnvelope('inject-b1', { message: injectedMessage }));
|
|
385
|
-
invariant(utf8ByteLength(injectedBody) <=
|
|
386
|
-
utf8ByteLength(injectedMessage) <=
|
|
393
|
+
invariant(utf8ByteLength(injectedBody) <= PROTOCOL_LIMIT_CEILINGS.max_request_bytes &&
|
|
394
|
+
utf8ByteLength(injectedMessage) <= PROTOCOL_LIMIT_CEILINGS.max_log_message_bytes, 'Injection fixture exceeded the shared request-limit ceiling.');
|
|
387
395
|
const injected = await environment.operations.appendRaw(credentialB, cubeB, injectedBody);
|
|
388
396
|
expectStatus(injected, 201, 'Adapter-boundary injection append');
|
|
389
397
|
const injectedEntry = decodeAppendLogResultEnvelope(injected.body).payload.entry;
|
|
@@ -417,10 +425,9 @@ export async function runAdapterConformance(environment, options = {}) {
|
|
|
417
425
|
};
|
|
418
426
|
});
|
|
419
427
|
await record('security.oversize-request', async () => {
|
|
420
|
-
invariant(protocolInfo, 'Protocol fixture did not produce request limits.');
|
|
421
428
|
const baseBody = JSON.stringify(createProtocolEnvelope('oversize-a1', { message: 'must-not-persist' }));
|
|
422
|
-
const oversizedBody = baseBody + ' '.repeat(Math.max(0,
|
|
423
|
-
invariant(utf8ByteLength(oversizedBody) >
|
|
429
|
+
const oversizedBody = baseBody + ' '.repeat(Math.max(0, PROTOCOL_LIMIT_CEILINGS.max_request_bytes - utf8ByteLength(baseBody) + 1));
|
|
430
|
+
invariant(utf8ByteLength(oversizedBody) > PROTOCOL_LIMIT_CEILINGS.max_request_bytes, 'Oversize fixture did not exceed max_request_bytes.');
|
|
424
431
|
const response = await environment.operations.appendRaw(credentialA, cubeA, oversizedBody);
|
|
425
432
|
expectError(response, 413, ErrorCode.CONTENT_TOO_LARGE, 'Oversized append request');
|
|
426
433
|
const read = await environment.operations.read(credentialA, cubeA, createProtocolEnvelope('oversize-read', { cursor: null, limit: 10 }));
|
|
@@ -541,20 +548,244 @@ export async function runAdapterConformance(environment, options = {}) {
|
|
|
541
548
|
invariant(second.supersedes === first.id, 'Superseding decision did not reference its predecessor.');
|
|
542
549
|
return { active_count: 1, active_decision: 'second', supersedes_first: true };
|
|
543
550
|
});
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
551
|
+
let workerRoleA;
|
|
552
|
+
let workerRoleB;
|
|
553
|
+
let managedWorker;
|
|
554
|
+
let readCredential = '';
|
|
555
|
+
let writeCredential = '';
|
|
556
|
+
let workerSession = '';
|
|
557
|
+
await record('security.drone-management-authorization', async () => {
|
|
558
|
+
workerRoleA = await environment.admin.createRole(cubeA, {
|
|
559
|
+
roleClass: 'worker', isHumanSeat: false,
|
|
560
|
+
});
|
|
561
|
+
managedWorker = await environment.admin.createDrone(principalA, cubeA, workerRoleA);
|
|
562
|
+
const deniedCredentials = [];
|
|
563
|
+
for (const [index, access] of ['read', 'write'].entries()) {
|
|
564
|
+
const principalName = access === 'read' ? 'Coordinator' : 'write-principal';
|
|
565
|
+
const principal = await environment.admin.createPrincipal(principalName);
|
|
566
|
+
await environment.admin.grantCube(principal, cubeA, access);
|
|
567
|
+
const invitation = await environment.admin.issueSingleUseInvitation(principal, 'client');
|
|
568
|
+
const credential = `${(access === 'read' ? 'R' : 'W').repeat(42)}Q`;
|
|
569
|
+
if (access === 'read')
|
|
570
|
+
readCredential = credential;
|
|
553
571
|
else
|
|
554
|
-
|
|
572
|
+
writeCredential = credential;
|
|
573
|
+
const enrollment = await environment.operations.enroll(createProtocolEnvelope(`${access}-principal-enroll`, {
|
|
574
|
+
invitation,
|
|
575
|
+
retry_key: `00000000-0000-4000-8000-${String(301 + index).padStart(12, '0')}`,
|
|
576
|
+
client_credential: credential,
|
|
577
|
+
client_name: principalName,
|
|
578
|
+
}));
|
|
579
|
+
expectStatus(enrollment, 201, `${access} principal enrollment`);
|
|
580
|
+
deniedCredentials.push({ access: access, credential });
|
|
581
|
+
}
|
|
582
|
+
for (const { access, credential } of deniedCredentials) {
|
|
583
|
+
expectError(await environment.operations.reassignDrone(credential, cubeA, managedWorker, createProtocolEnvelope(`${access}-reassign-denied`, { role_id: workerRoleA.id })), 403, ErrorCode.ACCESS_DENIED, `${access} principal reassignment`);
|
|
584
|
+
expectError(await environment.operations.evictDrone(credential, cubeA, managedWorker, createProtocolEnvelope(`${access}-evict-denied`, {})), 403, ErrorCode.ACCESS_DENIED, `${access} principal eviction`);
|
|
585
|
+
}
|
|
586
|
+
return { read_status: 403, write_status: 403, manage_required: true };
|
|
587
|
+
});
|
|
588
|
+
await record('security.manage-access-matrix', async () => {
|
|
589
|
+
const noGrantPrincipal = await environment.admin.createPrincipal('Coordinator role without cube grant');
|
|
590
|
+
const noGrantInvitation = await environment.admin.issueSingleUseInvitation(noGrantPrincipal, 'client');
|
|
591
|
+
const noGrantCredential = `${'N'.repeat(42)}Q`;
|
|
592
|
+
expectStatus(await environment.operations.enroll(createProtocolEnvelope('no-grant-principal-enroll', {
|
|
593
|
+
invitation: noGrantInvitation,
|
|
594
|
+
retry_key: '00000000-0000-4000-8000-000000000303',
|
|
595
|
+
client_credential: noGrantCredential,
|
|
596
|
+
client_name: 'Coordinator',
|
|
597
|
+
})), 201, 'No-grant principal enrollment');
|
|
598
|
+
const droneCredential = await environment.admin.issueManagedDroneSession(managedWorker);
|
|
599
|
+
const matrixTargetRole = await environment.admin.createRole(cubeA, {
|
|
600
|
+
roleClass: 'worker', isHumanSeat: false,
|
|
601
|
+
});
|
|
602
|
+
const evictionTarget = await environment.admin.createDrone(principalA, cubeA, workerRoleA);
|
|
603
|
+
await environment.admin.issueManagedDroneSession(evictionTarget);
|
|
604
|
+
const unknownCube = { id: '00000000-0000-4000-8000-000000000399' };
|
|
605
|
+
const snapshot = async () => ({
|
|
606
|
+
cubeA: await environment.admin.inspectCubeManagementState(cubeA),
|
|
607
|
+
cubeB: await environment.admin.inspectCubeManagementState(cubeB),
|
|
608
|
+
});
|
|
609
|
+
const operations = [
|
|
610
|
+
{
|
|
611
|
+
name: 'cube-update',
|
|
612
|
+
successStatus: 200,
|
|
613
|
+
invoke: (credential, cube) => environment.operations.updateCube(credential, cube, createProtocolEnvelope('matrix-cube-update', { cube_directive: 'matrix-directive' })),
|
|
614
|
+
},
|
|
615
|
+
{
|
|
616
|
+
name: 'role-create',
|
|
617
|
+
successStatus: 201,
|
|
618
|
+
invoke: (credential, cube) => environment.operations.createRole(credential, cube, createProtocolEnvelope('matrix-role-create', { name: 'Matrix Role' })),
|
|
619
|
+
},
|
|
620
|
+
{
|
|
621
|
+
name: 'taxonomy-patch',
|
|
622
|
+
successStatus: 200,
|
|
623
|
+
invoke: (credential, cube) => environment.operations.patchTaxonomy(credential, cube, createProtocolEnvelope('matrix-taxonomy-patch', { marker: 'matrix-taxonomy' })),
|
|
624
|
+
},
|
|
625
|
+
{
|
|
626
|
+
name: 'decision-record',
|
|
627
|
+
successStatus: 201,
|
|
628
|
+
invoke: (credential, cube) => environment.operations.recordDecision(credential, cube, createProtocolEnvelope('matrix-decision-record', {
|
|
629
|
+
topic: 'matrix-authority', decision: 'manage only',
|
|
630
|
+
})),
|
|
631
|
+
},
|
|
632
|
+
{
|
|
633
|
+
name: 'drone-reassign',
|
|
634
|
+
successStatus: 200,
|
|
635
|
+
invoke: (credential, cube) => environment.operations.reassignDrone(credential, cube, managedWorker, createProtocolEnvelope('matrix-drone-reassign', { role_id: matrixTargetRole.id })),
|
|
636
|
+
},
|
|
637
|
+
{
|
|
638
|
+
name: 'drone-evict',
|
|
639
|
+
successStatus: 200,
|
|
640
|
+
invoke: (credential, cube) => environment.operations.evictDrone(credential, cube, evictionTarget, createProtocolEnvelope('matrix-drone-evict', {})),
|
|
641
|
+
},
|
|
642
|
+
];
|
|
643
|
+
for (const operation of operations) {
|
|
644
|
+
for (const [kind, credential] of [
|
|
645
|
+
['read', readCredential],
|
|
646
|
+
['write', writeCredential],
|
|
647
|
+
['drone-session', droneCredential],
|
|
648
|
+
]) {
|
|
649
|
+
const before = await snapshot();
|
|
650
|
+
expectError(await operation.invoke(credential, cubeA), 403, ErrorCode.ACCESS_DENIED, `${operation.name} by ${kind} principal`);
|
|
651
|
+
invariant(same(await snapshot(), before), `${operation.name} mutated state after ${kind} denial.`);
|
|
652
|
+
}
|
|
653
|
+
for (const [kind, credential, cube] of [
|
|
654
|
+
['no-grant', noGrantCredential, cubeA],
|
|
655
|
+
['foreign-principal', credentialB, cubeA],
|
|
656
|
+
['foreign-cube', credentialA, cubeB],
|
|
657
|
+
['unknown-cube', credentialA, unknownCube],
|
|
658
|
+
]) {
|
|
659
|
+
const before = await snapshot();
|
|
660
|
+
expectError(await operation.invoke(credential, cube), 404, ErrorCode.NOT_FOUND, `${operation.name} against ${kind}`);
|
|
661
|
+
invariant(same(await snapshot(), before), `${operation.name} mutated state after ${kind} denial.`);
|
|
662
|
+
}
|
|
663
|
+
const beforeSuccess = await environment.admin.inspectCubeManagementState(cubeA);
|
|
664
|
+
const success = await operation.invoke(credentialA, cubeA);
|
|
665
|
+
expectStatus(success, operation.successStatus, `${operation.name} by managing principal`);
|
|
666
|
+
invariant(!same(await environment.admin.inspectCubeManagementState(cubeA), beforeSuccess), `${operation.name} managing success did not mutate its declared state.`);
|
|
667
|
+
}
|
|
668
|
+
return {
|
|
669
|
+
operation_count: operations.length,
|
|
670
|
+
manage_success: true,
|
|
671
|
+
read_write_status: 403,
|
|
672
|
+
drone_session_status: 403,
|
|
673
|
+
hidden_status: 404,
|
|
674
|
+
denied_mutations: 0,
|
|
675
|
+
role_labels_authoritative: false,
|
|
676
|
+
};
|
|
677
|
+
});
|
|
678
|
+
await record('drones.reassign-invariants', async () => {
|
|
679
|
+
workerRoleB = await environment.admin.createRole(cubeA, {
|
|
680
|
+
roleClass: 'worker', isHumanSeat: false,
|
|
681
|
+
});
|
|
682
|
+
const humanSourceRole = await environment.admin.createRole(cubeA, {
|
|
683
|
+
roleClass: 'worker', isHumanSeat: true,
|
|
684
|
+
});
|
|
685
|
+
const queenRole = await environment.admin.createRole(cubeA, {
|
|
686
|
+
roleClass: 'queen', isHumanSeat: false,
|
|
687
|
+
});
|
|
688
|
+
const occupiedHumanRole = await environment.admin.createRole(cubeA, {
|
|
689
|
+
roleClass: 'worker', isHumanSeat: true,
|
|
690
|
+
});
|
|
691
|
+
const humanSource = await environment.admin.createDrone(principalA, cubeA, humanSourceRole);
|
|
692
|
+
await environment.admin.createDrone(principalA, cubeA, occupiedHumanRole);
|
|
693
|
+
const contender = await environment.admin.createDrone(principalA, cubeA, workerRoleA);
|
|
694
|
+
workerSession = await environment.admin.issueManagedDroneSession(managedWorker);
|
|
695
|
+
const reassigned = await environment.operations.reassignDrone(credentialA, cubeA, managedWorker, createProtocolEnvelope('reassign-worker', { role_id: workerRoleB.id }));
|
|
696
|
+
expectStatus(reassigned, 200, 'Worker reassignment');
|
|
697
|
+
const reassignedDrone = decodeReassignDroneResultEnvelope(reassigned.body).payload.drone;
|
|
698
|
+
invariant(reassignedDrone.id === managedWorker.id && reassignedDrone.role_id === workerRoleB.id, 'Reassignment response did not identify the persisted target role.');
|
|
699
|
+
expectError(await environment.operations.reassignDrone(workerSession, cubeA, managedWorker, createProtocolEnvelope('reassign-drone-session-denied', { role_id: workerRoleA.id })), 403, ErrorCode.ACCESS_DENIED, 'Drone-session reassignment');
|
|
700
|
+
expectError(await environment.operations.reassignDrone(credentialA, cubeA, managedWorker, createProtocolEnvelope('reassign-queen-denied', { role_id: queenRole.id })), 403, ErrorCode.ACCESS_DENIED, 'Worker-to-queen reassignment');
|
|
701
|
+
const promoted = await environment.operations.reassignDrone(credentialA, cubeA, humanSource, createProtocolEnvelope('reassign-queen-allowed', { role_id: queenRole.id }));
|
|
702
|
+
expectStatus(promoted, 200, 'Human-seat-to-queen reassignment');
|
|
703
|
+
invariant(decodeReassignDroneResultEnvelope(promoted.body).payload.drone.role_id === queenRole.id, 'Human-seat-to-queen reassignment did not persist.');
|
|
704
|
+
expectError(await environment.operations.reassignDrone(credentialA, cubeA, contender, createProtocolEnvelope('reassign-occupied-denied', { role_id: occupiedHumanRole.id })), 409, ErrorCode.ROLE_IN_USE, 'Occupied human-seat reassignment');
|
|
705
|
+
return {
|
|
706
|
+
worker_reassigned: true,
|
|
707
|
+
drone_session_denied: true,
|
|
708
|
+
queen_requires_human_seat: true,
|
|
709
|
+
occupied_human_seat_denied: true,
|
|
710
|
+
};
|
|
711
|
+
});
|
|
712
|
+
await record('security.cross-cube-drone-management', async () => {
|
|
713
|
+
const foreignRole = await environment.admin.createRole(cubeB, {
|
|
714
|
+
roleClass: 'worker', isHumanSeat: false,
|
|
715
|
+
});
|
|
716
|
+
const foreignDrone = await environment.admin.createDrone(principalB, cubeB, foreignRole);
|
|
717
|
+
expectError(await environment.operations.reassignDrone(credentialA, cubeB, foreignDrone, createProtocolEnvelope('cross-cube-reassign', { role_id: foreignRole.id })), 404, ErrorCode.NOT_FOUND, 'Cross-cube reassignment');
|
|
718
|
+
expectError(await environment.operations.evictDrone(credentialA, cubeB, foreignDrone, createProtocolEnvelope('cross-cube-evict', {})), 404, ErrorCode.NOT_FOUND, 'Cross-cube eviction');
|
|
719
|
+
expectError(await environment.operations.reassignDrone(credentialA, cubeA, foreignDrone, createProtocolEnvelope('foreign-drone-local-route', { role_id: workerRoleA.id })), 404, ErrorCode.NOT_FOUND, 'Foreign drone reassignment through authorized cube route');
|
|
720
|
+
expectError(await environment.operations.evictDrone(credentialA, cubeA, foreignDrone, createProtocolEnvelope('foreign-drone-local-evict', {})), 404, ErrorCode.NOT_FOUND, 'Foreign drone eviction through authorized cube route');
|
|
721
|
+
expectError(await environment.operations.reassignDrone(credentialA, cubeA, managedWorker, createProtocolEnvelope('foreign-role-local-drone', { role_id: foreignRole.id })), 404, ErrorCode.NOT_FOUND, 'Foreign role reassignment through authorized cube route');
|
|
722
|
+
await environment.admin.grantCube(principalA, cubeB, 'read');
|
|
723
|
+
const foreignDroneBefore = await environment.admin.inspectManagedDrone(foreignDrone);
|
|
724
|
+
expectError(await environment.operations.reassignDrone(workerSession, cubeB, foreignDrone, createProtocolEnvelope('bound-drone-cross-cube-reassign', { role_id: foreignRole.id })), 404, ErrorCode.NOT_FOUND, 'Bound drone cross-cube reassignment');
|
|
725
|
+
invariant(same(await environment.admin.inspectManagedDrone(foreignDrone), foreignDroneBefore), 'Bound drone cross-cube reassignment mutated the foreign target.');
|
|
726
|
+
expectError(await environment.operations.evictDrone(workerSession, cubeB, foreignDrone, createProtocolEnvelope('bound-drone-cross-cube-evict', {})), 404, ErrorCode.NOT_FOUND, 'Bound drone cross-cube eviction');
|
|
727
|
+
invariant(same(await environment.admin.inspectManagedDrone(foreignDrone), foreignDroneBefore), 'Bound drone cross-cube eviction mutated the foreign target.');
|
|
728
|
+
return {
|
|
729
|
+
unauthorized_cube_status: 404,
|
|
730
|
+
foreign_drone_status: 404,
|
|
731
|
+
foreign_role_status: 404,
|
|
732
|
+
bound_drone_cross_cube_status: 404,
|
|
733
|
+
code: ErrorCode.NOT_FOUND,
|
|
734
|
+
};
|
|
735
|
+
});
|
|
736
|
+
await record('drones.evict-terminal-signal', async () => {
|
|
737
|
+
const evictedDrone = await environment.admin.createDrone(principalA, cubeA, workerRoleA);
|
|
738
|
+
const evictedCredential = await environment.admin.issueManagedDroneSession(evictedDrone);
|
|
739
|
+
expectStatus(await environment.operations.read(evictedCredential, cubeA, createProtocolEnvelope('evict-probe-before', { cursor: null, limit: 1 })), 200, 'Pre-eviction seat probe');
|
|
740
|
+
const before = await environment.operations.listDrones(credentialA, cubeA);
|
|
741
|
+
expectStatus(before, 200, 'Pre-eviction roster');
|
|
742
|
+
invariant(listedDroneIds(before).includes(evictedDrone.id), 'Active drone was absent from roster.');
|
|
743
|
+
const evicted = await environment.operations.evictDrone(credentialA, cubeA, evictedDrone, createProtocolEnvelope('evict-managed-drone', {}));
|
|
744
|
+
expectStatus(evicted, 200, 'Drone eviction');
|
|
745
|
+
invariant(same(decodeEvictDroneResultEnvelope(evicted.body).payload, {
|
|
746
|
+
drone_id: evictedDrone.id,
|
|
747
|
+
evicted: true,
|
|
748
|
+
}), 'Eviction response did not identify the terminal seat.');
|
|
749
|
+
invariant(same(await environment.admin.inspectManagedDrone(evictedDrone), {
|
|
750
|
+
role_id: workerRoleA.id,
|
|
751
|
+
evicted: true,
|
|
752
|
+
session_revoked: true,
|
|
753
|
+
}), 'Eviction did not atomically mark the drone evicted and revoke its session.');
|
|
754
|
+
const after = await environment.operations.listDrones(credentialA, cubeA);
|
|
755
|
+
expectStatus(after, 200, 'Post-eviction roster');
|
|
756
|
+
invariant(!listedDroneIds(after).includes(evictedDrone.id), 'Evicted drone remained in roster.');
|
|
757
|
+
expectError(await environment.operations.append(credentialA, cubeA, createProtocolEnvelope('evict-direct-target', {
|
|
758
|
+
message: 'must-not-fan-out',
|
|
759
|
+
visibility: 'direct',
|
|
760
|
+
recipientDroneIds: [evictedDrone.id],
|
|
761
|
+
})), 404, ErrorCode.NOT_FOUND, 'Evicted direct recipient');
|
|
762
|
+
expectError(await environment.operations.read(evictedCredential, cubeA, createProtocolEnvelope('evict-probe-after', { cursor: null, limit: 1 })), PROTOCOL_HTTP_CONTRACT.drone_evicted_status, ErrorCode.DRONE_EVICTED, 'Evicted seat probe');
|
|
763
|
+
return {
|
|
764
|
+
eviction_status: 200,
|
|
765
|
+
roster_visible: false,
|
|
766
|
+
fanout_reachable: false,
|
|
767
|
+
old_bearer_status: 410,
|
|
768
|
+
old_bearer_code: ErrorCode.DRONE_EVICTED,
|
|
769
|
+
};
|
|
770
|
+
});
|
|
771
|
+
await record('security.drone-session-rejection-causes', async () => {
|
|
772
|
+
const revokedDrone = await environment.admin.createDrone(principalA, cubeA, workerRoleA);
|
|
773
|
+
const expiredDrone = await environment.admin.createDrone(principalA, cubeA, workerRoleA);
|
|
774
|
+
const revokedCredential = await environment.admin.issueManagedDroneSession(revokedDrone);
|
|
775
|
+
const expiredCredential = await environment.admin.issueManagedDroneSession(expiredDrone);
|
|
776
|
+
await environment.admin.revokeManagedDroneSession(revokedDrone);
|
|
777
|
+
await environment.admin.expireManagedDroneSession(expiredDrone);
|
|
778
|
+
for (const [label, credential] of [
|
|
779
|
+
['revoked', revokedCredential],
|
|
780
|
+
['expired', expiredCredential],
|
|
781
|
+
]) {
|
|
782
|
+
expectError(await environment.operations.read(credential, cubeA, createProtocolEnvelope(`${label}-seat-probe`, { cursor: null, limit: 1 })), 401, ErrorCode.SESSION_REVOKED, `${label} seat probe`);
|
|
555
783
|
}
|
|
556
|
-
|
|
557
|
-
|
|
784
|
+
return {
|
|
785
|
+
revoked_status: 401,
|
|
786
|
+
expired_status: 401,
|
|
787
|
+
code: ErrorCode.SESSION_REVOKED,
|
|
788
|
+
};
|
|
558
789
|
});
|
|
559
790
|
await record('security.active-stream-revocation', async () => {
|
|
560
791
|
invariant(liveCursor, 'Stream fixture did not produce a live cursor.');
|
|
@@ -589,17 +820,4 @@ export async function runAdapterConformance(environment, options = {}) {
|
|
|
589
820
|
const normalizedTranscript = results.map(({ id, observations }) => ({ id, observations }));
|
|
590
821
|
return { ok: results.every((result) => result.ok), results, normalizedTranscript };
|
|
591
822
|
}
|
|
592
|
-
export async function runEquivalentAdapterConformance(cloud, local, options = {}) {
|
|
593
|
-
const [cloudReport, localReport] = await Promise.all([
|
|
594
|
-
runAdapterConformance(cloud, options),
|
|
595
|
-
runAdapterConformance(local, options),
|
|
596
|
-
]);
|
|
597
|
-
const equivalent = same(cloudReport.normalizedTranscript, localReport.normalizedTranscript);
|
|
598
|
-
return {
|
|
599
|
-
ok: cloudReport.ok && localReport.ok && equivalent,
|
|
600
|
-
cloud: cloudReport,
|
|
601
|
-
local: localReport,
|
|
602
|
-
equivalent,
|
|
603
|
-
};
|
|
604
|
-
}
|
|
605
823
|
//# sourceMappingURL=adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/conformance/adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/conformance/adapter.ts"],"names":[],"mappings":"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"}
|