Share via


Gerenciar ACLs do registro de dados

Neste artigo, você aprenderá a adicionar ou remover ACLs do registro de dados em sua instância do Azure Data Manager for Energy.

Criar um grupo de dados como ACL

Execute o seguinte comando curl no Azure Cloud Shell para criar um novo grupo de dados, por exemplo, data.sampledb.viewer, na partição de dados específica da instância do Azure Data Manager for Energy.

Formato de solicitação

    curl --location --request POST "https://<adme-url>/api/entitlements/v2/groups/" \
    --header 'data-partition-id: <data-partition>' \
    --header 'Authorization: Bearer <access_token>'
    --data-raw '{
       "description": "<data-group-description>",
       "name": "data.sampledb.viewer"
    }

Criar um registro com ACLs

Formato de solicitação

curl --location --request PUT 'https://<adme-url>/api/storage/v2/records/' \
--header 'data-partition-id: opendes' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <token>’ \
--header 'Content-Type: application/json' \	
--data-raw '[
  {
    "acl": {
      "owners": [
        "data.default.owners@opendes.contoso.com",
        "data.wellbore1.owner@opendes.contoso.com"
      ],
      "viewers": [
        "data.default.viewers@opendes.contoso.com"
      ]
    },
    "data": {
        "FacilityID": "Example External Facility Identifier",
        "Source": "Create Record test"
      },
    "id": "opendes:master-data--Well:999635346360",
    "kind": "osdu:wks:master-data--Well:1.0.0",
    "legal": {
      "legaltags": [
        "opendes-Test-Legal-Tag-2311232"
      ],
      "otherRelevantDataCountries": [
        "US"
      ],
      "status": "compliant"
    },
    "meta": [
      {}
    ],
    "version": 0
  }
]

Resposta de exemplo

{
    "recordCount": 1,
    "recordIds": [
        "opendes:master-data--Well:999736019023"
    ],
    "skippedRecordIds": [],
    "recordIdVersions": [
        "opendes:master-data--Well:999736019023:1702017200855277"
    ]
}

Mantenha o ID do registro da resposta à mão para referências futuras.

Obter registro criado com ACLs

Formato de solicitação

curl --location 'https://<adme-url>/api/storage/v2/records/opendes:master-data--Well:999736019023' \
--header 'data-partition-id: opendes' \
--header 'Authorization: Bearer <token>’

Resposta de exemplo

{
    "data": {
        "FacilityID": "Example External Facility Identifier",
        "Source": "Create Record test"
    },
    "meta": [
        {}
    ],
    "id": "opendes:master-data--Well:999736019023",
    "version": 1702017200855277,
    "kind": "osdu:wks:master-data--Well:1.0.0",
    "acl": {
        "viewers": [
            "data.default.viewers@opendes.contoso.com"
        ],
        "owners": [
            "data.default.owners@opendes.contoso.com",
            "data.wellbore1.owner@opendes.contoso.com"
        ]
    },
    "legal": {
        "legaltags": [
            "opendes-Test-Legal-Tag-2311232"
        ],
        "otherRelevantDataCountries": [
            "US"
        ],
        "status": "compliant"
    },
    "createUser": "preshipping@azureglobal1.onmicrosoft.com",
    "createTime": "2023-12-08T06:33:21.338Z"
}

Excluir ACLs do registro de dados

A primeira /acl/owners/0 operação remove a ACL da 0ª posição na matriz da ACL. Quando você exclui a primeira entrada com essa operação, o sistema a exclui. A segunda entrada anterior torna-se então a primeira entrada. A segunda operação tenta remover a segunda /acl/owners/0 entrada.

Formato de solicitação

curl --location --request PATCH 'https://<adme-url>/api/storage/v2/records/' \
--header 'data-partition-id: opendes' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <token>’\
--header 'Content-Type: application/json-patch+json' \
--data '
{
    "query": {
        "ids": ["opendes:master-data--Well:999736019023"]
    },
    "ops": [
        { 
          "op": "remove", 
          "path": "/acl/owners/0"
        }
      ]
}

Resposta de exemplo

{
      "recordCount": 1,
      "recordIds": [
          "opendes:master-data--Well:999736019023:1702017200855277"
      ],
      "notFoundRecordIds": [],
      "failedRecordIds": [],
      "errors": []
}

Se você excluir a última ACL do proprietário do registro de dados, obterá o erro.

Resposta de exemplo

{
    "recordCount": 0,
    "recordIds": [],
    "notFoundRecordIds": [],
    "failedRecordIds": [
        "opendes:master-data--Well: 999736019023"
    ],
    "errors": [
        "Patch operation for record: opendes:master-data--Well:999512152273 aborted. Potentially empty value of legaltags or acl/owners or acl/viewers"
    ]
}

Próximas etapas

Depois de adicionar ACLs aos registros de dados, você pode:

Você também pode ingerir dados em sua instância do Azure Data Manager for Energy: