Skip to content

Conversation

@jakedoublev
Copy link
Contributor

@jakedoublev jakedoublev commented Mar 11, 2024

Partially addresses #366

Supplies subject mappings / condition sets back for specified value provided in GetAttributeValuesByFqns

Request:

grpcurl -plaintext -d '{"fqns":["https://example.com/attr/attr1/value/value2"],"with_value":{"with_subject_maps":true}}' localhost:9000 policy.attributes.AttributesService.GetAttributeValuesByFqns

Response:

{
  "fqnAttributeValues": {
    "https://example.com/attr/attr1/value/value2": {
      "attribute": {
        "id": "6a261d68-0899-4e17-bb2f-124abba7c09c",
        "namespace": {
          "id": "8f1d8839-2851-4bf4-8bf4-5243dbfe517d",
          "name": "example.com"
        },
        "name": "attr1",
        "rule": "ATTRIBUTE_RULE_TYPE_ENUM_ANY_OF",
        "values": [
          {
            "id": "74babca6-016f-4f3e-a99b-4e46ea8d0fd8",
            "value": "value1",
            "active": true
          },
          {
            "id": "2fe8dea1-3555-498c-afe9-99724f35f3d3",
            "value": "value2",
            "members": [
              "0fd363db-27b1-4210-b77b-8c82fe044d41",
              "532e5957-28f7-466d-91e2-493e9431cd83"
            ],
            "fqn": "https://example.com/attr/attr1/value/value2",
            "active": true
          }
        ],
        "active": true,
        "metadata": {
          
        }
      },
      "value": {
        "id": "2fe8dea1-3555-498c-afe9-99724f35f3d3",
        "value": "value2",
        "members": [
          "0fd363db-27b1-4210-b77b-8c82fe044d41",
          "532e5957-28f7-466d-91e2-493e9431cd83"
        ],
        "fqn": "https://example.com/attr/attr1/value/value2",
        "active": true,
        "subjectMappings": [
          {
            "id": "e6a3f940-e24f-4383-8763-718a1a304948",
            "subjectConditionSet": {
              "id": "798aacd2-abaf-4623-975e-3bb8ca43e318",
              "subjectSets": [
                {
                  "conditionGroups": [
                    {
                      "conditions": [
                        {
                          "subjectExternalField": "department",
                          "operator": "SUBJECT_MAPPING_OPERATOR_ENUM_IN",
                          "subjectExternalValues": [
                            "marketing",
                            "sales"
                          ]
                        },
                        {
                          "subjectExternalField": "role",
                          "operator": "SUBJECT_MAPPING_OPERATOR_ENUM_IN",
                          "subjectExternalValues": [
                            "senior_vice_president",
                            "vice_president",
                            "director"
                          ]
                        }
                      ],
                      "booleanOperator": "CONDITION_BOOLEAN_TYPE_ENUM_AND"
                    }
                  ]
                }
              ]
            },
            "actions": [
              {
                "standard": "STANDARD_ACTION_TRANSMIT"
              },
              {
                "standard": "STANDARD_ACTION_DECRYPT"
              }
            ]
          }
        ]
      }
    }
  }
}

@jakedoublev jakedoublev changed the title DRAFT: feat(policy object selectors): adds initial selector protos and moves policy object type messages to top-level to avoid circular imports feat(policy object selectors): adds initial selector protos and moves policy object type messages to top-level to avoid circular imports Mar 12, 2024
@jakedoublev jakedoublev changed the title feat(policy object selectors): adds initial selector protos and moves policy object type messages to top-level to avoid circular imports feat(policy object selectors): adds initial selector protos, moves policy object type messages to top-level to avoid circular imports, and provides subject mappings in response to GetAttributeValuesByFqns Mar 12, 2024
@jakedoublev jakedoublev marked this pull request as ready for review March 12, 2024 21:09
@jakedoublev jakedoublev requested a review from a team as a code owner March 12, 2024 21:09
pflynn-virtru
pflynn-virtru previously approved these changes Mar 12, 2024
pflynn-virtru
pflynn-virtru previously approved these changes Mar 12, 2024
@jakedoublev jakedoublev added this pull request to the merge queue Mar 12, 2024
Merged via the queue into main with commit e9d9241 Mar 12, 2024
@jakedoublev jakedoublev deleted the policy/selectors branch March 12, 2024 22:12
@jakedoublev
Copy link
Contributor Author

Closes #276

github-merge-queue bot pushed a commit that referenced this pull request Apr 22, 2024
🤖 I have created a release *beep* *boop*
---


##
[0.1.0](protocol/go-v0.1.0...protocol/go/v0.1.0)
(2024-04-22)


### Features

* **attr value lookup by fqn:** adds GetAttributesByFqns rpc in
attributes service
[#243](#243)
([#250](#250))
([b810d33](b810d33))
* **auth:** add authorization via casbin
([#417](#417))
([292f2bd](292f2bd))
* **authorization service:** Gets the attributes from the in-memory
service connection inside the GetDecisions request
([#273](#273))
([ce57117](ce57117))
* **authorization:** entitlements
([#247](#247))
([42c4f27](42c4f27))
* **core:** exposes new well-known configuration endpoint
([#299](#299))
([d52cd21](d52cd21))
* **idp-add-on:** PLAT-3005 Add keycloak idp add on and idp add on
protos ([#233](#233))
([2365e61](2365e61))
* **kas:** authorization decisions
([#431](#431))
([82e8895](82e8895))
* **PLAT-2950:** Update buf generated interface code for java
([#240](#240))
([d7e2642](d7e2642))
* **policy object selectors:** adds initial selector protos, moves
policy object type messages to top-level to avoid circular imports, and
provides subject mappings in response to GetAttributeValuesByFqns
([#372](#372))
([e9d9241](e9d9241))
* **policy subject mappings condition sets / migrations:** adds DB
schema, fixes migrate down command, adds migrate up command, bumps goose
([#286](#286))
([4d7a032](4d7a032))
* **policy:** adds support for match subject request to get entitlements
without FQN scopes
([#347](#347))
([63c34a5](63c34a5))
* **policy:** enhance and expand metadata and normalize API
([#314](#314))
([9389f3b](9389f3b))
* **policy:** enhance subject mappings with subject condition sets
([#321](#321))
([df692eb](df692eb))
* **policy:** list attrs by namespace
([#479](#479))
([92d8f8c](92d8f8c))
* **policy:** list attrs by namespace name
([#487](#487))
([04e723f](04e723f))
* **policy:** rework attribute value members
([#398](#398))
([1cb7d0c](1cb7d0c))
* **policy:** support attribute value creation
([#454](#454))
([432ee6b](432ee6b))
* **policy:** update fixtures, proto comments, and proto field names to
reflect use of jq selector syntax within Conditions of Subject Sets
([#523](#523))
([16f40f7](16f40f7))


### Bug Fixes

* **authorization:** remove access pdp internal AttributeInstance type
and use policy proto generated struct types instead
([#485](#485))
([8435f59](8435f59))
* **policy:** Adds policy package infix
([#280](#280))
([57e8ef9](57e8ef9))
* **protos:** authorization service's ResourceAttribute message should
map to updated platform policy schema
([#238](#238))
([bf381dc](bf381dc))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: opentdf-automation[bot] <149537512+opentdf-automation[bot]@users.noreply.github.com>
tech-guru42 added a commit to tech-guru42/TDF that referenced this pull request Jun 3, 2024
🤖 I have created a release *beep* *boop*
---


##
[0.1.0](opentdf/platform@protocol/go-v0.1.0...protocol/go/v0.1.0)
(2024-04-22)


### Features

* **attr value lookup by fqn:** adds GetAttributesByFqns rpc in
attributes service
[#243](opentdf/platform#243)
([#250](opentdf/platform#250))
([b810d33](opentdf/platform@b810d33))
* **auth:** add authorization via casbin
([#417](opentdf/platform#417))
([292f2bd](opentdf/platform@292f2bd))
* **authorization service:** Gets the attributes from the in-memory
service connection inside the GetDecisions request
([#273](opentdf/platform#273))
([ce57117](opentdf/platform@ce57117))
* **authorization:** entitlements
([#247](opentdf/platform#247))
([42c4f27](opentdf/platform@42c4f27))
* **core:** exposes new well-known configuration endpoint
([#299](opentdf/platform#299))
([d52cd21](opentdf/platform@d52cd21))
* **idp-add-on:** PLAT-3005 Add keycloak idp add on and idp add on
protos ([#233](opentdf/platform#233))
([2365e61](opentdf/platform@2365e61))
* **kas:** authorization decisions
([#431](opentdf/platform#431))
([82e8895](opentdf/platform@82e8895))
* **PLAT-2950:** Update buf generated interface code for java
([#240](opentdf/platform#240))
([d7e2642](opentdf/platform@d7e2642))
* **policy object selectors:** adds initial selector protos, moves
policy object type messages to top-level to avoid circular imports, and
provides subject mappings in response to GetAttributeValuesByFqns
([#372](opentdf/platform#372))
([e9d9241](opentdf/platform@e9d9241))
* **policy subject mappings condition sets / migrations:** adds DB
schema, fixes migrate down command, adds migrate up command, bumps goose
([#286](opentdf/platform#286))
([4d7a032](opentdf/platform@4d7a032))
* **policy:** adds support for match subject request to get entitlements
without FQN scopes
([#347](opentdf/platform#347))
([63c34a5](opentdf/platform@63c34a5))
* **policy:** enhance and expand metadata and normalize API
([#314](opentdf/platform#314))
([9389f3b](opentdf/platform@9389f3b))
* **policy:** enhance subject mappings with subject condition sets
([#321](opentdf/platform#321))
([df692eb](opentdf/platform@df692eb))
* **policy:** list attrs by namespace
([#479](opentdf/platform#479))
([92d8f8c](opentdf/platform@92d8f8c))
* **policy:** list attrs by namespace name
([#487](opentdf/platform#487))
([04e723f](opentdf/platform@04e723f))
* **policy:** rework attribute value members
([#398](opentdf/platform#398))
([1cb7d0c](opentdf/platform@1cb7d0c))
* **policy:** support attribute value creation
([#454](opentdf/platform#454))
([432ee6b](opentdf/platform@432ee6b))
* **policy:** update fixtures, proto comments, and proto field names to
reflect use of jq selector syntax within Conditions of Subject Sets
([#523](opentdf/platform#523))
([16f40f7](opentdf/platform@16f40f7))


### Bug Fixes

* **authorization:** remove access pdp internal AttributeInstance type
and use policy proto generated struct types instead
([#485](opentdf/platform#485))
([8435f59](opentdf/platform@8435f59))
* **policy:** Adds policy package infix
([#280](opentdf/platform#280))
([57e8ef9](opentdf/platform@57e8ef9))
* **protos:** authorization service's ResourceAttribute message should
map to updated platform policy schema
([#238](opentdf/platform#238))
([bf381dc](opentdf/platform@bf381dc))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: opentdf-automation[bot] <149537512+opentdf-automation[bot]@users.noreply.github.com>
passion-127 added a commit to passion-127/TDF that referenced this pull request Jun 6, 2024
🤖 I have created a release *beep* *boop*
---


##
[0.1.0](opentdf/platform@protocol/go-v0.1.0...protocol/go/v0.1.0)
(2024-04-22)


### Features

* **attr value lookup by fqn:** adds GetAttributesByFqns rpc in
attributes service
[#243](opentdf/platform#243)
([#250](opentdf/platform#250))
([b810d33](opentdf/platform@b810d33))
* **auth:** add authorization via casbin
([#417](opentdf/platform#417))
([292f2bd](opentdf/platform@292f2bd))
* **authorization service:** Gets the attributes from the in-memory
service connection inside the GetDecisions request
([#273](opentdf/platform#273))
([ce57117](opentdf/platform@ce57117))
* **authorization:** entitlements
([#247](opentdf/platform#247))
([42c4f27](opentdf/platform@42c4f27))
* **core:** exposes new well-known configuration endpoint
([#299](opentdf/platform#299))
([d52cd21](opentdf/platform@d52cd21))
* **idp-add-on:** PLAT-3005 Add keycloak idp add on and idp add on
protos ([#233](opentdf/platform#233))
([2365e61](opentdf/platform@2365e61))
* **kas:** authorization decisions
([#431](opentdf/platform#431))
([82e8895](opentdf/platform@82e8895))
* **PLAT-2950:** Update buf generated interface code for java
([#240](opentdf/platform#240))
([d7e2642](opentdf/platform@d7e2642))
* **policy object selectors:** adds initial selector protos, moves
policy object type messages to top-level to avoid circular imports, and
provides subject mappings in response to GetAttributeValuesByFqns
([#372](opentdf/platform#372))
([e9d9241](opentdf/platform@e9d9241))
* **policy subject mappings condition sets / migrations:** adds DB
schema, fixes migrate down command, adds migrate up command, bumps goose
([#286](opentdf/platform#286))
([4d7a032](opentdf/platform@4d7a032))
* **policy:** adds support for match subject request to get entitlements
without FQN scopes
([#347](opentdf/platform#347))
([63c34a5](opentdf/platform@63c34a5))
* **policy:** enhance and expand metadata and normalize API
([#314](opentdf/platform#314))
([9389f3b](opentdf/platform@9389f3b))
* **policy:** enhance subject mappings with subject condition sets
([#321](opentdf/platform#321))
([df692eb](opentdf/platform@df692eb))
* **policy:** list attrs by namespace
([#479](opentdf/platform#479))
([92d8f8c](opentdf/platform@92d8f8c))
* **policy:** list attrs by namespace name
([#487](opentdf/platform#487))
([04e723f](opentdf/platform@04e723f))
* **policy:** rework attribute value members
([#398](opentdf/platform#398))
([1cb7d0c](opentdf/platform@1cb7d0c))
* **policy:** support attribute value creation
([#454](opentdf/platform#454))
([432ee6b](opentdf/platform@432ee6b))
* **policy:** update fixtures, proto comments, and proto field names to
reflect use of jq selector syntax within Conditions of Subject Sets
([#523](opentdf/platform#523))
([16f40f7](opentdf/platform@16f40f7))


### Bug Fixes

* **authorization:** remove access pdp internal AttributeInstance type
and use policy proto generated struct types instead
([#485](opentdf/platform#485))
([8435f59](opentdf/platform@8435f59))
* **policy:** Adds policy package infix
([#280](opentdf/platform#280))
([57e8ef9](opentdf/platform@57e8ef9))
* **protos:** authorization service's ResourceAttribute message should
map to updated platform policy schema
([#238](opentdf/platform#238))
([bf381dc](opentdf/platform@bf381dc))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: opentdf-automation[bot] <149537512+opentdf-automation[bot]@users.noreply.github.com>
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

Successfully merging this pull request may close these issues.

4 participants