cba1f9927e
feat(frontend): segment clips by time range ( #57 )
...
CI / Maven unit tests (push) Successful in 15s
CI / Build and push images (push) Successful in 41s
CI / Deploy to server (push) Successful in 7s
Resolves #41
Reviewed-on: #57
2026-10-17 22:21:59 +01:00
29a7573f5c
fix(frontend): clips & vod pages briefly showing "No Clips" on load ( #56 )
...
CI / Maven unit tests (push) Successful in 16s
CI / Build and push images (push) Successful in 42s
CI / Deploy to server (push) Successful in 7s
Resolves #42
Reviewed-on: #56
2026-10-17 22:16:19 +01:00
2818d33dd5
feat(frontend): mute dark mode colours to reduce cold feeling
CI / Maven unit tests (push) Successful in 18s
CI / Build and push images (push) Successful in 1m48s
CI / Deploy to server (push) Successful in 16s
2026-10-17 22:05:48 +01:00
34b150b77e
feat(frontend): refresh token handling ( #54 )
...
CI / Maven unit tests (push) Successful in 16s
CI / Build and push images (push) Successful in 2m12s
CI / Deploy to server (push) Successful in 26s
Reviewed-on: #54
2026-10-16 20:57:02 +01:00
34c4072c5b
test(security): user & token services tests ( #53 )
...
CI / Maven unit tests (push) Successful in 15s
CI / Deploy to server (push) Has been cancelled
CI / Build and push images (push) Has been cancelled
Reviewed-on: #53
2026-10-16 20:56:22 +01:00
222b0b60f7
feat(security): add refresh token capability to API ( #52 )
...
CI / Maven unit tests (push) Successful in 15s
CI / Build and push images (push) Has been cancelled
CI / Deploy to server (push) Has been cancelled
## Add backend refresh tokens
Adds rotating server-side refresh tokens so the access token can be short-lived (5m) without forcing frequent re-login.
- New `POST /api/v1/users/refresh` exchanges the `refreshToken` cookie for a new refresh token and JWT
- Each login starts a token family; reusing a used token after the 5s grace period revokes the whole family
- Logout revokes the family; an hourly job deletes dead families
- Google ID token verification extracted into `GoogleVerifierService`; config moved to a validated `AuthProperties`
- Unauthenticated requests now return 401 instead of 403
- Migration `V2__refresh_tokens.sql` adds `token_families` and `refresh_tokens`
**Breaking changes**
- Cookie `token` renamed to `accessToken` (existing sessions are logged out)
- `/login` and `/refresh` no longer return the JWT in the body, only `{ accessTokenExpiresIn }`
- `jwt.secret.key` / `jwt.expiration` replaced by `app.security.*`; `JWT_SECRET_KEY` must be 32+ chars
- Frontend must call `/refresh` on 401 or before the access token expires
Reviewed-on: #52
2026-10-16 20:56:02 +01:00
f1e28780f0
chore(db): remove flyway baseline migration property
CI / Maven unit tests (push) Successful in 14s
CI / Build and push images (push) Successful in 1m33s
CI / Deploy to server (push) Successful in 9s
2026-09-29 19:36:22 +01:00
daa6c04f76
chore(db): add flyway migration tool ( #48 )
...
CI / Maven unit tests (push) Successful in 14s
CI / Build and push images (push) Successful in 4m1s
CI / Deploy to server (push) Successful in 24s
Reviewed-on: #48
2026-09-29 19:26:45 +01:00
bd3d99e801
fix(segment-concat): out-of-bounds exception during media concat
...
CI / Maven unit tests (push) Successful in 1m4s
CI / Build and push images (push) Has been skipped
CI / Deploy to server (push) Has been skipped
Caused by the duration exceeding 1, which caused CommandRunner to throw.
2026-09-16 20:59:57 +01:00
7dacb7a53a
feat(frontend): make markers list vertical in stream page ( #46 )
...
CI / Maven unit tests (push) Successful in 13s
CI / Build and push images (push) Successful in 44s
CI / Deploy to server (push) Successful in 9s
Resolves #38
Reviewed-on: #46
2026-09-16 20:11:12 +01:00
d81202f905
fix(streaming): hitches in VoDs & Clips resulting from ffmpeg concatenation ( #44 )
...
CI / Maven unit tests (push) Successful in 14s
CI / Build and push images (push) Successful in 2m8s
CI / Deploy to server (push) Successful in 17s
- Resolves #43
Reviewed-on: #44
2026-09-16 19:49:04 +01:00
9758bb296b
fix(frontend): logout state not shown after JWT expires ( #40 )
...
CI / Maven unit tests (push) Successful in 14s
CI / Build and push images (push) Successful in 57s
CI / Deploy to server (push) Successful in 8s
Reviewed-on: #40
2026-09-06 23:26:07 +01:00
6fa02a34a3
feat(frontend): swap dark-mode brown colours for a black palette ( #39 )
...
CI / Maven unit tests (push) Successful in 13s
CI / Build and push images (push) Successful in 58s
CI / Deploy to server (push) Successful in 13s
Reviewed-on: #39
2026-09-06 19:59:13 +01:00
ccf56f767f
chore: remove default vite readme
CI / Maven unit tests (push) Successful in 18s
CI / Build and push images (push) Successful in 50s
CI / Deploy to server (push) Successful in 18s
2026-09-05 11:11:15 +01:00
7f58bad245
feat(frontend): add dark mode option ( #34 )
...
CI / Maven unit tests (push) Successful in 13s
CI / Build and push images (push) Successful in 48s
CI / Deploy to server (push) Successful in 19s
Resolves #32
Reviewed-on: #34
2026-08-30 17:48:59 +01:00
ec9a982fe9
docs(docstrings): add docstrings to public method interfaces ( #25 )
...
CI / Maven unit tests (push) Successful in 18s
CI / Build and push images (push) Has been skipped
CI / Deploy to server (push) Has been skipped
- Resolves #18
Reviewed-on: #25
2026-08-24 16:02:04 +01:00
38942776df
refactor(frontend): create centralised auth manager ( #24 )
...
CI / Maven unit tests (push) Successful in 14s
CI / Build and push images (push) Has been skipped
CI / Deploy to server (push) Has been skipped
- Resolves #17
Reviewed-on: #24
2026-08-22 21:06:38 +01:00
bf5fe6a35d
build(ci): update site url
CI / Maven unit tests (push) Successful in 14s
CI / Build and push images (push) Has been skipped
CI / Deploy to server (push) Has been skipped
2026-08-21 14:54:21 +01:00
9033261165
feat(clipping): add title requirement check
CI / Maven unit tests (push) Successful in 14s
CI / Build and push images (push) Successful in 48s
CI / Deploy to server (push) Successful in 8s
2026-08-19 18:34:11 +01:00
9e82dc8574
fix(upload): compression job does not begin while unauthenticated ( #22 )
...
CI / Maven unit tests (push) Successful in 13s
CI / Build and push images (push) Successful in 2m30s
CI / Deploy to server (push) Successful in 40s
Resolves #20
Reviewed-on: https://gitea.vodsystem.ddns.net/dylan/vod-system/pulls/22
2026-08-19 18:22:49 +01:00
1c098028ab
perf(frontend): implement thumbnail caching ( #19 )
...
CI / Maven unit tests (push) Successful in 13s
CI / Build and push images (push) Successful in 2m24s
CI / Deploy to server (push) Successful in 13s
- Simply uses the Spring Side cache headers, which permits the browser to cache the thumbnail
- Max cache time of 2 days before re-fetch required
- Closes #13
Reviewed-on: https://gitea.vodsystem.ddns.net/dylan/vod-system/pulls/19
2026-08-18 21:47:47 +01:00
9c6002fe77
fix(no access page): missing mono colour scheme
CI / Maven unit tests (push) Successful in 14s
CI / Build and push images (push) Has been skipped
CI / Deploy to server (push) Has been skipped
2026-08-17 23:13:52 +01:00
2f33101ec3
build(frontend): update docker image to use production env
CI / Maven unit tests (push) Successful in 13s
CI / Build and push images (push) Successful in 27s
CI / Deploy to server (push) Successful in 8s
2026-08-17 23:06:25 +01:00
da38e21935
fix(upload): make entire dropzone clickable to open file picker
CI / Maven unit tests (push) Successful in 14s
CI / Build and push images (push) Successful in 42s
CI / Deploy to server (push) Successful in 8s
2026-08-16 17:22:53 +01:00
3db16cd380
feat(style): update fonts & themes in frontend ( #14 )
...
CI / Maven unit tests (push) Successful in 14s
CI / Build and push images (push) Successful in 4m17s
CI / Deploy to server (push) Successful in 1m9s
Reviewed-on: https://gitea.vodsystem.ddns.net/dylan/vod-system/pulls/14
2026-08-16 16:17:41 +01:00
29bc60d417
fix(streaming): missing HLS segments in edge requests ( #10 )
...
CI / Maven unit tests (push) Successful in 14s
CI / Build and push images (push) Successful in 3m0s
CI / Deploy to server (push) Successful in 16s
Reviewed-on: https://gitea.vodsystem.ddns.net/dylan/vod-system/pulls/10
2026-07-29 18:49:59 +01:00
92cecb1084
chore: remove sql logs from prod
CI / Maven unit tests (push) Successful in 14s
CI / Build and push images (push) Successful in 2m7s
CI / Deploy to server (push) Successful in 12s
2026-07-25 14:31:51 +01:00
ae8f2f33a7
perf(api): add HTTP range requests on media sources ( #9 )
...
CI / Maven unit tests (push) Successful in 20s
CI / Build and push images (push) Successful in 5m14s
CI / Deploy to server (push) Successful in 1m29s
Reviewed-on: https://gitea.vodsystem.ddns.net/dylan/vod-system/pulls/9
2026-07-25 11:06:39 +01:00
74a9d5752d
feat(frontend): improve browser icon
CI / Maven unit tests (push) Successful in 14s
CI / Build and push images (push) Successful in 45s
CI / Deploy to server (push) Successful in 20s
2026-07-13 23:45:56 +01:00
fe25ef05dc
build(ci): improve caching efficiency in ci
CI / Maven unit tests (push) Successful in 15s
CI / Build and push images (push) Successful in 25s
CI / Deploy to server (push) Successful in 5s
2026-07-13 23:39:43 +01:00
339465b417
feat(frontend): change browser icon
CI / Maven unit tests (push) Successful in 15s
CI / Build and push images (push) Successful in 3m19s
CI / Deploy to server (push) Successful in 43s
2026-07-13 23:20:45 +01:00
3a46048b66
build(ci): add auto-deployment
CI / Maven unit tests (push) Successful in 15s
CI / Build and push images (push) Successful in 4m1s
CI / Deploy to server (push) Successful in 44s
2026-07-13 20:35:33 +01:00
740f904d92
Merge pull request 'FFMPEG Classes Unit Testing' ( #8 ) from test/ffmpeg-unit-tests into master
...
Unit Tests / Maven unit tests (push) Successful in 14s
Reviewed-on: https://gitea.vodsystem.ddns.net/dylan/vod-system/pulls/8
2026-07-12 20:00:16 +01:00
e902d54a4d
fix(ci): incorrect url
Unit Tests / Maven unit tests (push) Successful in 2m11s
2026-07-12 19:11:09 +01:00
d621aa3d6a
build(ci): unit test
Unit Tests / Maven unit tests (push) Failing after 45s
2026-07-12 19:08:41 +01:00
f9b055b3b5
test(unit): improve test coverage
2026-07-12 19:06:10 +01:00
bb6f5e7823
test(unit): add Thumbnail and Remux service tests
2026-07-12 18:59:44 +01:00
2408263988
fix(media): propagate async FFmpeg results and failures
2026-07-12 18:49:20 +01:00
688ff541da
test(unit): StreamActionsService tests
2026-07-12 18:11:45 +01:00
07ee112d57
refactor(stream actions): move segment logic into StreamActionsService
2026-07-08 22:17:10 +02:00
fbb5c3ab52
fix(interrupts): metadata service not setting interrupt bit
2026-07-08 11:57:01 +02:00
e1e6fe0046
fix(file size): use Long instead of float
...
Float only stores up to 16 million, and file size is stored in bytes. A video can easily be over 16MB (16 million bytes), therefore Long is needed.
2026-07-07 20:48:37 +02:00
a66b9898e8
test(unit): metadata unit tests
2026-07-07 20:26:23 +02:00
baaf162fee
test(unit): maximum bitrate assertions
2026-07-04 14:06:32 +01:00
d7214ca1bc
test(unit): compression service test
2026-07-02 20:59:13 +01:00
5bebea3f95
refactor(command): inject CommandRunner instead of static
2026-07-02 20:04:04 +01:00
947c8261fd
Merge pull request 'Frontend page for controlling streaming actions' ( #7 ) from feat/frontend-streaming-controls into master
...
Reviewed-on: https://gitea.vodsystem.ddns.net/dylan/vod-system/pulls/7
2026-07-02 19:46:32 +01:00
e0969a1d78
refactor(frontend): split endpoint handling
2026-07-02 19:46:19 +01:00
fe735faba8
feat(api): delete marker endpoint
2026-07-02 19:37:35 +01:00
b8b4d3b05c
feat(frontend): streaming controls page
2026-07-02 19:27:23 +01:00