44 lines
1.5 KiB
JavaScript
44 lines
1.5 KiB
JavaScript
import { bigserial, pgSchema, text, timestamp, uuid, varchar } from "../pg-core/index.js";
|
|
import { pgRole } from "../pg-core/roles.js";
|
|
import { sql } from "../sql/sql.js";
|
|
const anonRole = pgRole("anon").existing();
|
|
const authenticatedRole = pgRole("authenticated").existing();
|
|
const serviceRole = pgRole("service_role").existing();
|
|
const postgresRole = pgRole("postgres_role").existing();
|
|
const supabaseAuthAdminRole = pgRole("supabase_auth_admin").existing();
|
|
const auth = pgSchema("auth");
|
|
const authUsers = auth.table("users", {
|
|
id: uuid().primaryKey().notNull(),
|
|
email: varchar({ length: 255 }),
|
|
phone: text().unique(),
|
|
emailConfirmedAt: timestamp("email_confirmed_at", { withTimezone: true }),
|
|
phoneConfirmedAt: timestamp("phone_confirmed_at", { withTimezone: true }),
|
|
lastSignInAt: timestamp("last_sign_in_at", { withTimezone: true }),
|
|
createdAt: timestamp("created_at", { withTimezone: true }),
|
|
updatedAt: timestamp("updated_at", { withTimezone: true })
|
|
});
|
|
const realtime = pgSchema("realtime");
|
|
const realtimeMessages = realtime.table(
|
|
"messages",
|
|
{
|
|
id: bigserial({ mode: "bigint" }).primaryKey(),
|
|
topic: text().notNull(),
|
|
extension: text({
|
|
enum: ["presence", "broadcast", "postgres_changes"]
|
|
}).notNull()
|
|
}
|
|
);
|
|
const authUid = sql`(select auth.uid())`;
|
|
const realtimeTopic = sql`realtime.topic()`;
|
|
export {
|
|
anonRole,
|
|
authUid,
|
|
authUsers,
|
|
authenticatedRole,
|
|
postgresRole,
|
|
realtimeMessages,
|
|
realtimeTopic,
|
|
serviceRole,
|
|
supabaseAuthAdminRole
|
|
};
|
|
//# sourceMappingURL=rls.js.map
|