All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Replaced OAS 3.x schema support from deprecated DRF/DJA built-in to use drf-spectacular and drf-spectacular-json-api
- Routine updates to current Python and Django versions.
- Add Grades model
- Add some incomplete AWS API Gateway/Lambda/Aurora Serverless RDS deployment documentation.
- Includes configuring AWS API Gateway to do preliminary OAuth2 scope validation.
- Attempt at Jenkins configuration for our local CI/CD. Currently not working.
- Experiment with a non Model-based endpoint. (Incomplete)
- Extende DOT with swappable dependencies for OIDC.
- Remove sphinx documentation, instead using mkdocs.
- Bump to Django 4.x which requires a new minimum Python version.
- oauth: different python versions return a different type for compiled re: use isinstance.
- Add use of local django-oauth-toolkit as an optional OAuth2/OIDC Authorization Server
- Add OAS schema security objects for oauth-dev.cuit.columbia.edu (local Vagrant PingFederate server)
- Experiment with backstage.io for project/API documentation
- Reimplement OIDC claims checking for either an external AS or internal DOT 1.5.0 OIDC server
- Change required SLA scope to
demo-djt-sla-bronze
- Switch documentation generation from Sphinx to Mkdocs (for backstage.io)
- Update to OAS 3.0 schema generation using DRF 3.12.1 and DJA 4.0.0
- Automated openapi schema generation
- Properly prevent a non-authenticated user from doing a write
- Use of OIDC 2.0 Claims for view permission
- Updated required scopes to include an SLA scope.
- Use of Microsoft SQL Server.
- (temporarily) removed OAS 3.0 schema document generation
- Switched to all-python PyMySQL library.
- Automated OAS 3.0 schema document generation
- Added some model field validators
jsonapi_demo_cli
command-line demonstration client.- docker build
- OAS 3.0 schema
- Added Swagger-UI at /openapi per this article
- browseable api for courses raised an exception when related course was none.
- upgrade to Django 2.1.7 due to CVE-2019-6975.
GET /people/?filter[search]=...
500 error.
- Added a Person model
- Documentation is now available at https://columbia-it-django-jsonapi-training.readthedocs.io
- Instructor model is now OneToOne with Person model.
- I misunderstood one of the SQL Server errors as complaining about a column name when it wasn't. This is fixed with migration 0007....
- sphinx RTD configuration:
- Run
tox
and thenopen docs/build/html/index.html
in your local browser. - MyApp API autodoc.
- Run
- No longer need
myapp/overridden_migrations
(see Fixed).
- Split outline.md into individual chapter files: See index.md.
- created PR
for
django-pyodbc-azure
that elminates need for Microsoft SQL Server workarounds.
- Workarounds for Microsoft SQL Server
- TextFields can't be unique. Use Charfield.
- "name" is a reserved word. Change the
db_column
so that we can keep using it in our code. - Can't change AutoField to BigAutoField.
- Non-ANSI SQL implementation of NULL UNIQUE See the docs.
- Instructor Model with ManyToMany relationship to CourseTerm. See docs
- Document Modifying our DJA Project with
CourseTerm
fix as the example.
- Make
CourseTerm.term_identifier
unique, char(14) and fix fixtures, etc. to match.
- Initial release