chore: release v0.0.3

See [CHANGELOG.md](https://github.com/venkyr77/jellarr/blob/main/CHANGELOG.md) for detailed release notes.
This commit is contained in:
Venkatesan Ravi
2025-11-30 08:43:19 -08:00
parent 9332e692d5
commit 228741dc12
4 changed files with 88 additions and 3 deletions

View File

@@ -6,6 +6,90 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.0.3] - 2025-11-30
### Added
#### Startup Wizard Configuration
- **New Feature**: Support for completing Jellyfin's startup wizard via config
- **Configuration Fields**:
- `startup.completeStartupWizard`: When `true`, marks the startup wizard as
complete
- **API Integration**: Uses Jellyfin's `POST /Startup/Complete` endpoint
- **Use Case**: Useful for automated/declarative deployments where you want to
skip the interactive startup wizard
#### User Management
- **New Feature**: Full support for declarative user creation and management
- **Configuration Fields**:
- `users[].name`: Username for the account
- `users[].password`: Plaintext password (development only)
- `users[].passwordFile`: Path to file containing password (production
recommended)
- **Security**: Supports secure password handling via file references for
sops-nix integration
- **Idempotent**: Only creates users that don't already exist
#### User Policy Configuration
- **New Feature**: Configure user permissions and policies declaratively
- **Configuration Fields**:
- `users[].policy.isAdministrator`: Grant admin privileges
- `users[].policy.loginAttemptsBeforeLockout`: Set lockout threshold
- **API Integration**: Uses Jellyfin's `/Users/{userId}/Policy` endpoint
- **Comprehensive Testing**: Unit tests for types, API, mappers, and apply
modules
### Infrastructure
#### CI Pipeline
- **New Feature**: Automated CI pipeline for quality validation
- **Checks**: Build, typecheck, ESLint, unit tests, Nix package build, flake
check
- **Integration**: Runs on push to main and pull requests
#### NixOS VM Integration Tests
- **New Feature**: VM-based integration testing framework
- **Coverage**: Full end-to-end testing with real Jellyfin server
#### Code Quality Improvements
- **ESLint Enhancements**:
- Added `stylisticTypeChecked` preset with targeted overrides
- Added naming convention rules for consistent code style
- Implemented maximum typedef strictness for explicit type annotations
- Added comment policy automation via uncomment tool
- **Treefmt Refactor**: Split into separate format and lint modules for
independent control
### Configuration Example
```yaml
version: 1
base_url: "http://localhost:8096"
system: {}
users:
- name: "admin-user"
passwordFile: "/run/secrets/admin-password"
policy:
isAdministrator: true
loginAttemptsBeforeLockout: 3
- name: "viewer-user"
passwordFile: "/run/secrets/viewer-password"
startup:
completeStartupWizard: true
```
### Breaking Changes
- None - All features are additive with full backward compatibility
---
## [0.0.2] - 2025-11-17
### Added
@@ -116,5 +200,6 @@ branding:
- **Library Configuration**: Content scanning intervals, metadata providers,
subtitle preferences
[0.0.3]: https://github.com/venkyr77/jellarr/compare/v0.0.2...v0.0.3
[0.0.2]: https://github.com/venkyr77/jellarr/compare/v0.0.1...v0.0.2
[0.0.1]: https://github.com/venkyr77/jellarr/releases/tag/v0.0.1

View File

@@ -50,5 +50,5 @@ pkgs.stdenvNoCC.mkDerivation (finalAttrs: {
src = ../.;
version = "0.0.2";
version = "0.0.3";
})

View File

@@ -1,6 +1,6 @@
{
"name": "jellarr",
"version": "0.0.2",
"version": "0.0.3",
"description": "Declarative configuration management for Jellyfin servers",
"devDependencies": {
"@eslint/js": "^9.39.0",

View File

@@ -12,7 +12,7 @@ export function makeClient(baseUrl: string, apiKey: string): Client<paths> {
headers.set("X-Emby-Token", apiKey);
headers.set(
"X-Emby-Authorization",
'MediaBrowser Client="jellarr", Device="cli", Version="0.1.0"',
'MediaBrowser Client="jellarr", Device="cli", Version="0.0.3"',
);
return new Request(request, { headers });
},