Deluan
08280eaea8
feat: add users permission management to plugin system
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
6ab277bf9e
test: add ndpgen plugin tests in the pipeline and update Makefile
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
df1ed336cc
refactor: rename List method to Keys for clarity in configuration management
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
1f24c14b9e
refactor: update interface types to use 'any' in plugin repository methods
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
f8ea65dbc8
refactor: make MockPDK private
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
1fdeb54961
feat: enhance plugin manager to support metrics recording
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
84d421c9df
feat: implement ConfigService for plugin configuration management
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
68b4e2052c
feat: conditionally include error handling in generated client code templates
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
9e9d5cd615
fix: context cancellation and implement WebSocket callback timeout for improved error handling
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
5c7173b61c
fix: update return types in minimalPlugin and wikimediaPlugin methods to use pointers
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
188a3a19d5
feat: add unit tests for Discord plugin and RPC functionality
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
363177e1d4
feat: add PDK abstraction layer with mock support for non-WASM builds
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
b95d3d7831
feat: add support for experimental WebAssembly threads
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
dd94355c46
refactor: Discord RPC struct to encapsulate WebSocket logic
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
93e9f12685
feat: implement mock service instances for non-WASM builds using testify/mock
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
a427166084
fix: handle URL parsing errors and use atomic upsert in plugin repository
...
Added proper error handling for url.Parse calls in PublicURL and AbsoluteURL
functions. When parsing fails, PublicURL now falls back to AbsoluteURL, and
AbsoluteURL logs the error and returns an empty string, preventing malformed
URLs from being generated.
Replaced the non-atomic UPDATE-then-INSERT pattern in plugin repository Put
method with a single atomic INSERT ... ON CONFLICT statement. This eliminates
potential race conditions and improves consistency with the upsert pattern
already used in host_kvstore.go.
2026-01-12 08:16:07 -05:00
Deluan
ac3889cac9
docs: update README to include Rust PDK crate information for plugin developers
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
5c087a12af
docs: clarify artwork URL generation capabilities in service descriptions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
0ec82e83f6
docs: correct example link for library inspector in README
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
f8149c320f
docs: update Go and Rust plugin developer sections for clarity
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
374dd2343d
fix(plugins): update response types in testMetadataAgent methods to use pointers
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
89d9aa1434
feat(plugins): implement XTP JSONSchema validation for generated schemas
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
aa03d53524
test(plugins): add unit tests for rustOutputType and isPrimitiveRustType functions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
169bbb9d0a
fix(plugins): update IsAuthorized method to return boolean instead of response object
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
e750bf8232
fix(plugins): enhance type handling for Rust and XTP output in capability generation
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
867000b70a
fix(plugins): update return types in metadata interfaces to use pointers
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
fc89abd0ea
refactor(plugins): update plugin instance creation to accept context for cancellation support
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
6210af8d90
docs: update README to reflect changes in plugin import paths
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
f0c8e98c6d
test(plugins): conditionally run goleak checks based on CI environment
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
37473a7096
fix(plugins): generate host wrappers
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
221ccdc18d
docs: update plugin registration docs
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
633a26a273
refactor(plugins): update export wrappers to use //go:wasmexport for WebAssembly compatibility
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
06c2556a8f
refactor(plugins): rename scheduler callback methods for consistency and clarity
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
53aa1a67ee
refactor(plugins): update macro names for websocket and metadata registration to improve clarity and consistency
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
3bfce4cc9c
refactor(plugins): update Discord Rich Presence and Library Inspector plugins to use nd-pdk for service calls and implement lifecycle management
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
2b2b673581
refactor(plugins): reorganize Rust output structure to follow standard conventions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
e2d0c5626c
feat: implement Rust PDK
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
c19ce124d5
refactor(plugins): consolidate PDK module path and update Go version to 1.25
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
034e8af90b
build: mark .wasm files as intermediate for cleanup after building .ndp
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
3d14349b99
refactor(plugins): update request/response types to use private naming conventions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
810ee687fa
refactor(plugins): update function signatures to return values directly instead of response structs
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
312a31f688
refactor(plugins): update error handling for methods to return errors directly
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
723b19c8de
refactor(plugins): reorganize and sort type definitions for consistency
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
25b5acad8a
test: make all test plugins use the PDK
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
9ac0764cc2
refactor(plugins): update scrobbler interface to return errors directly instead of response structs
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
306b2fc525
refactor(plugins): streamline plugin function signatures and error handling
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
31842b2c3d
refactor(plugins): consistent naming/types across PDK
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
d81e641cc6
feat(plugins): implementation of the Navidrome Plugin Development Kit with generated client wrappers and service interfaces - Phase 5
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
0fb497ed73
feat(plugins): implementation of the Navidrome Plugin Development Kit with generated client wrappers and service interfaces - Phase 4
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
b4b7b91cf7
feat(plugins): implementation of the Navidrome Plugin Development Kit with generated client wrappers and service interfaces - Phase 3
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00