Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

WORK IN PROGRESS & For Discussion

...

This page discusses how to deal with combinations of 'ClientID' (as "creator" and/or "ownerown

er") in the Header, and 'service_id' ( as "owner") in the request body.

...

  1. Request 'service_id' ❌ absent (null)
    1. Token or its 'ClientID' ❌ absent (null), or

    2. Token's 'ClientID' ✔️ present but blank/empty (""), or 

    3. Token's 'ClientID' ✅present

      Panel
      bordertrue

      Leave parameter 'service_id' as null and continue.
      Operation will fail because 'service_id' is mandatory.


  2. Request 'service_id' ✔️ present but blank/empty ("")
    1. Token or its 'ClientID' ❌ absent (null)

      Panel
      bordertrue

      Leave parameter 'service_id' as empty ("") and continue.

      This policy has no 'owner', so cannot be retrieved using a service-id filter in Get-Instances, and cannot be later inherited by a newly-registered service ("" is not a valid service name when registering a 'Service').

      Policy cannot be auto-deleted/garbage-collected, since this functionality is tried to the life-cycle of registered Services only.


    2. Token's 'ClientID' ✔️ present but blank/empty ("")

      Panel
      bordertrue

      Leave parameter 'service_id' as empty ("") and continue.

      This policy has no 'owner', so cannot be retrieved using a service-id filter in Get-Instances, and cannot be later inherited by a newly-registered service ("" is not a valid service name when registering a 'Service').

      Policy cannot be auto-deleted/garbage-collected, since this functionality is tried to the life-cycle of registered Services only.


    3. Token's 'ClientID' ✅present

      Panel
      bordertrue

      Set parameter 'service_id' = 'ClientID' and continue.

      This policy's 'owner' is set be its 'creator'.
      See options 3.d and 4.d below to understand behavior when 'service_id' == 'ClientID'


  3. Request 'service_id' ✅present but not NOT a registered 'Service'
    1. Token or its 'ClientID' ❌ absent (null)

      Panel
      bordertrue

      Leave parameter 'service_id' as is (not-registered Service) and continue.

      This policy has an unregistered 'owner', but can be retrieved using that 'service-id' filter in Get-Instances
      Policy cannot be auto-deleted/garbage-collected, since this functionality is tried to the life-cycle of registered Services only.
      Policy can be later inherited by a newly-registered Service with same 'service_id'.


    2. Token's 'ClientID' ✔️ present but blank/empty ("")

      Panel
      bordertrue

      Leave parameter 'service_id' as is (not-registered Service) and continue.

      This policy has an unregistered 'owner', but can be retrieved using that 'service-id' filter in Get-Instances
      Policy cannot be auto-deleted/garbage-collected, since this functionality is tried to the life-cycle of registered Services only.
      Policy can be later inherited by a newly-registered Service with same 'service_id'.


    3. Token's 'ClientID' ✅present but != 'service_id'

      Panel
      bordertrue

      Leave parameter 'service_id' as is (not-registered Service) and continue.
      Policy has an different 'owner' than 'creator'

      This policy has an unregistered 'owner', but can be retrieved using that 'service-id' filter in Get-Instances
      Policy cannot be auto-deleted/garbage-collected, since this functionality is tried to the life-cycle of registered Services only.
      Policy can be later inherited by a newly-registered Service with same 'service_id' (see option 4.c below).

      Warning
      titleTo Do!

      Need to extend functionality to save the additional 'creator' information.



    4. Token's 'ClientID' ✅present and == 'service_id'

      Panel
      bordertrue

      Leave parameter 'service_id' as is (not-registered Service) and continue.

      This policy has an unregistered 'owner', but can be retrieved using that 'service-id' filter in Get-Instances
      Policy cannot be auto-deleted/garbage-collected, since this functionality is tried to the life-cycle of registered Services only.
      Policy can be later inherited by a newly-registered Service with same 'service_id' (see option 4.d below).


  4. Request 'service_id' ✅present but is a registered 'Service'
    1. Token or its 'ClientID' ❌ absent (null)

      Panel
      bordertrue

      Leave parameter 'service_id' as is (pre-registered Service) and continue.

      This policy has a registered 'owner', and can be retrieved using that 'service-id' filter in Get-Instances
      Policy may be auto-deleted/garbage-collected, depending on the life-cycle and activity registered Service.
      Policy will be deleted if Service is deleted or times-out according to however the Service is configured.


    2. Token's 'ClientID' ✔️ present but blank/empty ("")

      Panel
      bordertrue

      Leave parameter 'service_id' as is (pre-registered Service) and continue.

      This policy has a registered 'owner', and can be retrieved using that 'service-id' filter in Get-Instances
      Policy may be auto-deleted/garbage-collected, depending on the life-cycle and activity registered Service.
      Policy will be deleted if Service is deleted or times-out according to however the Service is configured.


    3. Token's 'ClientID' ✅present but != 'service_id'

      Panel
      bordertrue

      Leave parameter 'service_id' as is (pre-registered Service) and continue.
      Policy has an different 'owner' than 'creator'

      This policy has a registered 'owner', and can be retrieved using that 'service-id' filter in Get-Instances
      Policy may be auto-deleted/garbage-collected, depending on the life-cycle and activity registered Service.
      Policy will be deleted if Service is deleted or times-out according to however the Service is configured.

      Warning
      titleTo Do!

      Need to extend functionality to save the additional 'creator' information.



    4. Token's 'ClientID' ✅present and == 'service_id'

      Panel
      bordertrue

      Leave parameter 'service_id' as is (pre-registered Service) and continue.
      Policy has same 'owner' than 'creator'

      This policy has a registered 'owner' - same as 'creator', and can be retrieved using that 'service-id' filter in Get-Instances
      Policy may be auto-deleted/garbage-collected, depending on the life-cycle and activity registered Service.
      Policy will be deleted if Service is deleted or times-out according to however the Service is configured.


...

Code Block
languagebash
themeMidnight
2024-07-30 13:32:55 2024-07-30 12:32:55.413 [INFO ] [http-nio-8081-exec-3] o.o.c.o.a.c.v.PolicyController - Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJleGFtcGxlX2lzc3VlciIsInN1YiI6IjEyMzQ1Njc4OTAiLCJhdWQiOiJteWNsaWVudCIsImV4cCI6MzAwMDAwMDAwMCwiY2xpZW50X2lkIjoibXljbGllbnQiLCJyb2xlIjoidXNlciJ9.O5QN_SWN4J1mWKyXk_-PCvOA6GF3ypv1rSdg2uTb_Ls
2024-07-30 13:32:55 2024-07-30 12:32:55.415 [INFO ] [http-nio-8081-exec-3] o.o.c.o.a.c.v.PolicyController - ServiceId: myclient


...


Summary:


ClientID coming from the JWT, ServiceID coming in from the body request.

v3ClientID NULLClientID EMPTYClientID VALID
ServiceID NULL
Empty
S EMPTYC EMPTYC
ServiceID EMPTYSC EMPTY
ServiceID REGISTEREDSS
S (*)
ServiceID
VALID
UNREGISTEREDSSS (*)

(*) Owner (serviceID) != Creator (clientID)