October feature list #226

Merged
tobru merged 36 commits from october into main 2025-10-22 13:43:34 +00:00
Member

Sorry for the giant PR, but some features soft-depended on each other, and migrations are also hard to keep separate. This PR contains:

  • #38: Filtering based on cloud providers configured in the organisation origin + deactivating services that were not explicitly activated via OSB
  • #198: Default billing entity configuration based on origin. Will not work if there is a billing entity set on the default origin, but will work (and is tested with) a billing entity on e.g. the exoscale origin
  • #19: Users can invite other users into their organisation at their level or lower. Currently only implemented for admins and owners, not for regular members. Works for logged-in and not-logged-in users both. If the user email address does not match the invoice email address, a warning is shown. Not implemented yet: retracting invitations. Invitations are also used for exoscale org creations.
  • #197: External links for service offerings
  • #200: Hiding HOST keys in credentials (untested because I didn't have an instance with visible credentials set up)
  • #202: Roll back service instance creation if the control plane or API throws an error
  • #203: Generate/suggest FQDN based on configurable control plane setting
  • #204: Hiding configurable advanced parameters + improving generated display of labels (the postgre s q l problem)
  • #224: Debouncing the "add item" button

Not included, because stuck:

  • #201: Improve detection of mandatory fields. As far as I can tell, the spec does not contain the data we need – I think what we want, in principle, are validation rules with CEL expressions – are those already present? Haven't looked deeper into it yet.
Sorry for the giant PR, but some features soft-depended on each other, and migrations are also hard to keep separate. This PR contains: - #38: Filtering based on cloud providers configured in the organisation origin + deactivating services that were not explicitly activated via OSB - #198: Default billing entity configuration based on origin. Will *not* work if there is a billing entity set on the default origin, but will work (and is tested with) a billing entity on e.g. the exoscale origin - #19: Users can invite other users into their organisation at their level or lower. Currently only implemented for admins and owners, not for regular members. Works for logged-in and not-logged-in users both. If the user email address does not match the invoice email address, a warning is shown. Not implemented yet: retracting invitations. Invitations are also used for exoscale org creations. - #197: External links for service offerings - #200: Hiding HOST keys in credentials (untested because I didn't have an instance with visible credentials set up) - #202: Roll back service instance creation if the control plane or API throws an error - #203: Generate/suggest FQDN based on configurable control plane setting - #204: Hiding configurable advanced parameters + improving generated display of labels (the `postgre s q l` problem) - #224: Debouncing the "add item" button **Not** included, because stuck: - #201: Improve detection of mandatory fields. As far as I can tell, the spec does not contain the data we need – I think what we want, in principle, are [validation rules with CEL expressions](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#validation-rules) – are those already present? Haven't looked deeper into it yet.
rixx added 19 commits 2025-10-17 03:57:21 +00:00
rixx added 1 commit 2025-10-17 04:12:48 +00:00
Fix "Add item" button adding multiple items
All checks were successful
Tests / test (push) Successful in 1m12s
8ba9787d4b
ref #224
tobru added 2 commits 2025-10-17 08:40:51 +00:00
The issue is that when obj.has_inherited_billing_entity is True, the code adds
"billing_entity" to the readonly fields.

When a field is marked as readonly, Django may exclude it from form.base_fields,
which causes a KeyError when trying to access it.
explicitely convert is_accepted to boolean
All checks were successful
Tests / test (push) Successful in 31s
54998ab9d0
The is_accepted property returns self.accepted_by or self.accepted_at.
When accepted_by is a User object (not None), it returns the User object
instead of a boolean.

The Django admin's boolean field renderer expects a boolean value
(True, False, or None), not a User object.
tobru added 1 commit 2025-10-17 08:55:00 +00:00
service enabling / disabling is not specific to a csp
All checks were successful
Tests / test (push) Successful in 48s
ce34afa10a
rixx added 7 commits 2025-10-21 16:14:18 +00:00
rixx added 4 commits 2025-10-22 09:39:58 +00:00
rixx added 1 commit 2025-10-22 13:37:43 +00:00
Remove invite uniqueness constraint
All checks were successful
Tests / test (push) Successful in 28s
cb3464d9b5
rixx added 1 commit 2025-10-22 13:40:50 +00:00
Make sure origin billing entity is not mandatory
All checks were successful
Tests / test (push) Successful in 28s
534b2e8d72
ref #38
tobru merged commit 5431f6ab83 into main 2025-10-22 13:43:34 +00:00
tobru deleted branch october 2025-10-22 13:43:34 +00:00
Sign in to join this conversation.
No description provided.