Rls Ts Save Abandoned

Helps you write Supabase Row Level Security (RLS) in Typescript.

Project README

๐Ÿงถ Supabase RLS in Typescript

Watch the video Actual Image

๐Ÿ“œ Helps you write Supabase Row Level Security (RLS) in Typescript. (* plv8)


๐Ÿš€ Usage

New website opned!!: https://supabase-rls.up.railway.app (Web Source)

1. Clone And Install

git clone https://github.com/hmmhmmhm/rls-ts.git
cd ./rls-ts
npm install

2. Update Project Types

Please read the guide and follow it to read the type of Supabase project. Generating Supabase Types

3. Create or Modify File

Create or modify the example.ts file in the ./src directory.

export default createPolicy<TABLE_NAME>((context) => {
  // TODO: Your policy logic
  return true;
});

Below is an example of use.

export default createPolicy<"channels">((context) => {
  // * Allow only creators to update their own channels
  return context.row.created_by === context.auth.uid();
});

4. Build

After entering the command below, a file is created, such as build/example.plv8.sql.

npm run build

Copying the translated script and pasting it into the desired policy within Supabase takes effect. (Below is an example of sql file.)

-- example.ts.plv8.sql
boolean as $$
function createPolicy(cb) {
    cb({
        row: globalThis,
        function: globalThis,
        auth: globalThis.auth,
        plv8: globalThis.plv8
    });
}
return createPolicy(function(context) {
    // Allow only creators to update their own channels
    if (context.row.created_by === context.auth.uid()) return true;
});
$$ language plv8;

โœ… License

MIT Licensed.

Open Source Agenda is not affiliated with "Rls Ts" Project. README Source: hmmhmmhm/rls-ts
Stars
26
Open Issues
0
Last Commit
11 months ago
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating