Skip to content

The gRPC API does not allow us to delete relation tuples in bulk when Subject is not specified #1615

Open
@evgeniradev

Description

Preflight checklist

Ory Network Project

No response

Describe the bug

The REST API allows us to delete relation tuples in bulk when the Subject is not specified. However, the gRPC API does not - it expects a Subject to be provided at all times and raises and error if it is missing.

Reproducing the bug

gRPC example in Ruby:

require 'ory/keto/relation_tuples/v1alpha2/write_service_services_pb'

relation_tuple = 
  Ory::Keto::RelationTuples::V1alpha2::RelationTuple.new(
    namespace: 'Namespace_A', 
    object: '123',
    relation: 'members'
  )

request = Ory::Keto::RelationTuples::V1alpha2::TransactRelationTuplesRequest.new(
  relation_tuple_deltas: [
    Ory::Keto::RelationTuples::V1alpha2::RelationTupleDelta.new(
      action: Ory::Keto::RelationTuples::V1alpha2::RelationTupleDelta::Action::ACTION_DELETE,
      relation_tuple:
    )
  ]
)

Ory::Keto::RelationTuples::V1alpha2::WriteService::Stub.new(
  OryKetoApiClient.base_write_api_url,
  :this_channel_is_insecure,
).transact_relation_tuples(request)

# GRPC::InvalidArgument: 3:subject is not allowed to be nil. debug_error_string:{UNKNOWN:Error received from peer  {created_time:"2024-10-30T09:28:01.470304+00:00", grpc_status:3, grpc_message:"subject is not allowed to be nil"}}

REST example in Ruby:

require 'http'

HTTP.headers(
  'Accept' => 'application/json',
  'Content-Type' => 'application/json'
).delete('http://localhost:4467/admin/relation-tuples?namespace=Namespace_A&object=123&relation=members')

Relevant log output

No response

Relevant configuration

No response

Version

v0.13.0-alpha.0

On which operating system are you observing this issue?

None

In which environment are you deploying?

None

Additional Context

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    bugSomething is not working.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions