All notable changes to this project will be documented in this file.
New release
- No Change.
- No Change.
New release
- No Change.
- No Change.
New release
- No Change.
- No Change.
New release
- No Change.
- No Change.
New release
- No Change.
- No Change.
- No Change.
- No Change.
- Row update with a bit broken. Users can now set row values equal to null with JSON null value.
- Users can also now update any individual row value, previously rows with not "null" would set "required" and would mean that updates would also require said values.
- No Change.
- No Change.
- Initialization creates roles, when trying to create roles for other tenants we would crash. Now we have a soft fail with better logging.
- No Change.
- No Change.
- Changed search and order parsing so they raise Exceptions, previously they did not and they would get muffled, errors are now converyed to user verbosely.
- Fixed syntax error in one test.
- No Change.
- Added materialized views, accessible by using
materialized_view_raw_sql
when creating views with the normal view endpoints. - Added refresh materialized views endpoint.
/v3/pgrest/manage/views/<view_id>/refresh
, will complain if the view wasn't created withmaterialized_view_raw_sql
. - Added healthcheck
- Previously a row in the manage_views table could not actually have a view in the database so when deleting it was impossible to get rid of the dangling manage_views row entry for the view. That is fixed as the query won't throw an error when view does not exist in database (applies for materialized views as well)
- No Change.
- DB Migrations at startup now start from api container during main exec. No longer a need for init container. Better stdout prints.
- entry.sh file takes care of migration only happening once per instance of API (even if there are 6 workers)
- Added entry.sh, added db_init.py, updated Dockerfile, Makefile, Docker-Compose
- No Change.
- No change.
- Bumping tag for Tapis 1.2.0 release.
- No Change.
- No Change.
- Full 1.1.0 release of what was in 1.0.3.
- Replaced pycommon with tapisservice and tapipy (w/plugins). Now based off flaskbase-plugins image.
- No Change.
- Where parameters for tables and views are changed to match search spec.
- No longer
where_col_one=val
format. Nowcol_one.eq=val
.
- No longer
- Changed how serial data type works. Users can now specify
serial_start
andserial_increment
in table definition to modify the type. - Changed how puts to
manage/table/table_id
work. Old methods are gone. - Views and tables now default to having no return limit (previously row limit of 10).
- Added support for
raw_sql
input when creating table views. This allows admins only to have greater view customization. - Added support for bulk row posts to
data/table_url
. Keeps single dictionary inputs, but also allows lists of dictionaries (rows) as input. - Where parameters for tables and views are changed to match search spec.
- No longer
where_col_one=val
format. Nowcol_one.eq=val
. - Added support for
.eq
,.neq
,.like
,.nlike
,.gt
,.gte
,.lt
,.lte
,.between
,.nbetween
,.in
, and.nin
.
- No longer
- Changed how serial data type works. Users can now specify
serial_start
andserial_increment
in table definition to modify the type.serial_start
andserial_increment
both default to 1.- Now using a Postgres 10+ identity data type to make the sequence possible.
- Added lots of operations to puts
manage/table/table_id
work. Meaning updates to tables are possible.- Check docs, new operations are
root_url
,table_name
,comments
,endpoints
,column_type
,add_column
,drop_column
,drop_default
, andset_default
. - Meaning no more having to delete and recreate tables.
- Check docs, new operations are
data_utils
are now more universal.do_transaction
and the like are functionalized for ease-of-use/updates.- Rearranged dockerfile for faster compilations. (Code after package initialization)
- Service now grants all neccessary roles in enviroment, across tenants, at startup.
- Updated PgREST spec with newest features.
- New tests for all features.
- Added better error messages for unique constraint names that collide during table creation.
- Fixed view names and table names colliding in a tenant.
- Spec operationIds changed for readability. The following are the changes, "oldID: newID":
- get_table: get_manage_table
- list_in_collection: get_table
- create_in_collection: add_table_row
- update_multiple_in_collection: update_table_rows
- get_in_collection: get_table_row
- update_in_collection: update_table_row
- delete_in_collection: delete_table_row
- Changed foreign key table definition variables. Now requires
on_event
andevent_action
rather than settingon_delete
to event action. This allows forON UPDATE
event along withON DELETE
event.
- Tenants are now completely separated with different postgres schemas.
- New role creation endpoints for users in
PGREST_ROLE_ADMIN
role. - Expanded foreign key usability. Now allow new event type. Also allow new event actions.
- Added
PGREST_USER
role that can only get views that the user's permissions allow for.
- Documentation fixed to point towards ReadTheDocs, which is now up to date with all new table, view, and role definitions.
- Updated Django and DjangoFlaskbase requirements to avoid security issues.
- Updated dependencies to pass Github Dependabot alerts.
- Updated PgREST spec, previously out-of-date, now organized and verbose.
- ManageViews/ManageTables/ManageTableTransitions are now stored in each tenant, no longer service wide
- New folder containing tenant migration,
database_tenants
, create tenants func now stored there.
- PgREST tenant seperation. New migrations, now using Django Tenants back-end. Switched Django Tenants to take Tapis v3 tenant_id.
- Added new role endpoints to allow for
PGREST_ROLE_ADMINS
above to create and manage roles for users.
- Previously table_ids were serialized service wide, this meant that users could notice that there were more tables than the table view showed. Calling these tables resulted in an error, but with tenant seperation it is no longer an issue.
- No Change.
- Initial 1.0.0 changelog.
- No Change.