Skip to content

Commit e932363

Browse files
authored
Merge pull request #321 from NillionNetwork/feat/update-nuc-ts
2 parents 4574411 + b116100 commit e932363

File tree

13 files changed

+107
-167
lines changed

13 files changed

+107
-167
lines changed

justfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ install:
2121

2222
# Check for formatting, lint, and type errors
2323
check:
24-
pnpm exec biome ci && pnpm exec tsc -b --noEmit
24+
pnpm exec tsc -b && pnpm exec biome ci && pnpm exec tsc -b --noEmit
2525

2626
# Format, fix, and type check all files
2727
fix:

packages/api/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"@hono/prometheus": "^1.0.2",
2727
"@hono/standard-validator": "^0.1.5",
2828
"@hono/zod-validator": "^0.7.4",
29-
"@nillion/nuc": "^1.0.0",
29+
"@nillion/nuc": "^1.1.0-rc.0",
3030
"@noble/curves": "^2.0.1",
3131
"@noble/hashes": "^2.0.1",
3232
"@standard-community/standard-json": "^0.3.5",

packages/api/src/middleware/capability.middleware.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@ export function loadNucToken<
3131
);
3232
}
3333

34-
const envelope = Codec.decodeBase64Url(tokenString);
34+
// We must use the unsafe decode first to extract the subject/claims required
35+
// to fetch the correct context (User/Builder) for validation
36+
const envelope = Codec._unsafeDecodeBase64Url(tokenString);
3537
c.set("envelope", envelope);
3638

3739
return next();
@@ -60,7 +62,9 @@ export function loadSubjectAndVerifyAsAdmin<
6062
return async (c, next) => {
6163
try {
6264
const envelope = c.get("envelope");
63-
Validator.validate(envelope, { rootIssuers: [nildbNodeDid.didString] });
65+
await Validator.validate(envelope, {
66+
rootIssuers: [nildbNodeDid.didString],
67+
});
6468
return next();
6569
} catch (cause) {
6670
if (cause && typeof cause === "object" && "message" in cause) {
@@ -127,7 +131,7 @@ export function loadSubjectAndVerifyAsBuilder<
127131
const nilauthDid = Did.fromPublicKey(config.nilauthPubKey);
128132
const nildbNodeDid = bindings.node.did;
129133

130-
Validator.validate(envelope, {
134+
await Validator.validate(envelope, {
131135
rootIssuers: [nilauthDid.didString],
132136
params: {
133137
tokenRequirements: {
@@ -215,7 +219,7 @@ export function loadSubjectAndVerifyAsUser<
215219
StatusCodes.UNAUTHORIZED,
216220
);
217221
}
218-
Validator.validate(envelope, {
222+
await Validator.validate(envelope, {
219223
rootIssuers: [subject],
220224
});
221225
c.set("user", user);

packages/api/tests/02-integration/02-builder-lifecycle.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ describe("02-builder-lifecycle.test.js", () => {
2525
.command("/nil/db")
2626
.audience(bindings.node.did)
2727
.subject(builderDid)
28+
.expiresIn(1000 * 10)
2829
.signAndSerialize(builderSigner);
2930

3031
const response = await app.request(PathsV1.collections.root, {

packages/api/tests/fixture/fixture.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ export async function buildFixture(
123123
.subject(adminDid)
124124
.command(NucCmd.nil.db.root)
125125
.audience(adminDid)
126+
.expiresIn(1000 * 60 * 5)
126127
.sign(node.signer);
127128
const system = new AdminClient({
128129
baseUrl: bindings.config.nodePublicEndpoint,

packages/api/tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"@nildb/*": ["./src/*"],
88
"@nillion/nildb-types": ["../types/src/lib.ts"],
99
"@nillion/nildb-types/*": ["../types/src/*"],
10-
"@nillion/nildb-shared": ["../shared/src/index.ts"],
10+
"@nillion/nildb-shared": ["../shared/src/lib.ts"],
1111
"@nillion/nildb-shared/*": ["../shared/src/*"],
1212
"@nillion/nildb-client": ["../client/src/index.ts"],
1313
"@nillion/nildb-client/*": ["../client/src/*"]

packages/client/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"stub": "tsdown --stub"
1818
},
1919
"dependencies": {
20-
"@nillion/nuc": "^1.0.0",
20+
"@nillion/nuc": "^1.1.0-rc.0",
2121
"@nillion/nildb-types": "workspace:*"
2222
},
2323
"devDependencies": {

packages/client/src/admin/client.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ export class AdminClient {
2929
const nodeDid = Did.fromPublicKey(this.options.nodePublicKey);
3030
return await Builder.invocationFrom(this.nodeDelegation)
3131
.audience(nodeDid)
32+
.expiresIn(60 * 1000)
3233
.signAndSerialize(this.options.signer);
3334
}
3435

packages/client/src/builder/client.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ export class BuilderClient {
6464

6565
return await Builder.invocationFrom(rootToken)
6666
.audience(nodeDid)
67+
.expiresIn(60 * 1000)
6768
.signAndSerialize(this.options.signer);
6869
}
6970

packages/client/src/user/client.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export class UserClient {
3535
.command(NucCmd.nil.db.users.root)
3636
.audience(nodeDid)
3737
.subject(did)
38+
.expiresIn(60 * 1000)
3839
.signAndSerialize(this.options.signer);
3940
}
4041

0 commit comments

Comments
 (0)