mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-02 17:31:39 +00:00
37 lines
1.4 KiB
SQL
37 lines
1.4 KiB
SQL
-- +goose Up
|
|
-- +goose StatementBegin
|
|
-- Credentials store WebAuthn credentials
|
|
CREATE TABLE credentials (
|
|
id TEXT PRIMARY KEY,
|
|
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
deleted_at TIMESTAMP WITH TIME ZONE,
|
|
handle TEXT NOT NULL,
|
|
raw_id TEXT NOT NULL,
|
|
type TEXT NOT NULL DEFAULT 'public-key',
|
|
authenticator_attachment TEXT,
|
|
transports TEXT[], -- Array of transport strings
|
|
client_extension_results JSONB,
|
|
attestation_object TEXT NOT NULL, -- Base64URL encoded
|
|
client_data_json TEXT NOT NULL, -- Base64URL encoded
|
|
public_key_alg INTEGER,
|
|
public_key BYTEA
|
|
);
|
|
|
|
-- Unique constraints
|
|
CREATE UNIQUE INDEX idx_credentials_id_unique ON credentials(id) WHERE deleted_at IS NULL;
|
|
CREATE UNIQUE INDEX idx_credentials_raw_id_unique ON credentials(raw_id) WHERE deleted_at IS NULL;
|
|
CREATE UNIQUE INDEX idx_credentials_handle_unique ON credentials(handle) WHERE deleted_at IS NULL;
|
|
|
|
-- Regular indexes for query performance
|
|
CREATE INDEX idx_credentials_handle ON credentials(handle);
|
|
CREATE INDEX idx_credentials_type ON credentials(type);
|
|
CREATE INDEX idx_credentials_authenticator_attachment ON credentials(authenticator_attachment);
|
|
CREATE INDEX idx_credentials_deleted_at ON credentials(deleted_at) WHERE deleted_at IS NULL;
|
|
-- +goose StatementEnd
|
|
|
|
-- +goose Down
|
|
-- +goose StatementBegin
|
|
DROP TABLE credentials;
|
|
-- +goose StatementEnd
|