API Models TupleKey - evansims/openfga-php GitHub Wiki
Represents a relationship tuple key defining a connection between user, relation, and object. A TupleKey is the fundamental unit of authorization in OpenFGA, representing a specific relationship like "user:anne is reader of document:budget." It consists of three parts: user (who), relation (what type of access), and object (what resource), optionally with conditions for attribute-based access. Use this when creating, querying, or managing specific relationships in your authorization system.
Table of Contents
OpenFGA\Models
TupleKeyInterface
JsonSerializable
ModelInterface
- TupleKeyInterface (interface)
- TupleKeys (collection)
Name | Value | Description |
---|---|---|
OPENAPI_MODEL |
TupleKey |
public function getCondition(): ?OpenFGA\Models\ConditionInterface
Get the condition that constrains this relationship. Conditions enable dynamic authorization by allowing relationships to be conditional based on runtime context, such as time of day, resource attributes, or other factors. When a condition is present, the relationship is only valid when the condition evaluates to true.
ConditionInterface
| null
— The condition that must be satisfied for this relationship to be valid, or null for an unconditional relationship
public function getObject(): string
Get the object in this relationship tuple. The object represents the resource or entity that the permission or relationship applies to. For example, in "user:alice can view document:readme," the object would be "document:readme." Objects are typically formatted as "type:id" where type describes the kind of resource.
string
— The object identifier
public function getRelation(): string
Get the relation that defines the type of relationship. The relation describes what kind of permission or relationship exists between the user and object. For example, common relations include "owner," "viewer," "editor," "can_read," "can_write." Relations are defined in your authorization model and determine what actions are permitted.
string
— The relation name defining the type of relationship
public function getUser(): string
Get the user (subject) in this relationship tuple. The user represents the entity that has the relationship to the object. This can be an individual user, a group, a role, or any other subject defined in your authorization model. For example, in "user:alice can view document:readme," the user would be "user:alice."
string
— The user identifier
public function jsonSerialize(): array
Serialize the tuple key for JSON encoding. This method prepares the tuple key data for API requests or storage, ensuring all components (user, relation, object, and optional condition) are properly formatted according to the OpenFGA API specification.
array
— The serialized tuple key data ready for JSON encoding
Implements Models\TupleKeyInterface
public function schema(): SchemaInterface
Get the schema definition for this model. This method returns the schema that defines the structure, validation rules, and serialization behavior for this model class. The schema is used for data validation, transformation, and ensuring consistency across API operations with the OpenFGA service. Each model's schema defines: - Required and optional properties - Data types and format constraints - Nested object relationships - Validation rules and business logic constraints The schema system enables the SDK to automatically validate incoming data, transform between different representations, and ensure compliance with the OpenFGA API specification.
SchemaInterface
— The schema definition containing validation rules and property specifications for this model