bf711d5c9b
Adding function to produce a great circle between two points. |
||
---|---|---|
.. | ||
CartoDB-PLpgSQL.md | ||
CartoDB-user-table.md | ||
cartodbfy-requirements.rst | ||
CDB_ColumnNames.md | ||
CDB_ColumnType.md | ||
CDB_GreatCircle.md | ||
CDB_HeadsTailsBins.md | ||
CDB_HexagonGrid.md | ||
CDB_JenksBins.md | ||
CDB_MakeHexagon.md | ||
CDB_QuantileBins.md | ||
CDB_RectangleGrid.md | ||
CDB_SetUserQuotaInBytes.md | ||
CDB_TransformToWebmercator.md | ||
CDB_UserTables.md | ||
CDB_XYZ_Extent.md | ||
CDB_XYZ_Resolution.md | ||
README.md |
Contents
- CartoDB-user-table
- CartoDB-PLpgSQL
- CDB_ColumnNames
- CDB_ColumnType
- CDB_HeadsTailsBins
- CDB_HexagonGrid
- CDB_JenksBins
- CDB_MakeHexagon
- CDB_QuantileBins
- CDB_RectangleGrid
- CDB_SetUserQuotaInBytes
- CDB_TransformToWebmercator
- CDB_UserTables
- CDB_XYZ_Extent
- CDB_XYZ_Resolution
The CartoDB PostgreSQL extension is a module to load into each CartoDB user database to perform cartodb-specific security and functionality checks.
Checks
No user other than the superuser should be allowed to change statement_timeout
for the session (SET statement_timeout disallowed).
User tables need to match certain structure criteria (See CartoDB-user-table) so the extension should provide a mean to enforce such structure everytime an attempt to change structure is encountered.
Events
The events we want some function to be called upon are:
event | arguments to handler function | function duty | OK* |
---|---|---|---|
SET variable | name of variable | forbid changing some vars | |
RENAME table | old and new name + oid of the table | flush cache | |
ADD/DROP/ALTER column | oid of the table | flush cache, cartodbfy, upd meta | Y |
DISABLE/DROP trigger | oid of table, name of trigger | cartodbfy or forbid | |
DROP table | oid of the table | flush cache and metadata | Y |
CREATE table | oid of the table | cartodby, upd metadata | Y |
GRANT | oid of table, privilege, role | flush cache, upd metadata | |
REVOKE | oid of table, privilege, role | flush cache, upd metadata |
- event available by installing https://github.com/CartoDB/pg_schema_triggers
At this stage we don't need more than this, but the number of events and the number of arguments passed to the handler function may expand in the future, so the extension should be written in a way to easily allow that.
Some of the handler will need to act after the statement is completed (CREATE TABLE, for example).