diff --git a/sys/vane/clay.hoon b/sys/vane/clay.hoon index dd0422f91..06fcd307e 100644 --- a/sys/vane/clay.hoon +++ b/sys/vane/clay.hoon @@ -43,13 +43,13 @@ :: :: Type of request. :: -:: %d produces a set of desks, %u checks for existence, %v produces a ++dome of -:: all desk data, %w with a time or label case gets the aeon at that case, %w -:: with a number case is not recommended, %x gets file contents, %y gets a -:: directory listing, and %z gets a recursive hash of the file contents and -:: children. +:: %d produces a set of desks, %p gets file permissions, %u checks for +:: existence, %v produces a ++dome of all desk data, %w with a time or label +:: case gets the aeon at that case, %w with a number case is not recommended, +:: %x gets file contents, %y gets a directory listing, and %z gets a recursive +:: hash of the file contents and children. :: -:: ++ care ?($d $u $v $w $x $y $z) +:: ++ care ?($d $p $u $v $w $x $y $z) :: :: Keeps track of subscribers. :: @@ -78,6 +78,7 @@ :: ++ dome $: ank/ankh :: state + per/(map path rule) :: permissions by path let/aeon :: top id hit/(map aeon tako) :: versions by id lab/(map @tas aeon) :: labels @@ -183,6 +184,7 @@ :: -- `mon` is a collection of mount points (mount point name to urbit :: location). :: -- `hez` is the unix duct that %ergo's should be sent to. +:: -- `cez` is a collection of named permission groups. :: ++ raft :: filesystem $: fat/(map ship room) :: domestic @@ -190,6 +192,7 @@ ran/rang :: hashes mon/(map term beam) :: mount points hez/(unit duct) :: sync duct + cez/(map @ta crew) :: permission groups == :: :: :: Object store. diff --git a/sys/zuse.hoon b/sys/zuse.hoon index 66b88e51d..6c2b4341e 100644 --- a/sys/zuse.hoon +++ b/sys/zuse.hoon @@ -381,7 +381,8 @@ ++ able ^? |% ++ gift :: out result <-$ - $% {$dirk p/@tas} :: mark mount dirty + $% {$cruz cez/(map @tas crew)} :: permission groups + {$dirk p/@tas} :: mark mount dirty {$ergo p/@tas q/mode} :: version update {$hill p/(list @tas)} :: mount points {$mack p/(unit tang)} :: ack @@ -389,12 +390,15 @@ {$mere p/(each (set path) (pair term tang))} :: merge result {$note p/@tD q/tank} :: debug message {$ogre p/@tas} :: delete mount point + {$rule own/? rul/rule} :: node permission {$send p/lane:ames q/@} :: transmit packet {$writ p/riot} :: response {$wris p/case p/(set path)} :: responses == :: ++ task :: in request ->$ $% {$boat $~} :: pier rebooted + {$crew $~} :: permission groups + {$cred nom/@ta cew/crew} :: set permission group {$drop p/@p q/desk} :: cancel pending merge {$info p/@p q/desk r/nori} :: internal edit {$init p/@p} :: report install @@ -403,6 +407,7 @@ {$mont p/desk q/beam} :: mount to unix {$dirk p/desk} :: mark mount dirty {$ogre p/$@(desk beam)} :: delete mount point + {$perm des/desk pax/path rul/(unit rule)} :: change permissions {$warp p/sock q/riff} :: file request {$wegh $~} :: report memory {$went p/sack q/path r/@ud s/coop} :: response confirm @@ -423,13 +428,14 @@ $% {$delta p/lobe q/{p/mark q/lobe} r/page} :: delta on q {$direct p/lobe q/page} :: immediate == :: - ++ care ?($d $u $v $w $x $y $z) :: clay submode + ++ care ?($d $p $u $v $w $x $y $z) :: clay submode ++ case :: ship desk case spur $% {$da p/@da} :: date {$tas p/@tas} :: label {$ud p/@ud} :: number == :: ++ coop (unit ares) :: e2e ack + ++ crew (set ship) :: permissions group ++ dome :: project state $: ank/ankh :: state let/@ud :: top id @@ -495,6 +501,7 @@ == :: ++ riff {p/desk q/(unit rave)} :: request+desist ++ riot (unit rant) :: response+complete + ++ rule {mod/?($black $white) who/(set whom)} :: node permission ++ rump {p/care q/case r/@tas s/path} :: relative path ++ saba {p/ship q/@tas r/moar s/dome} :: patch+merge ++ soba (list {p/path q/miso}) :: delta @@ -507,6 +514,7 @@ {$| p/(list a) q/(list a)} :: p -> q[chunk] == :: ++ urge |*(a/mold (list (unce a))) :: list change + ++ whom (each ship @ta) :: ship or named crew ++ yaki :: commit $: p/(list tako) :: parents q/(map path lobe) :: namespace