Really interesting question @emcp. Juju actually has a lot of internal functionality for supporting this use case.
- charms can require that users accept terms & conditions
- charms can add “metrics”. The intent there was to support billing
Terms
An charm that makes use of terms & conditions is Let’s Encrypt support within ssl-termination-proxy
charm written by @merlijn-sebrechts’s team at Tengu.
$ charm show cs:~tengu-team/ssl-termination-proxy terms
terms:
- isrg-lets-encrypt
Another one is cs:~ibmcharmers/ibm-http
to allow IBM HTTP Server to be deployed:
$ charm show cs:~ibmcharmers/ibm-http terms
terms:
- ibmcharmers/ibm-im/1
- ibmcharmers/ibm-im/1
- ibmcharmers/ibm-im/1
- ibm-http-z/1
- ibm-http-plg-z/1
- ibm-http-wct-z/1
https://discourse.charmhub.io/t/writing-charms-that-use-terms/1129
Metrics
Metrics is less well exercised, as far as I can tell. But the functionality is available and quite interesting to explore: