56 lines
1.7 KiB
MySQL
56 lines
1.7 KiB
MySQL
|
/*
|
||
|
# 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);
|