b46dac66a3
chore(frontend): resolve imports from src to avoid harder-to-read relative imports
2023-12-21 23:47:49 -05:00
4528266f3b
Merge pull request #65 from mcataford/refactor/filelist-view
...
refactor: refactor filedetails + filelist into filelistview wrapper
2023-12-21 23:34:30 -05:00
81e83ddb66
refactor: refactor filedetails + filelist into filelistview wrapper
2023-12-21 23:31:54 -05:00
f3a94011f5
Merge pull request #64 from mcataford/feat/better-frontend-routing
...
feat: cleaner frontend routing
2023-12-20 23:33:26 -05:00
2e6c03146c
feat(fe-routing): using router in application root
2023-12-20 23:01:13 -05:00
738ecbf554
feat(frontend): implement react-based routing components
...
feat(fe-routing): add pattern support to the router
docs(fe-routing): summary README for the router module
test: update mock data to match new Location prop pattern
2023-12-20 23:01:11 -05:00
88cad1e51f
Merge pull request #62 from mcataford/fix/taskfile-task-name-typo
...
fix(taskfiles): resolve naming typo in be:docker:start deps
2023-12-19 20:01:43 -05:00
48ded34b2f
fix(taskfiles): resolve naming typo in be:docker:start deps
2023-12-19 19:58:26 -05:00
renovate[bot]
e2c207438c
chore(deps): update dependency anyio to v4.2.0 ( #58 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-18 05:14:56 +00:00
renovate[bot]
b5d6420ee4
chore(deps): update actions/download-artifact action to v4 ( #56 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-18 05:13:08 +00:00
renovate[bot]
b2eb7c0cdc
chore(deps): update actions/upload-artifact action to v4 ( #57 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-18 05:11:14 +00:00
49aab23c85
Merge pull request #61 from mcataford/build/reduce-taskfile-frontend-complexity
...
refactor(taskfiles): remove redundant path to frontend
2023-12-18 00:09:27 -05:00
f8b5076e2e
refactor(taskfiles): remove redundant path to frontend
2023-12-18 00:07:02 -05:00
5874c00685
Merge pull request #60 from mcataford/build/reduce-taskfile-backend-complexity
...
build: reduce taskfile backend complexity
2023-12-18 00:05:39 -05:00
35ca5ed377
refactor(taskfiles): consolidate start+stop, add namespace for docker tasks
2023-12-18 00:02:04 -05:00
b5b8213be3
refactor(taskfiles): remove redundant paths and venv entries in backend taskfile
2023-12-18 00:02:04 -05:00
c681c65c68
refactor(taskfiles): extract lint+format logic into script, trim taskfile
2023-12-18 00:02:04 -05:00
89186e5c30
refactor(taskfiles): extract build logic out of taskfile, remove migration deadcode
2023-12-18 00:02:00 -05:00
0582f9877e
refactor(taskfiles): extract start logic out of taskfile
2023-12-18 00:01:26 -05:00
6b49313e3f
Merge pull request #59 from mcataford/ci/no-build-in-ci
...
ci(backend): stop building dev images in CI
2023-12-16 21:10:19 -05:00
90ccb26741
ci(backend): stop building dev images in CI
2023-12-16 21:08:19 -05:00
c2b3e438f5
build(python): python 3.12.x ( #55 )
2023-12-10 16:41:54 -05:00
renovate[bot]
1406ac1364
chore(deps): update actions/github-script action to v7 ( #48 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-10 21:13:10 +00:00
renovate[bot]
7c89eb1b67
chore(deps): update dependency django to v4.2.8 ( #51 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-10 21:11:20 +00:00
renovate[bot]
0528807fb8
chore(deps): update actions/setup-node action to v4 ( #49 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-10 21:09:39 +00:00
renovate[bot]
9ad0def89c
chore(deps): update actions/setup-python action to v5 ( #53 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-10 21:07:54 +00:00
renovate[bot]
38086ce408
chore(deps): update dependency typing-extensions to v4.9.0 ( #54 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-10 16:05:33 -05:00
renovate[bot]
5fedafd64f
chore(deps): update actions/checkout action to v4 ( #45 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-26 21:52:54 -05:00
renovate[bot]
415a580ca5
chore: Configure Renovate ( #43 )
...
* Add renovate.json
* build(renovate): ignore frontend dependencies until explicitly ready
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Marc Cataford <mcat@riseup.net>
2023-11-26 21:50:28 -05:00
715947465d
build(backend-deps): update all dependencies ( #42 )
2023-11-26 21:41:59 -05:00
0242b2d5ff
refactor: FastAPI -> Django migration ( #41 )
...
* build(backend): set up Django 4.2 scaffolding
* feat: porting files API
feat: file ownership basics
feat: gaps in test compatibility
* test: port files API tests
* fix(tests): test database port 5432>5431 to avoid conflict with application database
* feat(auth): LoginView, middleware to handle JWT bearer tokens
* refactor: clean up old FastAPI logic, temporary utils
* refactor: resolve LoginView linting
* feat: user creation + test coverage
* test: session creation coverage
* refactor: hoist secrets, replace placeholders
* chore: clear linting errors+warns
2023-11-26 21:34:09 -05:00
a737e954aa
build(deps): refactor dependency metadata to live in pyproject.toml ( #40 )
...
* build(deps): refactor dependency metadata to live in pyproject.toml
* build(test): wait once after successful status to ensure DB is ready
2023-11-16 00:36:58 -05:00
23248d0277
feat(backend): file permissions and ownership ( #38 )
...
* feat(backend): file permissions and utilities
* feat(backend): file upload/list permissions
* refactor(backend): class-based middleware to play nicer with tests
* test(backend): async fixtures + proper foreign key cascade
* fix(backend): temporarily bypass auth
2023-08-28 05:21:49 +00:00
d31f73c66a
build(backend): start+stop+logs command cleanup ( #37 )
2023-08-27 15:56:29 +00:00
37d1a7e4b8
feat(backend): manage user sessions using tokens ( #36 )
...
* build(backend): pyjwt dependency
* feat(backend): middleware + logic to generate and decode tokens
* feat(backend): decorator to ensure logged in user
* fix(backend): adjust auth check decorator and jwt lifetime
* feat(backend): ensure that signature expiration is handled in middleware
* test(backend): base coverage for token generation
2023-08-27 11:33:55 -04:00
992bf1e5e1
build(backend): ensure that migrate settings set host properly ( #34 )
2023-08-26 05:31:22 +00:00
a7d6a6a96d
build(backend): handle test db setup healthcheck and test failures more clearly ( #35 )
...
build(backend): better healthcheck and failure handling in test script
2023-08-26 01:20:55 -04:00
24b6f8245d
refactor(backend): modularize files logic ( #33 )
...
* refactor(backend): consolidate files logic in module
* refactor(backend): move tests to match existing pattern
2023-08-20 15:54:40 +00:00
acdf1ca145
feat(backend): create user + log in implementation ( #31 )
...
* feat(backend): create user table
* build(backend): add argon2-cffi dependency
* feat(backend): basic create user / login implementation
* chore(backend): ignore needless lintrules
* refactor(backend): user api+use cases clean up and docs
* refactor(backend): reorganize into module
* test(backend): login route coverage
* refactor(backend): add request data schemas
* test(backend): refactor client call fixtures
* feat(backend): set up username uniqueness constraint
* test(backend): update coverage for username uniqueness
* chore(backend): missing dunderinit
* chore(backend): linting
2023-08-20 15:42:34 +00:00
16bb6d3afe
docs: user+password storage research documentation ( #30 )
...
* docs: user+password storage research documentation
* docs: label as research instead of arch
* docs: document rename for accuracy
2023-08-19 18:45:58 +00:00
52cef95493
build(backend): ensure that test scripting returns an error code if s… ( #28 )
...
* build(backend): ensure that test scripting returns an error code if steps fail
* build(backend): wait for database to be ready before running migrations
* build(backend): extra sleep after successful healthcheck
* fix(backend): ensure that ci environment expects same DB port as test
* build(backend): better error handling in test script
* build(backend): remove arbitrary sleep
2023-08-19 12:08:24 -04:00
62cb0955d5
fix: trigger ci run if taskfile changes + split basepath env variable… ( #27 )
...
fix: trigger ci run if taskfile changes + split basepath env variables in taskfile
2023-08-19 11:33:18 -04:00
172d70f8d5
perf: avoid redundant bootstrap runs on commands ( #26 )
2023-08-19 15:16:10 +00:00
a34b4e8033
perf(backend): avoid double-reading uploaded file streams ( #25 )
...
* perf(backend): avoid double-reading uploaded file content
* docs(backend): document file upload endpoint
* refactor(backend): hoist uploaded content read + simplify file write block
2023-08-19 15:05:55 +00:00
91e6004956
refactor(frontend): queries > hooks, consolidate useFileMutations ( #24 )
...
* refactor(frontend): queries > hooks, consolidate useFileMutations
* refactor(frontend): extract hook types
* refactor(frontend): extract axios, fix type imports
2023-08-18 21:07:00 -04:00
35b582394c
feat(frontend): file downloads ( #23 )
...
* feat(frontend): file downloads flow
* refactor(frontend): downloadFile to fetches hook
* test(frontend): coverage for FileList downloads
* test(frontend): downloads through FileDetails
* test(frontend): ensure that DOM clicks are mocked in jest
* docs(frontend): add details on file fetches hook
2023-08-18 19:01:24 -04:00
b77574e596
refactor(frontend): fetch to axios ( #22 )
...
* refactor: replace fetch with axios
* build(frontend): update test command to allow cli args passthrough
2023-08-18 05:24:12 +00:00
6965ce6ec4
chore: add AGPLv3 license
2023-08-17 21:20:02 -04:00
70224d0f28
feat(backend): endpoint to download files by id ( #21 )
...
* feat(backend): endpoint to download files by id
* test(backend) coverage for file downloads
2023-08-17 23:21:08 +00:00
5010da18f5
feat(frontend): add delete functionality ( #19 )
...
* feat(frontend): add delete functionality
* test(frontend): coverage for deletion buttons
2023-08-17 22:59:22 +00:00