Commits
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
spindle admin allow <user>
spindle admin block <user>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
spindle members will be stored in db
repo collaborators will be managed by rbac/v2
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
Use `dom` field rather than `obj` to filter by repository.
So now it's "user with role A in repo B can do action D to object C"
where `A,B,C,D` are `sub,dom,obj,act`.
spindle user ACL and repository collaborator ACL are slightly different
models. For example, from spindle, it should be able to `InviteOnly`
config when unspecificed.
rbac/v2 can be removed one we use repo-did as delegated account
see: <https://tangled.org/tangled.org/core/issues/701>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
so we can run tests on non-linux machines too
Signed-off-by: Seongmin Lee <git@boltless.me>
This allows spindle build on non-linux machines like darwin.
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Wilhelm Berggren <wilhelmberggren@gmail.com>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Wilhelm Berggren <wilhelmberggren@gmail.com>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Wilhelm Berggren <wilhelmberggren@gmail.com>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Wilhelm Berggren <wilhelmberggren@gmail.com>
Signed-off-by: Seongmin Lee <git@boltless.me>
Ideally both `body` and `blobs` should be wrapped as single `body` field
with `sh.tangled.markup.markdown` type like `sh.tangled.feed.comment`
records, but that breaking change is deferred for later `org.tangled.*`
migration.
Signed-off-by: Wilhelm Berggren <wilhelmberggren@gmail.com>
Signed-off-by: Seongmin Lee <git@boltless.me>
Lewis: May this revision serve well! <did:plc:3fwecdnvtcscjnrx2p4n7alz>
`if` effectively neuters `set -e`:
```
$ bash -c 'set -ex; f() { false; echo 123; }; if f; then echo 456; fi'
+ f
+ false
+ echo 123
123
+ echo 456
456
```
so the test keeps on running. Instead, we can rely on `exit` (which is
not going to break as easily) + a subshell to make sure we actually
catch error codes. (This might also cause other forms of test "failure"
to not get detected, as well.)
Lewis: May this revision serve well! <did:plc:3fwecdnvtcscjnrx2p4n7alz>
Lewis: May this revision serve well! <did:plc:3fwecdnvtcscjnrx2p4n7alz>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.org>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.org>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.org>
it fails on file:// clone
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: dawn <dawn@tangled.org>
Lewis: May this revision serve well! <did:plc:3fwecdnvtcscjnrx2p4n7alz>
Signed-off-by: Trey Bastian <hello@treybastian.com>
fixed reversing the env var names
Signed-off-by: Trey Bastian <hello@treybastian.com>
Signed-off-by: dawn <dawn@tangled.org>
Lewis: May this revision serve well! <did:plc:3fwecdnvtcscjnrx2p4n7alz>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: dawn <dawn@tangled.org>
Signed-off-by: dawn <dawn@tangled.org>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: dawn <dawn@tangled.org>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.org>
Signed-off-by: dawn <dawn@tangled.org>
initCgroupParent skips the parent-process move at group "/", assuming
the real root cgroup, which is exempt from the no-internal-process
constraint. in a private cgroup namespace (podman and docker's default
on cgroup v2) "/" is a populated delegated NON-root cgroup instead, so
the first workflow fails: 'failed to write subtree controllers
[memory pids] to "/sys/fs/cgroup/cgroup.subtree_control"': EBUSY.
userspace cannot tell the two "/"s apart — cgroup namespaces
virtualize /proc/self/cgroup and mountinfo for the reader — but the
constraint can: it exempts only the real root. probe it by writing
+memory +pids to cgroup.subtree_control: succeeds at the real root
(the same write prepareCgroup does per microVM anyway), EBUSY at a
populated namespace root, where we then vacate exactly as on the
group != "/" path. a read-only cgroupfs now fails loudly at init
instead of mid-workflow.
verified in scratch podman containers: unpatched reproduces the EBUSY,
patched passes the new regression test and enforces memory.max.
Signed-off-by: Winter <winter@madoka.systems>
Signed-off-by: noriaki watanabe <nabeyang@gmail.com>
Signed-off-by: Seongmin Lee <git@boltless.me>
This still marks the unshown ones as "emailed" so we don't send them in
the next digest tick.
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.org>
It was still using HTMX based comment toggle which has been removed from
`64c94491`.
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: dawn <dawn@tangled.org>
Signed-off-by: dawn <dawn@tangled.org>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: dawn <dawn@tangled.org>
Signed-off-by: dawn <dawn@tangled.org>
Signed-off-by: Seongmin Lee <git@boltless.me>
Use `dom` field rather than `obj` to filter by repository.
So now it's "user with role A in repo B can do action D to object C"
where `A,B,C,D` are `sub,dom,obj,act`.
spindle user ACL and repository collaborator ACL are slightly different
models. For example, from spindle, it should be able to `InviteOnly`
config when unspecificed.
rbac/v2 can be removed one we use repo-did as delegated account
see: <https://tangled.org/tangled.org/core/issues/701>
Signed-off-by: Seongmin Lee <git@boltless.me>
Ideally both `body` and `blobs` should be wrapped as single `body` field
with `sh.tangled.markup.markdown` type like `sh.tangled.feed.comment`
records, but that breaking change is deferred for later `org.tangled.*`
migration.
Signed-off-by: Wilhelm Berggren <wilhelmberggren@gmail.com>
Signed-off-by: Seongmin Lee <git@boltless.me>
`if` effectively neuters `set -e`:
```
$ bash -c 'set -ex; f() { false; echo 123; }; if f; then echo 456; fi'
+ f
+ false
+ echo 123
123
+ echo 456
456
```
so the test keeps on running. Instead, we can rely on `exit` (which is
not going to break as easily) + a subshell to make sure we actually
catch error codes. (This might also cause other forms of test "failure"
to not get detected, as well.)
initCgroupParent skips the parent-process move at group "/", assuming
the real root cgroup, which is exempt from the no-internal-process
constraint. in a private cgroup namespace (podman and docker's default
on cgroup v2) "/" is a populated delegated NON-root cgroup instead, so
the first workflow fails: 'failed to write subtree controllers
[memory pids] to "/sys/fs/cgroup/cgroup.subtree_control"': EBUSY.
userspace cannot tell the two "/"s apart — cgroup namespaces
virtualize /proc/self/cgroup and mountinfo for the reader — but the
constraint can: it exempts only the real root. probe it by writing
+memory +pids to cgroup.subtree_control: succeeds at the real root
(the same write prepareCgroup does per microVM anyway), EBUSY at a
populated namespace root, where we then vacate exactly as on the
group != "/" path. a read-only cgroupfs now fails loudly at init
instead of mid-workflow.
verified in scratch podman containers: unpatched reproduces the EBUSY,
patched passes the new regression test and enforces memory.max.
Signed-off-by: Winter <winter@madoka.systems>