Auto DB backup/restore on certain non-idempotent tasks
Database backups can now be stored on S3
API_Data spec datasets now can be stored on S3
UI_Data spec datasets now can be stored on S3
Database restore
Database schema migrations
Modifications to Dataset model
Dev environment management: changed admin page to display 'dev' environment info if env is dev, and made updates to sync status of datasets asynchronously (WIP)
Can now list API_Data and ui_data stored on S3 and locally
RESTful query syntax: Added basic functionality to allow filtering of a resource using Python syntax or Pythonic syntax. Will need to implement some security measure, (e.g. make sure multiple statements cannot be passed using ;, disallow imports, etc). This allows for a very strong query language, specially if certain Python functions are pre-loaded into the query runtime (things like max(), min(),avg())
2. General updates
New API dataset uploaded, tested, and deployed
Dataset integration automation: format Stata '.' to empty value if present in a numeric type field (WIP)
Admin page: Active dataset information now fetched asynchronously from the client, rather than server
Dynamic routing: Basic implementation for dynamic routing to access model resources (e.g. Dataset) that have not yet had a static route created. Planning to do more of this in the future because it is DRYer.
Update to docs
3. Developer updates
1. Dependencies
Added dependency python-dotenv to use '.env' files
Added dependency boto3 for working with AWS S3 for backup storage
Added dependency'psutil for server management; stop/restart server
Migrated deprecated dependency psycopg2 to replacement psycopg2-binary
2. QA
More test cases
Numerous error messaging additions and improvements
3. Refactors
Moved all routes into subdirectory 'routes'
Split up root routes into different modules
Moved several things from init to: config, tasks, routes/root_routes, and utils
4. Other
Removed sqlite alternative DB implementation
Reorganized gitignore, in order of: folders, glob patterns, static files
Linting
1. Bugfixes
Fixed a bug in which, if there were translations entries that were not found anywhere else in the dataset, it would throw an error.
Fixed bug in which some database related error handling was not correctly handling some types of intended errors
Fixed issue in which caching would not work
Fixed issue where Flask environment read as 'production' even though it appeared to be set as 'development'
1. New features
;
, disallow imports, etc). This allows for a very strong query language, specially if certain Python functions are pre-loaded into the query runtime (things likemax()
,min()
,avg()
)2. General updates
Dataset
) that have not yet had a static route created. Planning to do more of this in the future because it is DRYer.3. Developer updates
1. Dependencies
python-dotenv
to use '.env' filesboto3
for working with AWS S3 for backup storage'psutil
for server management; stop/restart serverpsycopg2
to replacementpsycopg2-binary
2. QA
3. Refactors
4. Other
1. Bugfixes