Pyrseas
Pyrseas copied to clipboard
Is there any support for row level security?
It seems like it is ignored...
Indeed. We never looked at it and AFAICR nobody brought it up until now.
This would be really great to have for people who are interested in using a "Postgres-first" style of development, for example with postgraphile
EDIT: I might be interested in implementing this as a first contribution if a contributor thinks that might be a good idea / would be willing to point me in the right direction
In order to start adding support for row level security, you could do somewhat as follows:
- create a table with some row level security feature.
- examine the output of
dbtoyamlfor that table and compare it to the output ofpg_dumpto identify what's missing in the former. - research what PG catalogs hold the data that is missing, e.g.,
pg_seclabel. - edit code in
pyrseas/dbobject, e.g.,column.pyto fetch (querystatic methods) the needed data into the internal structures and map it for YAML output (to_mapmethods). Or if you prefer a TDD route, first write a test for the desired output (e.g., intests/dbobject/test_column.py). - think about the SQL that would need to be generated by
yamltodbwhen it found the attributes added in step 4 in an input YAML and no corresponding attributes in a target database catalogs (both of these represented in the Pyrseas internal structures). - create test and/or code to generate the SQL.
- rinse and repeat for other row level security features.
Hope this helps.