openfga @ v1.22.0
integrity
- size
- 1.3 MiB
- downloaded
- last checked
- overlays
- go
- detected
- go module github.com/openfga/openfga
release notes
What's Changed
Added
- Added read-replica (primary/secondary) support to the MySQL datastore backend, matching the existing PostgreSQL behaviour. Configure a secondary connection via
--datastore-secondary-uri(orOPENFGA_DATASTORE_SECONDARY_URI); all reads except those requestingHIGHER_CONSISTENCYare routed to the replica while all writes remain on the primary.GetStore,ListStores,ReadAssertions,ReadAuthorizationModel,ReadAuthorizationModels,FindLatestAuthorizationModel, andReadChangesalways hit the replica when configured regardless of requested consistency — callers should be aware of read-after-write risk on a lagging replica. Seepkg/storage/mysql/mysql.go. Breaking:mysql.NewWithDBgained a requiredsecondaryDB *sql.DBparameter (passnilif no replica is configured);sqlcommon.ReadAuthorizationModelandsqlcommon.FindLatestAuthorizationModelwere removed and moved to per-backend implementations. #3290 Thanks @chiragsoni-eternal for the contribution!
Changed
Fixed
ReadUserTuplenow returns the tuple's timestamp for the Postgres, MySQL, and SQLite datastores; it previously returned a zero timestamp because the query did not selectinserted_at. #3194 Thanks @nikolauspschuetz for the contribution!
Security
- Updated google.golang.org/grpc to v1.83.2 to resolve GO-2026-6443. #3317
New Contributors
- @chiragsoni-eternal made their first contribution in https://github.com/openfga/openfga/pull/3290
- @nikolauspschuetz made their first contribution in https://github.com/openfga/openfga/pull/3194
Full Changelog: https://github.com/openfga/openfga/compare/v1.21.0...v1.22.0
download
unix · zip
curl -fL -o v1.22.0.zip https://ratatoskr.space/pkg/openfga/v1.22.0.zip
printf '%s %s\n' '830f076776e263d046fab2ea8ca7fa7e2fcd7e4607f7d8ee2c8aaf021555daab' 'v1.22.0.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/openfga/v1.22.0.zip"
$out = "v1.22.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "830f076776e263d046fab2ea8ca7fa7e2fcd7e4607f7d8ee2c8aaf021555daab") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1.22.0.tar.gz https://ratatoskr.space/pkg/openfga/v1.22.0.tar.gz
printf '%s %s\n' '5a4df0a01986d35843412f51520dbc9d76d72585ee7afeb8eea0908e2d3e1af9' 'v1.22.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/openfga/v1.22.0.tar.gz"
$out = "v1.22.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "5a4df0a01986d35843412f51520dbc9d76d72585ee7afeb8eea0908e2d3e1af9") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v1.22.0.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/openfga/v1.22.0.zip
printf '%s %s\n' '830f076776e263d046fab2ea8ca7fa7e2fcd7e4607f7d8ee2c8aaf021555daab' 'v1.22.0.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/openfga/v1.22.0.zip"
$out = "v1.22.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "830f076776e263d046fab2ea8ca7fa7e2fcd7e4607f7d8ee2c8aaf021555daab") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1.22.0.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/openfga/v1.22.0.tar.gz
printf '%s %s\n' '5a4df0a01986d35843412f51520dbc9d76d72585ee7afeb8eea0908e2d3e1af9' 'v1.22.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/openfga/v1.22.0.tar.gz"
$out = "v1.22.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "5a4df0a01986d35843412f51520dbc9d76d72585ee7afeb8eea0908e2d3e1af9") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| v1.22.0.zip | zip | 1.3 MiB |
blake3-24 da0dc71d0f528b42a9c912574dec1cb4651cfd982b373a06
sha256 830f076776e263d046fab2ea8ca7fa7e2fcd7e4607f7d8ee2c8aaf021555daab
sha1 57e8f4b42b8fe506fe58413f72ff08553c15100f
|
| v1.22.0.tar.gz | tar.gz | 1.1 MiB |
blake3-24 868bbb746873e1a488d0cfb9f72b5be17451162f73f227c9
sha256 5a4df0a01986d35843412f51520dbc9d76d72585ee7afeb8eea0908e2d3e1af9
sha1 e840fcc159f3a958ad9c85e66adfc8e77e9972c8
|
go module archive
module zip with the module path rewritten to this mirror; fetched by go get through the
GOPROXY route
| artifact | format | size | hashes |
|---|---|---|---|
| v1.22.0.zip | zip | 1.4 MiB |
blake3-24 71158b7cbfbcf09d0404b81e8ddb516f767fdabb0542a956
sha256 26e1151de97cd0454246cd83c23e5cdb0260193938845d1aada107d6c508eaf9
sha1 cb7b3518a90b152d8fb4fcef2cda3fc6218ceef5
|
install
bazel
http_archive(
name = "openfga",
urls = ["https://ratatoskr.space/pkg/openfga/v1.22.0.tar.gz"],
integrity = "sha256-Wk3woBmG01hDQS9RUg28nXbXJYXuev647qCQji0+Gvk=",
strip_prefix = "openfga-v1.22.0",
)
zig
.url = "https://ratatoskr.space/pkg/openfga/v1.22.0.tar.gz",
go
GOPROXY=https://ratatoskr.space GOSUMDB=off go get ratatoskr.space/pkg/openfga@v1.22.0
install via yggdrasil mesh
bazel
http_archive(
name = "openfga",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/openfga/v1.22.0.tar.gz"],
integrity = "sha256-Wk3woBmG01hDQS9RUg28nXbXJYXuev647qCQji0+Gvk=",
strip_prefix = "openfga-v1.22.0",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/openfga/v1.22.0.tar.gz",
go
GOPROXY=http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg GOSUMDB=off GOINSECURE=14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/* go get 14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/openfga@v1.22.0