v1.1.0
Tokens and configs bright,
Type safety brings such delight,
Code shines clear and right.
Added
-
Streamlined model management with helper functions
Managing FGA stores and models just got a lot simpler. We've introduced a suite of helper functions
that reduce boilerplate and make your authorization code more readable.-
store- Find or create stores effortlessly
No more manual store lookups. This helper finds your store by name or creates it if it doesn't exist:use function OpenFGA\store; $store = store( client: $client, name: 'my-php-store', );
-
dsl- Write models in plain text
Define your authorization models using FGA's intuitive DSL syntax instead of verbose JSON:use function OpenFGA\dsl; $dsl = dsl(<<<'DSL' model schema 1.1 type user type document relations define viewer: [user] define editor: [user] and viewer DSL);
-
model- Deploy models with one call
Transform your DSL into a live authorization model with automatic version management:use function OpenFGA\model; $model = model( client: $client, store: $store, typeDefinitions: $dsl->getTypeDefinitions(), );
-
-
Simplified permission management
Three new helper functions make it dead simple to manage permissions in your application:-
write- Grant permissionsuse function OpenFGA\write; $tuple = tuple('user:anne', 'viewer', 'document:roadmap'); // "Anne has viewer access to roadmap" write( client: $client, store: $store, model: $model, tuples: $tuple, );
-
delete- Revoke permissionsuse function OpenFGA\delete; $tuple = tuple('user:anne', 'viewer', 'document:roadmap'); // "Anne no longer has viewer access to roadmap" delete( client: $client, store: $store, model: $model, tuples: $tuple, );
-
allowed- Check permissionsuse function OpenFGA\allowed; $tuple = tuple('user:anne', 'viewer', 'document:roadmap'); // "Can Anne view the roadmap?" allowed( client: $client, store: $store, model: $model, tupleKey: $tuple, );
-
These helpers eliminate the need to manually construct request objects,
making your authorization code cleaner and less error-prone.
Fixed
- More robust schema validation
We've strengthened the DSL validator to handle edge cases that previously slipped through.
Your models will now be validated more thoroughly before deployment, catching potential issues early.