Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Label expiration #2241

Merged
merged 32 commits into from
Mar 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
3084a33
sketching out label sequencer
dholms Jan 12, 2024
c6072fc
refactor sequencer
dholms Jan 12, 2024
72b4511
sequencer tests
dholms Jan 12, 2024
be19aa3
tests
dholms Jan 12, 2024
1c6f494
add query labels endpoint & tests
dholms Jan 13, 2024
a51aaf7
add pagination
dholms Jan 13, 2024
1570fa4
fix label formatting on temp
dholms Jan 13, 2024
8d8e8a9
tidy
dholms Jan 15, 2024
c2c4caa
merge main
dholms Feb 27, 2024
5918ae6
format labels
dholms Feb 27, 2024
3efc6d4
make use listen/notify for sequencer
dholms Feb 27, 2024
c47109e
ensure sig on all outgoing labels from ozone
dholms Feb 28, 2024
faaaba2
fixing up tests
dholms Feb 28, 2024
7c84fc6
fix sequencer tests
dholms Feb 28, 2024
f3400c7
fix hanging server test
dholms Feb 28, 2024
884c690
Merge branch 'label-stream' into signed-labels
dholms Feb 28, 2024
51ee15b
merge main
dholms Feb 29, 2024
78d73d8
add log on failure to update label
dholms Feb 29, 2024
c79aa7b
update description for sig
dholms Feb 29, 2024
221c3f7
add expiration to labels
dholms Feb 29, 2024
773287b
fix test
dholms Feb 29, 2024
14d9ca0
merge main
dholms Mar 7, 2024
e8ab4ac
use bytes for label sigs
dholms Mar 7, 2024
9623e50
fix tests
dholms Mar 7, 2024
06c79c0
add ver to labels
dholms Mar 8, 2024
ced9392
merge
dholms Mar 8, 2024
2a4383b
tidy up background queue
dholms Mar 9, 2024
6cd885f
store signing keys as ids
dholms Mar 9, 2024
80868b7
merge
dholms Mar 9, 2024
9105e56
fix sequencer teest
dholms Mar 9, 2024
fd19f34
Merge branch 'signed-labels' into label-exp
dholms Mar 9, 2024
7879a99
merge
dholms Mar 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions lexicons/com/atproto/label/defs.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,11 @@
"format": "datetime",
"description": "Timestamp when this label was created."
},
"exp": {
"type": "string",
"format": "datetime",
"description": "Timestamp at which this label expires (no longer applies)."
},
"sig": {
"type": "bytes",
"description": "Signature of dag-cbor encoded label."
Expand Down
6 changes: 6 additions & 0 deletions packages/api/src/client/lexicons.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2239,6 +2239,12 @@ export const schemaDict = {
format: 'datetime',
description: 'Timestamp when this label was created.',
},
exp: {
type: 'string',
format: 'datetime',
description:
'Timestamp at which this label expires (no longer applies).',
},
sig: {
type: 'bytes',
description: 'Signature of dag-cbor encoded label.',
Expand Down
2 changes: 2 additions & 0 deletions packages/api/src/client/types/com/atproto/label/defs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ export interface Label {
neg?: boolean
/** Timestamp when this label was created. */
cts: string
/** Timestamp at which this label expires (no longer applies). */
exp?: string
/** Signature of dag-cbor encoded label. */
sig?: Uint8Array
[k: string]: unknown
Expand Down
6 changes: 6 additions & 0 deletions packages/bsky/src/lexicon/lexicons.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2239,6 +2239,12 @@ export const schemaDict = {
format: 'datetime',
description: 'Timestamp when this label was created.',
},
exp: {
type: 'string',
format: 'datetime',
description:
'Timestamp at which this label expires (no longer applies).',
},
sig: {
type: 'bytes',
description: 'Signature of dag-cbor encoded label.',
Expand Down
2 changes: 2 additions & 0 deletions packages/bsky/src/lexicon/types/com/atproto/label/defs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ export interface Label {
neg?: boolean
/** Timestamp when this label was created. */
cts: string
/** Timestamp at which this label expires (no longer applies). */
exp?: string
/** Signature of dag-cbor encoded label. */
sig?: Uint8Array
[k: string]: unknown
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Kysely, sql } from 'kysely'

export async function up(db: Kysely<unknown>): Promise<void> {
await db.schema.alterTable('label').addColumn('exp', 'varchar').execute()
await db.schema
.alterTable('label')
.addColumn('sig', sql`bytea`)
Expand All @@ -18,6 +19,7 @@ export async function up(db: Kysely<unknown>): Promise<void> {

export async function down(db: Kysely<unknown>): Promise<void> {
await db.schema.dropTable('signing_key')
await db.schema.alterTable('label').dropColumn('exp').execute()
await db.schema.alterTable('label').dropColumn('sig').execute()
await db.schema.alterTable('label').dropColumn('signingKey').execute()
}
1 change: 1 addition & 0 deletions packages/ozone/src/db/schema/label.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ export interface Label {
val: string
neg: boolean
cts: string
exp: string | null
sig: Buffer | null
signingKeyId: number | null
}
Expand Down
6 changes: 6 additions & 0 deletions packages/ozone/src/lexicon/lexicons.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2239,6 +2239,12 @@ export const schemaDict = {
format: 'datetime',
description: 'Timestamp when this label was created.',
},
exp: {
type: 'string',
format: 'datetime',
description:
'Timestamp at which this label expires (no longer applies).',
},
sig: {
type: 'bytes',
description: 'Signature of dag-cbor encoded label.',
Expand Down
2 changes: 2 additions & 0 deletions packages/ozone/src/lexicon/types/com/atproto/label/defs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ export interface Label {
neg?: boolean
/** Timestamp when this label was created. */
cts: string
/** Timestamp at which this label expires (no longer applies). */
exp?: string
/** Signature of dag-cbor encoded label. */
sig?: Uint8Array
[k: string]: unknown
Expand Down
5 changes: 4 additions & 1 deletion packages/ozone/src/mod-service/util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ export const formatLabel = (row: LabelRow): Label => {
val: row.val,
neg: row.neg,
cts: row.cts,
exp: row.exp ?? undefined,
sig: row.sig ? new Uint8Array(row.sig) : undefined,
}) as Label
}
Expand All @@ -29,6 +30,7 @@ export const formatLabelRow = (
val: label.val,
neg: !!label.neg,
cts: label.cts,
exp: label.exp ?? null,
sig: label.sig ? Buffer.from(label.sig) : null,
signingKeyId: signingKeyId ?? null,
}
Expand All @@ -38,7 +40,7 @@ export const signLabel = async (
label: Label,
signingKey: Keypair,
): Promise<SignedLabel> => {
const { ver, src, uri, cid, val, neg, cts } = label
const { ver, src, uri, cid, val, neg, cts, exp } = label
const reformatted = noUndefinedVals({
ver: ver ?? 1,
src,
Expand All @@ -47,6 +49,7 @@ export const signLabel = async (
val,
neg,
cts,
exp,
}) as Label

const bytes = cborEncode(reformatted)
Expand Down
1 change: 1 addition & 0 deletions packages/ozone/tests/sequencer.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ describe('sequencer', () => {
id: e.seq,
...label,
cid: label.cid ? label.cid : '',
exp: null,
sig: label.sig ? Buffer.from(label.sig) : null,
signingKeyId: network.ozone.ctx.signingKeyId,
}
Expand Down
6 changes: 6 additions & 0 deletions packages/pds/src/lexicon/lexicons.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2239,6 +2239,12 @@ export const schemaDict = {
format: 'datetime',
description: 'Timestamp when this label was created.',
},
exp: {
type: 'string',
format: 'datetime',
description:
'Timestamp at which this label expires (no longer applies).',
},
sig: {
type: 'bytes',
description: 'Signature of dag-cbor encoded label.',
Expand Down
2 changes: 2 additions & 0 deletions packages/pds/src/lexicon/types/com/atproto/label/defs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ export interface Label {
neg?: boolean
/** Timestamp when this label was created. */
cts: string
/** Timestamp at which this label expires (no longer applies). */
exp?: string
/** Signature of dag-cbor encoded label. */
sig?: Uint8Array
[k: string]: unknown
Expand Down
Loading