{"repo":"supabase/splinter","free":true,"listed":false,"github":"https://github.com/supabase/splinter","clone":"git clone https://github.com/supabase/splinter.git","description":"Supabase Postgres Linter: Performance and Security Advisors","language":"PLpgSQL","stars":267,"topics":["linter","postgres","supabase"],"license":null,"category":"databases-storage","readme_excerpt":"splinter (Supabase Postgres LINTER) --- Documentation : https://supabase.github.io/splinter Source Code : https://github.com/supabase/splinter --- Splinter maintains a set of lints for Supabase projects. It uses SQL queries to identify common database schema issues. Some lints are general purpose for Postgres projects while others are specific to Supabase features storing their data in Postgres e.g. auth and storage. Usage If you are only interested in linting a project, a single query containing the latest version of all lints is availble in splinter.sql in the repo root. API-exposure lints and pgrst.db schemas Several lints (e.g. auth users exposed , materialized view in api , foreign table in api ) only report objects that are reachable through the Data API — that is, objects in a schema listed in the pgrst.db schemas setting. PostgREST sets this value at runtime, but it is not present in a plain psql connection. When pgrst.db schemas is unset, these lints default to the public schema only . If your project exposes additional schemas, set the value to match your PostgREST config before running the lints so those schemas are covered too: Without this, exposures in non- public schemas will not be reported. Lint Interface Each lint creates a view that returns a common interface. The interface is: - name (text) not null -- Name of the lint - title (text) not null -- Human readable title of the lint - level (text) not null -- The level of issue. One of ERROR/WARN/INFO - facing ","default_branch":null,"files":null,"tree":[],"storefront":"/r/supabase","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/supabase/splinter/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}