Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Medium Term] Create functionality to be able to traverse policies on the fly to detect all tags, roles and workflows for each individual actor. #13

Open
mattsmithies opened this issue May 13, 2024 · 2 comments

Comments

@mattsmithies
Copy link
Contributor

Overview

This is a large one, but the goal here is to be able to ingest any policy regardless of any role that is engaged and to be able to test policies on the fly so the ability for a role such as a supplier to run through all the data capture elements as expected, for the verification/validation to take place for any particular actor, and for all the steps to be composed in a way where assets are minted.

This needs to be completely dynamic, and potentially become a backbone for a dynamic test environment for any type of policy on guardian.

@mattsmithies mattsmithies changed the title Create functionality to be able to traverse policies on the fly to detect all tags, roles and workflows for each individual actor. [Medium Term] Create functionality to be able to traverse policies on the fly to detect all tags, roles and workflows for each individual actor. May 14, 2024
@mattsmithies
Copy link
Contributor Author

mattsmithies commented Jul 16, 2024

This will also need to expect a dynamic seeding component (or simple base values) for schema consumption.

@mattsmithies
Copy link
Contributor Author

This task may actually expand into the dynamic generation of a bespoke configuration file that can be used for anyone to simply consume a policy over an API.

Like for the current "DOVU" process.

[
    {
        :role :supplier
        :tag :create_ecological_project
        :type :data
        :key :create-project
    }
    {
        :role :owner
        :require {
           :status :waiting
        }
        :filter {
            :tag :supplier_grid_filter
            :key :uuid
        }
        :source_tag :supplier_grid
        :tag :approve_supplier_btn
        :options [
            :approve.template
            :reject.template
        ]
        :type :approval
        :key :approve-project
    }
    {
        :role :supplier
        :require {
            :status :approved
        }
        :tag :create_site_form
        :source_tag :create_site_form
        :type :data
        :allow_many true
        :key :register-site
    }
    {
        :role :owner
        :require {
           :status :waiting
        }
        :filter {
            :tag :site_grid_owner_filter
            :key :uuid
        }
        :source_tag :approve_sites_grid
        :tag :approve_site_button
        :options [
            :approve.template
            :reject.template
        ]
        :type :approval
        :key :approve-site
    }
    {
        :role :supplier
        :require {
           :status :approved
        }
        :tag :create_claim_request_form
        :filter {
            :tag :site_grid_supplier_filter
            :key :uuid
        }
        :source_tag :sites_grid
        :type :data
        :allow_many true
        :key :create-claim
    }
    {
        :role :verifier
        :require {
           :status :waiting
        }
        :filter {
            :tag :claim_request_verifier_filter
            :key :uuid
        }
        :source_tag "claim_requests_grid(verifier)"
        :tag :approve_claim_requests_btn
        :options [
            :approve.template
            :reject.template
        ]
        :type :approval
        :key :approve-claim
    }
]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant