56 lines
1.7 KiB
SQL
56 lines
1.7 KiB
SQL
/*
|
|
# Create logs table for microservice
|
|
|
|
1. New Tables
|
|
- `logs`
|
|
- `id` (bigint, primary key) - Epoch time identifier
|
|
- `body` (text) - First 200 characters of log message
|
|
- `project` (text) - Project name, defaults to "Project 1"
|
|
- `type` (text) - Log type, defaults to "Info"
|
|
- `date` (date) - Date of the log entry
|
|
- `avatar_src` (text) - Avatar source URL, defaults to "/rectangle-15.png"
|
|
- `owner` (text) - Owner of the log entry, defaults to "N/A"
|
|
- `description` (text) - Full log message
|
|
- `created_at` (timestamptz) - Timestamp when record was created
|
|
- `status` (text) - Status of the log entry, defaults to "Pending"
|
|
|
|
2. Security
|
|
- Enable RLS on `logs` table
|
|
- Add policy for authenticated users to insert and read logs
|
|
*/
|
|
|
|
CREATE TABLE IF NOT EXISTS logs (
|
|
id bigint PRIMARY KEY,
|
|
body text NOT NULL,
|
|
project text NOT NULL DEFAULT 'Project 1',
|
|
type text NOT NULL DEFAULT 'Info',
|
|
date date NOT NULL,
|
|
avatar_src text NOT NULL DEFAULT '/rectangle-15.png',
|
|
owner text NOT NULL DEFAULT 'N/A',
|
|
description text NOT NULL,
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
status text NOT NULL DEFAULT 'Pending'
|
|
);
|
|
|
|
ALTER TABLE logs ENABLE ROW LEVEL SECURITY;
|
|
|
|
-- Policy to allow authenticated users to insert logs
|
|
CREATE POLICY "Allow authenticated users to insert logs"
|
|
ON logs
|
|
FOR INSERT
|
|
TO authenticated
|
|
WITH CHECK (true);
|
|
|
|
-- Policy to allow authenticated users to read logs
|
|
CREATE POLICY "Allow authenticated users to read logs"
|
|
ON logs
|
|
FOR SELECT
|
|
TO authenticated
|
|
USING (true);
|
|
|
|
-- Policy to allow service role to perform all operations
|
|
CREATE POLICY "Allow service role full access"
|
|
ON logs
|
|
FOR ALL
|
|
TO service_role
|
|
USING (true); |