Files
dealplustech/dealplustech-astro/node_modules/drizzle-orm/supabase/rls.js
Kunthawat b2e427791b feat: Add complete PDPA compliance pages
- Admin dashboard (/admin/consent-logs) with password auth
- Consent API (/api/consent) with SQLite + IP hashing
- Privacy Policy (Thai) - PDPA Section 36 compliant
- Terms & Conditions (Thai) - 9 standard clauses
- .env.example template with Umami placeholder

All pages preserve current design system.
2026-03-10 21:28:23 +07:00

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