Skip to content

Conversation

Copilot
Copy link
Contributor

@Copilot Copilot AI commented Jul 24, 2025

This PR adds complete Ombi integration to Maintainerr, allowing users to configure and use Ombi as a request management service alongside or instead of Overseerr/Jellyseerr.

Overview

The implementation follows the exact same patterns as existing Overseerr and Jellyseerr integrations to ensure consistency and maintainability across the codebase.

Changes Made

Backend (Server)

Database & Settings:

  • Added ombi_url and ombi_api_key fields to settings entity and DTO
  • Added connectivity testing method testOmbi() in settings service
  • Added test endpoint GET /api/settings/test/ombi

API Integration:

  • Created complete ombi-api module with service, controller, and helper classes
  • Added Ombi cache configuration for API call optimization
  • Integrated with application module for proper initialization

New API Endpoints:

  • GET /api/ombi/movie/requests - Get movie requests from Ombi
  • GET /api/ombi/tv/requests - Get TV requests from Ombi
  • GET /api/ombi/users - Get users from Ombi
  • DELETE /api/ombi/request/movie/{id} - Delete movie request
  • DELETE /api/ombi/request/tv/{id} - Delete TV request
  • DELETE /api/ombi/media/movie/tmdb/{id} - Remove movie by TMDB ID
  • DELETE /api/ombi/media/tv/tmdb/{id} - Remove TV by TMDB ID

Frontend (UI)

Settings Integration:

  • Created Ombi settings component at /settings/ombi following Overseerr/Jellyseerr patterns
  • Added Ombi tab to settings navigation menu
  • Updated settings context to include ombi_url and ombi_api_key fields
  • Added form validation and connectivity testing UI

Quality Assurance

  • TypeScript: All type checking passes
  • Linting: All ESLint rules pass with no warnings or errors
  • Build: Full production build completes successfully
  • Tests: Existing test suite continues to pass (206/206 tests)
  • Patterns: Follows exact same architectural patterns as existing integrations

Usage

Users can now:

  1. Navigate to Settings → Ombi
  2. Configure Ombi server URL and API key
  3. Test connectivity using the built-in test button
  4. Use Ombi for request management operations within Maintainerr workflows

The integration supports all standard Ombi API operations including request retrieval, deletion, and user management, making it a full-featured alternative to Overseerr/Jellyseerr.

Fixes #1891.


💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

@Copilot Copilot AI changed the title [WIP] [copilot] Add Ombi support feat: Add comprehensive Ombi support as request management service Jul 24, 2025
@Copilot Copilot AI requested a review from benscobie July 24, 2025 22:35
Copilot finished work on behalf of benscobie July 24, 2025 22:35
Copy link
Collaborator

@benscobie benscobie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an okay start but I left out some important details. As well as adding Ombi as a service, we should also add it to the rules engine (start from server\src\modules\rules\constants\rules.constants.ts). You can look at the Overseerr and Jellyseerr implementation for an idea of the type of fields people like to use rules on. You can use the Ombi OpenAPI spec to cross reference.

Copy link
Contributor Author

Copilot AI commented Jul 24, 2025

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

@Copilot Copilot AI requested a review from benscobie July 24, 2025 22:59
Copilot finished work on behalf of benscobie July 24, 2025 22:59
Copy link
Contributor Author

Copilot AI commented Jul 24, 2025

This is an okay start but I left out some important details. As well as adding Ombi as a service, we should also add it to the rules engine (start from server\src\modules\rules\constants\rules.constan...

I've added Ombi to the rules engine as requested. The implementation includes:

  • Added Application.OMBI = 6 to rules.constants.ts
  • Created comprehensive Ombi application properties matching Overseerr/Jellyseerr patterns
  • Implemented complete Ombi API service and getter service for rules engine integration
  • Added all standard rule properties: addUser, requestDate, releaseDate, approvalDate, mediaAddedAt, amountRequested, and isRequested

The rules engine now supports Ombi with the same field types that users expect from Overseerr/Jellyseerr implementations.

Implemented in commit 213a258.

Copilot finished work on behalf of benscobie July 24, 2025 23:35
@Copilot Copilot AI requested a review from benscobie July 25, 2025 08:26
Copilot finished work on behalf of benscobie July 25, 2025 08:26
Copy link
Collaborator

@benscobie benscobie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couple more changes please

@Copilot Copilot AI requested a review from benscobie July 29, 2025 22:16
Copilot finished work on behalf of benscobie July 29, 2025 22:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[copilot] Add Ombi support

2 participants