mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-02 17:31:39 +00:00
@@ -0,0 +1,36 @@
|
||||
-- +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
|
||||
Reference in New Issue
Block a user