Product Attribution Admin
Platform:
| Channel | Revision | Published | Runs on |
|---|---|---|---|
| latest/stable | 121 | 23 Jul 2026 | |
| latest/stable | 24 | 07 May 2024 | |
| latest/candidate | 121 | 23 Jul 2026 | |
| latest/candidate | 24 | 07 May 2024 | |
| latest/beta | 122 | 11 Sep 2026 | |
| latest/beta | 24 | 07 May 2024 | |
| latest/edge | 122 | 11 Sep 2026 | |
| latest/edge | 24 | 07 May 2024 |
juju deploy product-attribution-k8s
-
ai_confidence_threshold | string
Minimum model confidence an AI product-attribution suggestion must reach before it is committed to the review queue, given as a decimal string between 0 and 1 (for example "0.9").
-
allowed_group_name | string
The name of the group (currently Launchpad team) that is allowed to access the application.
-
automatic_attribution_schedule | string
Cron expression for the automatic attribution schedule.
-
batch_inference_schedule | string
Cron expression for the nightly AI batch-inference (suggestions) schedule. Empty (the default) disables the schedule, making the AI batch-inference job opt-in. Must be ordered to run at least one hour after the automatic attribution run so inference uses freshly attributed data.
-
debug | boolean
Enables the application to be deployed with debug mode on. Note this may expose information about the application during exceptions, etc.
-
external_hostname | string
External hostname the app should respond to (required).
-
http_proxy | string
HTTP proxy URL for outbound HTTP requests (e.g. http://squid.internal:3128).
-
https_proxy | string
HTTPS proxy URL for outbound HTTPS requests (e.g. http://squid.internal:3128).
-
launchpad_max_retries | int
Default: 3
Maximum number of retries for Launchpad API requests on 5xx errors.
-
launchpad_request_timeout | int
Default: 1
Timeout in seconds for individual Launchpad API HTTP requests.
-
log_level | string
Default: INFO
Sets the applications log level.
-
max_ai_attribution_batch_size | int
Maximum number of opportunities the AI batch-inference run may commit suggestions for in a single run. Sized independently from max_attribution_batch_size so the deterministic automatic attribution and the ML suggestions can be tuned separately.
-
max_attribution_batch_size | int
Maximum number of opportunities to process in a single automatic attribution run.
-
max_auto_accepted_attributions | int
Maximum number of qualifying opportunities that a single automatic attribution run may auto-accept (mark reviewed without human review).
-
max_body_size | int
Default: 5
Maximum request body size in megabytes. Passed to the nginx-ingress-integrator via the nginx-route relation.
-
no_proxy | string
Comma-separated list of hosts/domains that should bypass the proxy (e.g. "localhost,127.0.0.1,.internal").
-
oidc_idp_endpoint | string
OIDC Identity Provider endpoint for authentication (e.g. https://login.canonical.com).
-
oidc_secret_id | secret
A Juju user secret URI (secret:...) containing OIDC client credentials. The secret must contain keys "oidc-client-id" and "oidc-client-secret".
-
qcluster_max_rss_kb | int
Caps the resident memory (in KB) of the qcluster task worker that runs the automatic attribution job. When the worker exceeds this size it is recycled after finishing the current task, releasing accumulated heap back to the OS. This keeps the long-lived worker from growing unbounded in low-RAM pods. Set to 0 to disable the limit.
-
qcluster_retry_seconds | int
Number of seconds before an unacknowledged qcluster task is retried. Must be greater than qcluster_timeout_seconds so a task is never retried while it may still be running.
-
qcluster_timeout_seconds | int
Maximum number of seconds a single qcluster task may run before the worker is killed. Must be less than qcluster_retry_seconds.
-
retrain_schedule | string
Cron expression for the nightly AI model retraining schedule. Empty (the default) disables the schedule, making retraining opt-in. Must be ordered to run at least one hour after the automatic attribution run and before the batch-inference run so inference uses the freshly retrained model.
-
role | string
Selects which workload this application runs. Set to "webapp" to run the Django web app (gunicorn) and apply database migrations, or "worker" to run the qcluster task runner. While unset (or set to an invalid value) the unit stays blocked with no Pebble services defined.
-
secret_key_id | secret
A Juju user secret URI (secret:...) containing the Django SECRET_KEY, under a "key" field. Grant the same secret to both the webapp and worker applications: django_q signs and verifies tasks with this key, so a mismatch makes the worker reject tasks enqueued by the webapp. The unit stays blocked until the secret is set and granted.
-
worker_cpu_cores | int
Default: 1
Number of CPU cores allocated to the worker pod; used to size PyTorch/OpenMP/MKL threads for ML tasks (OMP_NUM_THREADS, MKL_NUM_THREADS) on the qcluster service. Must match the worker pod's cpu-power constraint so the intra-job thread pool does not oversubscribe the pod's cgroup CPU quota. Only applied to the worker role.