Commit graph

67 commits

Author SHA1 Message Date
2c5edd1b0f feat: default org perm grant grants 2026-06-17 09:32:12 +01:00
662b9c8e26 feat: permission permissions
All checks were successful
ci / lint_and_test (push) Successful in 16s
Orgs can only grant permissions to groups that they themselves have been granted access to.

Super admin bypasses not added, flagged as todos.
2026-06-16 13:51:31 +01:00
0a867c9c90 minor: relationship key definitions to strings
Using the objects directly was causing type checking issues. Strings are equivalent so no functional change.
2026-06-16 11:19:22 +01:00
3e4f68dd9b fix: unique violations
Directly using Psycopg error instead of the error code.

Also, raise all other IntegrityErrors instead of silently dropping them.
2026-06-15 14:38:14 +01:00
3433ba39ee feat: default iam group on org join
All checks were successful
ci / lint_and_test (push) Successful in 15s
Users joining an org are given the `Default User` IAM permission group automatically.
2026-06-15 11:35:01 +01:00
09d2fbafdc feat: default iam groups on org create
Root user is given the `Default Users` and `Root User` permission groups on org creation.
2026-06-15 11:26:22 +01:00
43ed768f66 feat: minimum lengths for names
All checks were successful
ci / lint_and_test (push) Successful in 15s
2026-06-12 15:58:20 +01:00
092e12a892 feat: org status check moved
Accessing endpoints as super admin no longer requires the org to be approved.
2026-06-12 14:50:32 +01:00
c94c26f2a6 feat: blocked orgs cannot access any endpoints 2026-06-11 16:39:32 +01:00
37a3972d04 feat: questionnaire only modifiable before submission 2026-06-11 16:35:53 +01:00
5d122a7690 feat: fully defined response code descriptions
Only done on three endpoints. This is a lot of repeated text.
2026-06-11 16:02:51 +01:00
c2e035dede feat: more accurate status codes
403 Forbidden replacing many 401 Unauthorized usages.
2026-06-11 14:58:05 +01:00
8925280f96 feat: questions union
Allows responses to include questionnaire questions of multiple versions
2026-06-11 13:38:14 +01:00
0a7f9092c7 feat: questionnaire shape update 2026-06-11 12:24:36 +01:00
294baadcb7 feat: more ids returned on endpoints
All checks were successful
ci / lint_and_test (push) Successful in 14s
Issue: #23
2026-06-10 13:48:59 +01:00
bdba903db1 feat: deleted owned org endpoint
All checks were successful
ci / lint_and_test (push) Successful in 14s
2026-06-10 10:15:27 +01:00
3b82025abb feat: get org response mirrors get user orgs structure
All checks were successful
ci / lint_and_test (push) Successful in 13s
2026-06-10 09:49:05 +01:00
607f736453 feat: user ids return on get org users 2026-06-09 14:42:37 +01:00
4ff9edf6d1 feat: schema mixins moved to project level
Resolves circular dependency issues.
2026-06-09 13:17:31 +01:00
e9fe405e06 feat: add org user by id requires su
Part of the "sensical user adding" changes.
2026-06-09 13:07:43 +01:00
c452c6c0d5 feat: delete endpoint queries
Some checks failed
ci / lint_and_test (push) Failing after 5s
Delete endpoints do not fully support bodies. Queries used instead.

Tests added.

Resolves #20
2026-06-09 09:29:14 +01:00
e9b272811f feat: all unique constraints tested 2026-06-08 16:05:20 +01:00
c689ac1e10 minor: ruff formatter
All changes are either:
- Correcting tabs
- Adding/removing line breaks
- Adding trailing commas
2026-06-08 15:31:37 +01:00
76ef862d40 feat: org id in get org response
Some checks failed
ci / lint_and_test (push) Failing after -2s
2026-06-08 14:16:45 +01:00
903b24d17d ruff: config and initial run 2026-06-08 10:45:38 +01:00
f600664789 tests: improved coverage 2026-06-05 09:10:55 +01:00
af680dbc38 feat: get/patch contact includes org info
Resolves #19
2026-06-03 09:45:48 +01:00
8a9f03ee0b feat: get users includes org info 2026-06-03 09:38:54 +01:00
7833386350 feat: patch questionnaire doesn't overwrite with none 2026-06-03 09:29:06 +01:00
1845012cb7 feat: get org endpoint returns questionnaire 2026-06-02 16:36:56 +01:00
81a4cc6cca feat: org router endpoint cleanup
`/id/` removed from GET
Trailing `/` removed from POST and DELETE
2026-06-02 16:36:11 +01:00
e4559b8ee4 minor: >0 check on org ids in bodies 2026-06-02 13:34:05 +01:00
fc6990c43d fix: patch org contact 2026-06-01 14:27:50 +01:00
d85b0d6cd6 fix: patch org root
Expanding the org model does not expand calculated properties
2026-06-01 13:07:42 +01:00
53e01033c4 docs: org endpoint docstrings 2026-05-29 10:40:24 +01:00
8e8c00c34c feat: root user verification
New root users must already be members of the organisation.
2026-05-29 09:52:34 +01:00
987a050b4b feat: org router response models 2026-05-29 09:44:24 +01:00
d404ab3ea3 fix: preapproval endpoints with new root path 2026-05-29 09:24:51 +01:00
90943c3d18 docs: org router query descriptions
Issue: #13
2026-05-28 16:52:10 +01:00
6a90e03d40 docs: org router tag metadata
Issue: #13
2026-05-28 16:46:44 +01:00
d3bdfe8469 docs: org router decorators
Issue: #13
2026-05-28 16:43:39 +01:00
33e78d4a9b docs: org docstrings
issue: #13
2026-05-28 14:23:36 +01:00
82c2b13a7f minor: contact endpoints allowed preapproval 2026-05-28 14:05:31 +01:00
7a0f43d34f minor: org schema nomenclature 2026-05-28 13:32:59 +01:00
9efd86cd5f feat: org status check in auth dependencies
There is a hardcoded list of methods/endpoints for which the status check isn't done. i.e. the endpoints which need to be accessed before the org is approved.

Resolves #11
2026-05-28 10:56:45 +01:00
4bf5933376 minor: org pydantic model cleanup
Contact models also updated since they are now fully incorporated into orgs.

Issue #9
2026-05-27 16:51:46 +01:00
1ed0cfb38c feat: handling for integrity errors
Resolves: #7
2026-05-27 16:26:34 +01:00
fc835dc982 feat: missing dependency injections on org endpoints 2026-05-27 15:59:12 +01:00
689443c05e feat: auth requirements to service endpoints 2026-05-27 15:45:31 +01:00
66c2a71c8a feat: auth requirements to org endpoints 2026-05-27 15:42:53 +01:00