Provider
A provider configuration is required when we want to register a provider instance to Guardian.
YAML representation
id: "fcbfd47a-7dc4-4d3a-aff1-97ea7b205ac4"
type: "bigquery"
urn: "test-bq-urn"
config: 
  type: "bigquery"
  urn: "test-bq-urn"
  appeal:
    allow_permanent_access: false
    allow_active_access_extension_in: 24h
  resources:
    - type: "dataset"
      filter: $resource.name == 'playground'
      policy:
        id: "my-policy"
        version: 1
      roles:
        id: "viewer"
        name: "Viewer"
        permissions:
          - "READER"
  allowed_account_types:
    - user
created_at: "2021-10-26T09:29:48.838203Z"
updated_at: "2022-10-26T07:41:52.676004Z"
Provider
| Field | Type | Description | 
|---|---|---|
| id | string | Provider unique identifier | 
| type | string | Provider type | 
| urn | string | Unique provider URN | 
| config | object(ProviderConfig) | Provider Configuration | 
| created_at | string | Timestamp when the provider created. | 
| updated_at | string | Timestamp when the provider last modified. | 
ProviderConfig
| Field | Type | Description | Required | 
|---|---|---|---|
type | string | This field conatains the name of the Resource Provider Possible values can be: - BigQuery : bigquery - Google Cloud Storage : gcs - Tableau : tableau - Grafana : grafana - Metabase : metabase - Google Cloud IAM : gcloud_iam - No-Op : noop  | Yes | 
urn | string | Provider instance identifier | Yes | 
allowed_account_types | [string] | Optional. List of allowed account types. Each provider could have different account types, but user account type is applicable for any provider type | No | 
credentials | object | Credentials required to setup connection and access the provider  Possible values: BigQuery: object(BigQuery) Google Cloud Storage : object(GCS) Metabase: object(Metabase) Tableau: object(Tableau) Grafana:object(Grafana) Google Cloud IAM: object(GCloudIAM) No-Op: Nil | Yes | 
appeal | object(AppealConfig) | Contains details of the tenure for which an access for a resource is provided. Contains two fields allow_permanent_access and allow_active_access_extension_in for permanent access and time before which the user can appeal for an extention | Yes | 
resources | [object(ResourceConfig)] | Contains the configurations for each resource . The fields type and policy stores the type of resource and the policy associated with it. Roles conatins the role (say Viewer, Editor, Writer) which the resource supports | Yes | 
parameters | object(ProviderParameter) | Optional. Contains the parameters for the provider. | No | 
AppealConfig
| Field | Type | Description | Required | 
|---|---|---|---|
allow_permanent_access | boolean | Set this to true if you want to allow users to have permanent access to the resources. Default: false | No | 
allow_active_access_extension_in | string | Duration before the access expiration date when the user allowed to create appeal to the same resource (extend their current access). | No | 
ResourceConfig
| Field | Type | Description | Required | 
|---|---|---|---|
type | string | Possible values for the Resource Type: - BigQuery: string(BigQuery) - Google Cloud Storage: string(GCS) - Metabase: string(Metabase) - Graffana: string(Graffana) - Tableau: string(Tableau) - Google Cloud IAM: string(GCloudIAM) - No-Op: string(No-Op)  | Yes | 
filter | string | Filter condition to add a specific set of resources match with condition. Example: filter: $name endsWith transaction | No | 
policy | object(id: string, version: int) | Approval policy config that want to be applied to this resource config. Example: id: approval_policy_x, version: 1 | Yes | 
roles[] | object(Role) | List of resource permissions mapping | Yes | 
Role
| Field | Type | Description | Required | 
|---|---|---|---|
id | string | Role identifier | Yes | 
name | string | Display name for role | |
permissions[] | object or string | Set of permissions that will be granted to the requested resource. Possible values for Resource Permissions : - BigQuery: object(BigQuery) - Google Cloud Storage: object(GCS) - Metabase: object(Metabase) - Grafana: object(Grafana) - Tableau: object(Tableau) - Google Cloud IAM: object(GCloudIAM) - No-Op : Nil | Yes | 
ProviderParameter
| Field | Type | Description | Required | 
|---|---|---|---|
key | string | The key is unique identifier for the parameter | Yes | 
label | string | The label is used to display the parameter in the UI | Yes | 
required | boolean | Indicates whether the parameter is required or not | Yes | 
description | string | The description of the parameter | No |