goauthentik / goauthentik/authentik
Application list should return raw meta icon attribute
- Dominant language
- Python
- Stars
- 25.6k
- Forks
- 2k
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 651
Description
**Is your feature request related to a problem? Please describe.**
When using the terraform provider we're observing that application icons never really "settle", it always reports a change from a full URL to a relative url.
```
# authentik_application.saml_app will be updated in-place
~ resource "authentik_application" "saml_app" {
id = "test-app"
~ meta_icon = "https://assets..org/test/media/public/application-icons/obs-logo.svg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=&X-Amz-Date=20250709T080728Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=" -> "application-icons/obs-logo.svg"
name = "Test app"
# (9 unchanged attributes hidden)
}
# [...]
Apply complete! Resources: 0 added, 2 changed, 0 destroyed.
```
**Describe the solution you'd like**
Two consecutive `terraform apply` calls should have incur in no difference (the first already settled the state, the second should never diff).
**Describe alternatives you've considered**
1. Accept the inevitable
2. Adding a `lifecycle` block to the terraform resource
**Additional context**
I believe the problem comes from the `/api/v3/core/applications//` returning the full browser-"consumable" url rather than the DB value that one is expected to set via terraform.
Related to goauthentik/terraform-provider-authentik#717
Contributor guide
Research direction
Start by inspecting the /api/v3/core/applications// endpoint and how the application meta_icon value is serialized in its response. Confirm the response currently exposes a full browser-consumable URL, then trace the application field handling to return the raw attribute; done means consecutive Terraform applies produce no meta_icon diff.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, terraform
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100