# `PhoenixKit.Install.ObanConfig`
[🔗](https://github.com/BeamLabEU/phoenix_kit/blob/v1.7.87/lib/phoenix_kit/install/oban_config.ex#L1)

Handles Oban configuration for PhoenixKit installation.

This module provides functionality to:
- Configure Oban for background job processing
- Set up required queues (default, file_processing)
- Add Oban.Plugins.Pruner for job cleanup
- Add Oban to application supervisor tree
- Ensure configuration exists during updates

# `add_oban_configuration`

Adds or verifies Oban configuration.

This function ensures that Oban is properly configured for PhoenixKit's
background job processing, including:
1. Repo configuration (auto-detected from PhoenixKit config)
2. Required queues for file processing
3. Pruner plugin for automatic job cleanup

## Parameters
- `igniter` - The igniter context

## Returns
Updated igniter with Oban configuration and notices.

# `add_oban_supervisor`

Adds Oban to the parent application's supervision tree.

This function ensures that Oban starts automatically when the application starts,
with correct positioning in the supervisor tree:
- AFTER PhoenixKit.Supervisor (PhoenixKit services available)
- BEFORE Endpoint (Oban ready before HTTP requests)

## Important

Oban MUST start AFTER PhoenixKit.Supervisor because PhoenixKit.Supervisor
depends on Repo, and Oban also depends on Repo. The correct order is:
1. Repo (database connection)
2. PhoenixKit.Supervisor (uses Repo for Settings)
3. Oban (uses Repo for job persistence)

## Parameters
- `igniter` - The igniter context

## Returns
Updated igniter with Oban added to application supervisor.

# `oban_config_exists?`

Checks if Oban configuration exists in config.exs.

## Parameters
- `igniter` - The igniter context for detecting parent app name

## Returns
Boolean indicating if configuration exists.

# `oban_supervisor_exists?`

Checks if Oban supervisor is configured in application.ex.

## Parameters
- `igniter` - The igniter context for detecting parent app name

## Returns
Boolean indicating if Oban supervisor exists in application.ex.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
