goauthentik / authentik

The authentication glue you need.
https://goauthentik.io
Other
12.76k stars 850 forks source link

Setting flow background images #9059

Open szinn opened 5 months ago

szinn commented 5 months ago

I'd like to provide some feedback and suggestions on setting the background image of a flow.

I'm using S3 (minio) for my storage and terraform to set the configuration. I have set a custom domain to serve the content that points to a service I wrote that serves static content out of an S3 bucket.

My use case is I would like to use the same image as the background for all my flows and that currently isn't possible.

I noticed in the terraform plan, that if I upload an image through the Authentik UI, that the string in the background contains the added query parameters for S3 authentication. I would submit that is wrong.

I would like to suggest that the background field value should actually be a string value and that there is a picker/chooser button that lets the user browse the media storage to select an image. There should also be a way to upload an image. This would let the admin upload a single image and then set it for all other flows as appropriate.

The delete function would need to ensure that no other flows reference the image.

Further, I would suggest that the form of this string be:

media://xxx/yyy.png to reference a file chosen from the media store https://xxx.png to reference an image on the web (e.g. cdn)

A comment about the authenticatio query parameters. These should not appear on any API and they are typically fetched from the S3 server at the serving time. From a caching point of view, that should be separate from the data structure and be a runtime thing only.

Feel free to reach out for any clarifications

BeryJu commented 3 weeks ago

With the S3 storage backend, most of these issues should be solved: https://docs.goauthentik.io/docs/installation/configuration#media-storage-settings

When using the S3 storage backend, setting background in terraform is done via just the filename, and authentik will do all of the query parameters in time when the file is needed