Skip to content

Commit da9bb51

Browse files
committed
Create client authorization code table + add RLS
1 parent 85c1e9a commit da9bb51

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

supabase/migrations/20240810183922_create_oauth2_tables.sql

+25-3
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,36 @@ CREATE TABLE "public"."oauth2_client_authorization_grant_types" (
3333
ALTER TABLE "public"."oauth2_client_authorization_grant_types" ENABLE ROW LEVEL SECURITY;
3434
CREATE INDEX "idx_oauth2_authorization_grant_types_client_id" ON "public"."oauth2_client_authorization_grant_types"("client_id");
3535

36+
-- table storing the authorization codes for clients
37+
CREATE TABLE "public"."oauth2_client_authorization_codes" (
38+
id SERIAL PRIMARY KEY,
39+
client_id TEXT NOT NULL REFERENCES "public"."oauth2_clients"(client_id) ON DELETE CASCADE,
40+
authorization_code TEXT NOT NULL UNIQUE,
41+
code_issued_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
42+
code_expires_at TIMESTAMPTZ NOT NULL,
43+
redirect_uri TEXT NOT NULL,
44+
scopes TEXT[] NOT NULL,
45+
user_id TEXT NOT NULL,
46+
used BOOLEAN DEFAULT FALSE NOT NULL,
47+
enabled BOOLEAN DEFAULT TRUE NOT NULL
48+
);
49+
ALTER TABLE "public"."oauth2_client_authorization_codes" ENABLE ROW LEVEL SECURITY;
50+
CREATE INDEX "idx_oauth2_authorization_codes_client_id" ON "public"."oauth2_client_authorization_codes"("client_id");
51+
CREATE INDEX "idx_oauth2_authorization_codes_user_id" ON "public"."oauth2_client_authorization_codes"("user_id");
52+
53+
3654
-- table storing the access tokens for clients
3755
CREATE TABLE "public"."oauth2_client_access_tokens" (
3856
id SERIAL PRIMARY KEY,
3957
client_id TEXT NOT NULL REFERENCES "public"."oauth2_clients"(client_id) ON DELETE CASCADE,
4058
access_token TEXT NOT NULL UNIQUE,
4159
access_token_issued_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
4260
access_token_expires_at TIMESTAMPTZ NOT NULL,
43-
enabled boolean DEFAULT TRUE NOT NULL
61+
enabled boolean DEFAULT TRUE NOT NULL,
4462
scopes TEXT[] NOT NULL
4563
);
64+
ALTER TABLE "public"."oauth2_client_access_tokens" ENABLE ROW LEVEL SECURITY;
65+
CREATE INDEX "idx_oauth2_access_tokens_client_id" ON "public"."oauth2_client_access_tokens"("client_id");
4666

4767
-- table storing the refresh tokens for clients
4868
CREATE TABLE "public"."oauth2_client_refresh_tokens" (
@@ -51,6 +71,8 @@ CREATE TABLE "public"."oauth2_client_refresh_tokens" (
5171
refresh_token TEXT NOT NULL UNIQUE,
5272
refresh_token_issued_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
5373
refresh_token_expires_at TIMESTAMPTZ NOT NULL,
54-
enabled boolean DEFAULT TRUE NOT NULL
74+
enabled boolean DEFAULT TRUE NOT NULL,
5575
scopes TEXT[] NOT NULL
56-
);
76+
);
77+
ALTER TABLE "public"."oauth2_client_refresh_tokens" ENABLE ROW LEVEL SECURITY;
78+
CREATE INDEX "idx_oauth2_refresh_tokens_client_id" ON "public"."oauth2_client_refresh_tokens"("client_id");

0 commit comments

Comments
 (0)