Product Attribution Admin

Kian Publisher

Platform:

Channel Revision Published Runs on
latest/stable 121 23 Jul 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/stable 24 07 May 2024
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/candidate 121 23 Jul 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/candidate 24 07 May 2024
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/beta 122 11 Sep 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/beta 24 07 May 2024
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/edge 122 11 Sep 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/edge 24 07 May 2024
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
juju deploy product-attribution-k8s

Learn about configurations >

  • 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.