snapshot of https://github.com/ory/keto.git (master, 2026-09-16; blobs > 131072B omitted)
Some checks failed
CI / Run lints and checks (push) Failing after 47s
CI / Run tests (push) Failing after 1s
CI / Run race tests (push) Failing after 5s
CI / Build CLI docs (push) Has been skipped
CI / Run buf actions (push) Failing after 5s
CodeQL / Analyze (go) (push) Failing after 3s
CodeQL / Analyze (javascript) (push) Failing after 2s
Docker Image Scanners / scanners (push) Failing after 3s
Format / format (push) Failing after 3s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Draft newsletter (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped

This commit is contained in:
upstream-mirror
2026-09-16 01:08:34 +05:00
commit 9456a4e922
2560 changed files with 120911 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
dsn: memory
namespaces:
location: file://./namespaces.keto.ts
log:
level: trace

View File

@@ -0,0 +1,47 @@
// Copyright © 2023 Ory Corp
// SPDX-License-Identifier: Apache-2.0
import { Namespace, SubjectSet, Context } from "@ory/keto-namespace-types"
class User implements Namespace {
related: {
manager: User[]
}
}
class Group implements Namespace {
related: {
members: (User | Group)[]
}
}
class Folder implements Namespace {
related: {
parents: (File | Folder)[]
viewers: SubjectSet<Group, "members">[]
}
permits = {
view: (ctx: Context): boolean =>
this.related.viewers.includes(ctx.subject) ||
this.related.parents.traverse((p) => p.permits.view(ctx)),
}
}
class File implements Namespace {
related: {
parents: (File | Folder)[]
viewers: (User | SubjectSet<Group, "members">)[]
owners: (User | SubjectSet<Group, "members">)[]
}
// Some comment
permits = {
view: (ctx: Context): boolean =>
this.related.parents.traverse((p) => p.permits.view(ctx)) ||
this.related.viewers.includes(ctx.subject) ||
this.related.owners.includes(ctx.subject),
edit: (ctx: Context) => this.related.owners.includes(ctx.subject),
}
}

View File

@@ -0,0 +1,58 @@
{
"name": "rewrites-example",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "rewrites-example",
"devDependencies": {
"@ory/keto-namespace-types": "file:../namespace-type-lib",
"typescript": "latest"
}
},
"../../../../../../namespace-type-lib": {
"extraneous": true
},
"../namespace-type-lib": {
"name": "@ory/keto-namespace-types",
"version": "0.9.0-alpha.0",
"dev": true,
"devDependencies": {
"@ory/keto-namespace-types": "file:./",
"typescript": "^4.7.4"
}
},
"node_modules/@ory/keto-namespace-types": {
"resolved": "../namespace-type-lib",
"link": true
},
"node_modules/typescript": {
"version": "4.7.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
"integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=4.2.0"
}
}
},
"dependencies": {
"@ory/keto-namespace-types": {
"version": "file:../namespace-type-lib",
"requires": {
"@ory/keto-namespace-types": "file:",
"typescript": "^4.7.4"
}
},
"typescript": {
"version": "4.7.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
"integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
"dev": true
}
}
}

View File

@@ -0,0 +1,7 @@
{
"private": true,
"devDependencies": {
"@ory/keto-namespace-types": "file:../namespace-type-lib",
"typescript": "latest"
}
}

View File

@@ -0,0 +1,66 @@
[
{
"namespace": "Group",
"object": "developer",
"relation": "members",
"subject_set": {
"namespace": "User",
"object": "Patrik"
}
},
{
"namespace": "Group",
"object": "developer",
"relation": "members",
"subject_set": {
"namespace": "User",
"object": "Henning"
}
},
{
"namespace": "Folder",
"object": "keto/",
"relation": "viewers",
"subject_set": {
"namespace": "Group",
"object": "developer",
"relation": "members"
}
},
{
"namespace": "File",
"object": "keto/README.md",
"relation": "parents",
"subject_set": {
"namespace": "Folder",
"object": "keto/"
}
},
{
"namespace": "Folder",
"object": "keto/src/",
"relation": "parents",
"subject_set": {
"namespace": "Folder",
"object": "keto/"
}
},
{
"namespace": "File",
"object": "keto/src/main.go",
"relation": "parents",
"subject_set": {
"namespace": "Folder",
"object": "keto/src/"
}
},
{
"namespace": "File",
"object": "private",
"relation": "owners",
"subject_set": {
"namespace": "User",
"object": "Henning"
}
}
]

View File

@@ -0,0 +1,3 @@
{
"extends": "@ory/keto-namespace-types/tsconfig.json"
}