mirror of
https://github.com/block/buzz.git
synced 2026-10-27 04:30:52 +00:00
20 lines
1.2 KiB
SQL
20 lines
1.2 KiB
SQL
CREATE TABLE push_gateway_installations (
|
|
id UUID PRIMARY KEY,
|
|
app_attest_key_id BYTEA NOT NULL CHECK (octet_length(app_attest_key_id) BETWEEN 1 AND 128),
|
|
app_attest_public_key BYTEA NOT NULL CHECK (octet_length(app_attest_public_key) BETWEEN 33 AND 256),
|
|
assertion_counter BIGINT NOT NULL CHECK (assertion_counter BETWEEN 0 AND 4294967295),
|
|
app_profile TEXT NOT NULL CHECK (app_profile = 'buzz-ios-dogfood'),
|
|
token_ciphertext BYTEA NOT NULL CHECK (octet_length(token_ciphertext) BETWEEN 1 AND 2048),
|
|
token_fingerprint BYTEA NOT NULL CHECK (length(token_fingerprint) = 32),
|
|
endpoint_epoch BIGINT NOT NULL CHECK (endpoint_epoch > 0),
|
|
expires_at TIMESTAMPTZ NOT NULL,
|
|
revoked_at TIMESTAMPTZ,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
);
|
|
CREATE UNIQUE INDEX push_gateway_installations_active_app_attest_key
|
|
ON push_gateway_installations (app_attest_key_id) WHERE revoked_at IS NULL;
|
|
CREATE UNIQUE INDEX push_gateway_installations_active_profile_token
|
|
ON push_gateway_installations (app_profile, token_fingerprint) WHERE revoked_at IS NULL;
|
|
CREATE INDEX push_gateway_installations_expiry ON push_gateway_installations (expires_at) WHERE revoked_at IS NULL;
|