129 Commits

Author SHA1 Message Date
Beda Schmid
da94a3ecc9 Merge pull request #33 from Dodelidoo-Labs/develop
Adds LLM provider support and config options
0.10.0
2025-11-04 10:31:14 -03:00
Beda Schmid
67c6baf19b Update Readme for v0.10.0
Update readme
2025-11-04 10:27:11 -03:00
Beda Schmid
3af40bc285 Pass API Key fallback value
Seems OpenAI insists on an API key, so lets pass a default value when none is used.
2025-11-04 10:12:20 -03:00
Beda Schmid
bdfaed3896 Adds LLM provider support
### Added
- Support for custom LLM gateways via configurable API base URL and extra headers.
- Settings UI and help text for providing gateway URL and JSON headers, plus environment support.
2025-11-04 09:54:46 -03:00
Beda Schmid
c45a2aeacb Merge pull request #27 from Dodelidoo-Labs/develop
Fixes GitHub 429 on images
2025-10-27 15:20:37 -03:00
Beda Schmid
284e8dcad4 Fixes GitHub 429 on images
by loading the Screenshots from an external domain
2025-10-27 15:19:49 -03:00
Beda Schmid
85d2841e1a Merge pull request #25 from Dodelidoo-Labs/develop
Add Swagger API docs and refactor app init
2025-10-15 14:48:33 -03:00
Beda Schmid
9c16d5da9e Cleanup app init methods 2025-10-15 14:05:54 -03:00
Beda Schmid
cfce57096b Re-enable UI 2025-10-15 13:54:14 -03:00
Beda Schmid
97b64fd0c2 Disables Flasgger UI
Try disabling flasgger UI
2025-10-15 13:52:58 -03:00
Beda Schmid
45ddb5406b Try to hide the top searchbar and add custom logo 2025-10-15 13:42:37 -03:00
Beda Schmid
b2db8573b1 Modify the flasgger layout and add better schema specs 2025-10-15 13:27:09 -03:00
Beda Schmid
2d3f803c9d Attempt to request API key 2025-10-15 13:16:20 -03:00
Beda Schmid
6d3200546f Init flasgger AFTER api
.. otherwise it cannot read the api
2025-10-15 13:12:07 -03:00
Beda Schmid
c2a6ca1f06 Indentation of doc markup
Apparently it needs 2 spaces over tabs
2025-10-15 13:07:13 -03:00
Beda Schmid
bb3ce47246 Add schema definitions 2025-10-15 13:01:22 -03:00
Beda Schmid
a9b9917fc2 Reduce OAS version to latest supported by flasgger
This might be a bad designchoice alltogether, I start to doubt Flasgger is the right way, but for now, I understand only this :(
2025-10-15 12:56:56 -03:00
Beda Schmid
7dc5ad3dab Update to latest OAS
Update to latest OAS specs and version
2025-10-15 12:50:39 -03:00
Beda Schmid
48c830074a Try local initialization of swagger
... instead of global import
2025-10-15 12:43:46 -03:00
Beda Schmid
0320f600c7 Revert using positional arguments
Apparently that is not the issue :)
2025-10-15 12:35:11 -03:00
Beda Schmid
bf2c233024 Use positional arguments
Use positional arguments (init_app(app, config, template)) per Flasgger’s API
2025-10-15 12:28:19 -03:00
Beda Schmid
601b06ee3c Adds Swagger-based API documentation
### Added
- Flasgger dependency and Swagger integration for interactive OpenAPI docs.
- Swagger UI and JSON spec exposed at /api/docs/ and /api/docs.json.
- OpenAPI template that includes API title and version from app config.
- API key security scheme (X-API-Key header) included in the spec.
2025-10-15 12:23:43 -03:00
Beda Schmid
f786a31117 Add API Docs
### Added
- Add OpenAPI docs with Swagger UI.
2025-10-15 11:28:20 -03:00
Beda Schmid
d4c1427e9c Merge pull request #24 from Dodelidoo-Labs/develop
Fix Changelog
2025-10-13 18:20:04 -03:00
Beda Schmid
56caccc48d Fix Changelog 2025-10-13 18:19:28 -03:00
Beda Schmid
c2aee05501 Merge pull request #22 from Dodelidoo-Labs/develop
Update Readme and Changelog
2025-10-13 18:07:22 -03:00
Beda Schmid
484d4e4d35 Update readme and changelog 2025-10-13 18:06:27 -03:00
Beda Schmid
b0de2309ae Merge pull request #21 from Dodelidoo-Labs/develop
Add ListenBrainz discovery + Lidarr monitoring
0.9.0
2025-10-13 17:41:08 -03:00
Beda Schmid
bbb067dd67 Safety fallback for new listenbrainz username
Just in case it is not added during migration
2025-10-13 17:17:50 -03:00
Beda Schmid
9bb1f90a52 Add DB migration
Adds DB migration to listenbrainz support.
2025-10-13 17:12:09 -03:00
Beda Schmid
9364a40ba6 Adds ListenBrainz personal discovery
### Added
- ListenBrainz integration to fetch weekly exploration playlist artists for personal recommendations.
- Profile field and UI controls to enable ListenBrainz as a personal discovery source.
2025-10-13 16:39:11 -03:00
Beda Schmid
e8351a9e47 Add Lidarr monitoring settings and UI
### Added
- UI controls for monitor strategy, monitor-new-items, monitored toggle, and a per-album list so users can configure how newly added artists/albums are monitored.
- Server-side helpers to parse and normalize incoming settings (boolean/int/float coercion, monitor option normalization, album-list parsing).
- Inclusion of monitor options and album list in the payload sent when adding artists to the external music manager.
2025-10-13 16:03:15 -03:00
Beda Schmid
3699972f3e Merge pull request #20 from Dodelidoo-Labs/develop
Harden startup and refactor web/API logic
2025-10-13 15:03:23 -03:00
Beda Schmid
22ea024b94 Harden startup and refactor web/API logic
### Fixed
- Improves OpenAI parsing for fenced code blocks.
- Adds clearer admin actions with separated handlers for user and request management.

### Security
- Runs the application as a non-root user by default and tightens ownership of writable configuration paths.
2025-10-13 14:30:36 -03:00
Beda Schmid
98674635f7 Merge pull request #19 from Dodelidoo-Labs/develop
Add REST API with API key auth and SonarQube CI
2025-10-13 11:43:00 -03:00
Beda Schmid
a7616b1271 Adds SonarQube analysis
### Added
- CI workflow to run build and SonarQube analysis on pushes to main.
- Project key configuration for static analysis.
2025-10-13 11:40:33 -03:00
Beda Schmid
f761f52a3c Fix regression when fetching api header
As the title says
2025-10-12 15:46:22 -03:00
Beda Schmid
c8334e6fc7 Improves API key header lookup
### Changed
- Make API key header lookup case-insensitive and fall back to the query parameter to handle servers or proxies that alter header casing.
2025-10-12 15:15:28 -03:00
Beda Schmid
57b8bb9600 Fix Typo
Missing closing `}`
2025-10-12 15:02:33 -03:00
Beda Schmid
fb3567db10 Adds API endpoints and API key support
### Added
- REST API endpoints for status, artist-requests, and stats with optional key-based access.
- Settings UI input for an API key and client-side wiring to include it in saved settings.
- Server-side config/storage for the API key and DataHandler support to propagate it at runtime.
2025-10-12 14:44:36 -03:00
Beda Schmid
7a5ce7231e Merge pull request #15 from Dodelidoo-Labs/develop
Adds artist request workflow with admin approval
0.8.0
2025-10-11 14:19:31 -03:00
Beda Schmid
63111f63ea Update readme/changelog
Updates readme and changelog for v0.8.0
2025-10-11 14:17:59 -03:00
Beda Schmid
13cdf87d30 Prevents orphaned requests on user delete
### Fixed
- Prevents foreign key constraint failures when removing users.
- Ensures approved requests remain accessible by nullifying the approver reference instead of blocking deletion.
2025-10-11 12:17:28 -03:00
Beda Schmid
a0dd051a1e Emits artist approval event
### Added
- Real-time socket notification to connected clients when an artist request is approved, sending the artist name and an "Added" status.
2025-10-11 11:31:39 -03:00
Beda Schmid
91af4d0090 Notify clients on artist rejection
### Added
- Broadcast artist rejection events to connected clients to trigger UI refresh.

### Changed
- Show "Pending Approval" for requested artists and mark rejections as an error state in the UI.
- Disable and restyle the add button for already-added, requested, failed, invalid, or rejected statuses.

### Fixed
- Correct datetime usage when recording approval timestamp to avoid a runtime error.
2025-10-11 11:25:07 -03:00
Beda Schmid
923b125a88 Ensures application context
### Fixed
- Ensures an application context when persisting request records to avoid DB context issues.
- Makes the artist-add operation return a status and checks it before approving requests.
- Updates the admin approval flow to only mark requests approved when the add operation succeeds.
2025-10-11 11:15:14 -03:00
Beda Schmid
5aa1d9205e Make migration idempotent
### Added
- Adds runtime checks to detect existing tables and indexes before creating them.
2025-10-11 10:39:35 -03:00
Beda Schmid
9b08dde6c7 Adds artist request workflow
### Added
- Persistent artist request model and migration for tracking user requests.
- Admin interface for reviewing, approving, and rejecting pending requests.
- Socket endpoint for users to submit artist requests from the UI.
- Client-side request button and user-info emission so the UI can show request vs add actions.
- Server-side handler to create requests, emit toast notifications, and update the UI.

### Changed
- Button behavior now shows "Request" for non-admins and preserves add-to-service action for admins.
- Session state includes an admin flag and is sent to clients on connection.
- Approving a request now triggers adding the artist to the external content service and marks the request approved.
2025-10-11 10:29:51 -03:00
Beda Schmid
cc4ec7a084 Merge pull request #14 from Dodelidoo-Labs/develop
Add Last.fm personal recs and secure config saves
0.7.0
2025-10-10 16:40:45 -03:00
Beda Schmid
c040e9855c Add LastFM integration and harden config
### Added
- Per-user LastFM discovery to surface personal recommendations.
- Example container compose manifest to simplify quickstart.

### Changed
- Settings persistence now performs atomic writes and enforces restrictive file permissions to protect stored API keys and admin credentials.
- Quickstart and deployment guidance clarifies owning the working directory (container UID/GID), suggests setting ownership, and recommends attaching to an external reverse-proxy network rather than publishing ports.

### Security
- Hardened config storage to minimize secret exposure on shared hosts.
2025-10-10 16:38:00 -03:00