mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-11-10 10:05:09 +03:00
metadata: modernize namespacing
This commit is contained in:
parent
f2fd69df90
commit
a1c30ef230
@ -6,8 +6,7 @@
|
|||||||
/-
|
/-
|
||||||
inv=invite-store,
|
inv=invite-store,
|
||||||
*contact-hook,
|
*contact-hook,
|
||||||
*metadata-store,
|
metadata=metadata-store,
|
||||||
*metadata-hook,
|
|
||||||
pull-hook,
|
pull-hook,
|
||||||
push-hook
|
push-hook
|
||||||
/+ *server, *contact-json, default-agent, dbug, verb,
|
/+ *server, *contact-json, default-agent, dbug, verb,
|
||||||
@ -297,31 +296,21 @@
|
|||||||
[%pass / %agent [our.bol %group-pull-hook] %poke %pull-hook-action !>(act)]
|
[%pass / %agent [our.bol %group-pull-hook] %poke %pull-hook-action !>(act)]
|
||||||
::
|
::
|
||||||
++ metadata-poke
|
++ metadata-poke
|
||||||
|= act=metadata-action
|
|= =action:metadata
|
||||||
^- card
|
^- card
|
||||||
[%pass / %agent [our.bol %metadata-store] %poke metadata-action+!>(act)]
|
[%pass / %agent [our.bol %metadata-store] %poke metadata-action+!>(action)]
|
||||||
::
|
|
||||||
++ metadata-hook-poke
|
|
||||||
|= act=metadata-hook-action
|
|
||||||
^- card
|
|
||||||
[%pass / %agent [our.bol %metadata-hook] %poke %metadata-hook-action !>(act)]
|
|
||||||
::
|
|
||||||
++ sync-metadata
|
|
||||||
|= [=ship =path]
|
|
||||||
^- card
|
|
||||||
(metadata-hook-poke %add-synced ship path)
|
|
||||||
::
|
::
|
||||||
++ create-metadata
|
++ create-metadata
|
||||||
|= [rid=resource title=@t description=@t]
|
|= [rid=resource title=@t description=@t]
|
||||||
^- (list card)
|
^- (list card)
|
||||||
=/ =metadata
|
=/ =metadatum:metadata
|
||||||
%* . *metadata
|
%* . *metadatum:metadata
|
||||||
title title
|
title title
|
||||||
description description
|
description description
|
||||||
date-created now.bol
|
date-created now.bol
|
||||||
creator our.bol
|
creator our.bol
|
||||||
==
|
==
|
||||||
:~ (metadata-poke [%add rid [%contacts rid] metadata])
|
:~ (metadata-poke [%add rid [%contacts rid] metadatum])
|
||||||
(push-metadata rid)
|
(push-metadata rid)
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
:: hark-graph-hook: notifications for graph-store [landscape]
|
:: hark-graph-hook: notifications for graph-store [landscape]
|
||||||
::
|
::
|
||||||
/- post, group-store, metadata-store, hook=hark-graph-hook, store=hark-store
|
/- post, group-store, metadata=metadata-store, hook=hark-graph-hook, store=hark-store
|
||||||
/+ resource, metadata, default-agent, dbug, graph-store, graph, grouplib=group, store=hark-store
|
/+ resource, mdl=metadata, default-agent, dbug, graph-store, graph, grouplib=group, store=hark-store
|
||||||
::
|
::
|
||||||
::
|
::
|
||||||
~% %hark-graph-hook-top ..part ~
|
~% %hark-graph-hook-top ..part ~
|
||||||
@ -53,7 +53,7 @@
|
|||||||
+* this .
|
+* this .
|
||||||
ha ~(. +> bowl)
|
ha ~(. +> bowl)
|
||||||
def ~(. (default-agent this %|) bowl)
|
def ~(. (default-agent this %|) bowl)
|
||||||
met ~(. metadata bowl)
|
met ~(. mdl bowl)
|
||||||
grp ~(. grouplib bowl)
|
grp ~(. grouplib bowl)
|
||||||
gra ~(. graph bowl)
|
gra ~(. graph bowl)
|
||||||
::
|
::
|
||||||
@ -276,10 +276,10 @@
|
|||||||
?~ group
|
?~ group
|
||||||
~& no-group+rid
|
~& no-group+rid
|
||||||
`state
|
`state
|
||||||
=/ metadata=(unit metadata:metadata-store)
|
=/ metadatum=(unit metadatum:metadata)
|
||||||
(peek-metadata:met %graph rid)
|
(peek-metadatum:met %graph rid)
|
||||||
?~ metadata `state
|
?~ metadatum `state
|
||||||
abet:check:(abed:handle-update:ha rid nodes u.group module.u.metadata)
|
abet:check:(abed:handle-update:ha rid nodes u.group module.u.metadatum)
|
||||||
--
|
--
|
||||||
::
|
::
|
||||||
++ on-peek on-peek:def
|
++ on-peek on-peek:def
|
||||||
@ -300,7 +300,7 @@
|
|||||||
--
|
--
|
||||||
::
|
::
|
||||||
|_ =bowl:gall
|
|_ =bowl:gall
|
||||||
+* met ~(. metadata bowl)
|
+* met ~(. mdl bowl)
|
||||||
grp ~(. grouplib bowl)
|
grp ~(. grouplib bowl)
|
||||||
gra ~(. graph bowl)
|
gra ~(. graph bowl)
|
||||||
::
|
::
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
:: hark-group-hook: notifications for groups [landscape]
|
:: hark-group-hook: notifications for groups [landscape]
|
||||||
::
|
::
|
||||||
/- store=hark-store, post, group-store, metadata-store, hook=hark-group-hook
|
/- store=hark-store, post, group-store, metadata=metadata-store, hook=hark-group-hook
|
||||||
/+ resource, metadata, default-agent, dbug, graph-store
|
/+ resource, mdl=metadata, default-agent, dbug, graph-store
|
||||||
::
|
::
|
||||||
~% %hark-group-hook-top ..part ~
|
~% %hark-group-hook-top ..part ~
|
||||||
|%
|
|%
|
||||||
@ -28,7 +28,7 @@
|
|||||||
+* this .
|
+* this .
|
||||||
ha ~(. +> bowl)
|
ha ~(. +> bowl)
|
||||||
def ~(. (default-agent this %|) bowl)
|
def ~(. (default-agent this %|) bowl)
|
||||||
met ~(. metadata bowl)
|
met ~(. mdl bowl)
|
||||||
::
|
::
|
||||||
++ on-init
|
++ on-init
|
||||||
:_ this
|
:_ this
|
||||||
@ -115,7 +115,7 @@
|
|||||||
::
|
::
|
||||||
%metadata-update
|
%metadata-update
|
||||||
=^ cards state
|
=^ cards state
|
||||||
(metadata-update !<(metadata-update:metadata-store q.cage.sign))
|
(metadata-update !<(update:metadata q.cage.sign))
|
||||||
[cards this]
|
[cards this]
|
||||||
==
|
==
|
||||||
==
|
==
|
||||||
@ -140,7 +140,7 @@
|
|||||||
:: - We have no way of retrieving old metadata to e.g. get a
|
:: - We have no way of retrieving old metadata to e.g. get a
|
||||||
:: channel's old name when it is renamed
|
:: channel's old name when it is renamed
|
||||||
++ metadata-update
|
++ metadata-update
|
||||||
|= update=metadata-update:metadata-store
|
|= =update:metadata
|
||||||
^- (quip card _state)
|
^- (quip card _state)
|
||||||
[~ state]
|
[~ state]
|
||||||
::
|
::
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
::
|
::
|
||||||
:: allow syncing group data from foreign paths to local paths
|
:: allow syncing group data from foreign paths to local paths
|
||||||
::
|
::
|
||||||
/- *group, invite-store, *metadata-store
|
/- *group, invite-store, metadata=metadata-store
|
||||||
/+ default-agent, verb, dbug, store=group-store, grpl=group, pull-hook
|
/+ default-agent, verb, dbug, store=group-store, grpl=group, pull-hook
|
||||||
/+ resource, mdl=metadata
|
/+ resource, mdl=metadata
|
||||||
~% %group-hook-top ..part ~
|
~% %group-hook-top ..part ~
|
||||||
@ -12,12 +12,12 @@
|
|||||||
++ config
|
++ config
|
||||||
^- config:pull-hook
|
^- config:pull-hook
|
||||||
:* %metadata-store
|
:* %metadata-store
|
||||||
metadata-update
|
update:metadata
|
||||||
%metadata-update
|
%metadata-update
|
||||||
%metadata-push-hook
|
%metadata-push-hook
|
||||||
==
|
==
|
||||||
+$ state-zero
|
+$ state-zero
|
||||||
[%0 previews=(map resource group-preview)]
|
[%0 previews=(map resource group-preview:metadata)]
|
||||||
::
|
::
|
||||||
--
|
--
|
||||||
::
|
::
|
||||||
@ -81,12 +81,12 @@
|
|||||||
|= [=mark =vase]
|
|= [=mark =vase]
|
||||||
?. ?=(%metadata-hook-update mark)
|
?. ?=(%metadata-hook-update mark)
|
||||||
(on-poke:def mark vase)
|
(on-poke:def mark vase)
|
||||||
=+ !<(upd=metadata-hook-update vase)
|
=+ !<(=hook-update:metadata vase)
|
||||||
?. ?=(%preview -.upd)
|
?. ?=(%preview -.hook-update)
|
||||||
(on-poke:def mark vase)
|
(on-poke:def mark vase)
|
||||||
:_ this(previews (~(put by previews) group.upd +.upd))
|
:_ this(previews (~(put by previews) group.hook-update +.hook-update))
|
||||||
=/ paths=(list path)
|
=/ paths=(list path)
|
||||||
~[preview+(en-path:resource group.upd)]
|
~[preview+(en-path:resource group.hook-update)]
|
||||||
:~ [%give %fact paths mark^vase]
|
:~ [%give %fact paths mark^vase]
|
||||||
[%give %kick paths ~]
|
[%give %kick paths ~]
|
||||||
==
|
==
|
||||||
@ -115,7 +115,7 @@
|
|||||||
(on-watch:def path)
|
(on-watch:def path)
|
||||||
=/ rid=resource
|
=/ rid=resource
|
||||||
(de-path:resource t.path)
|
(de-path:resource t.path)
|
||||||
=/ prev=(unit group-preview)
|
=/ prev=(unit group-preview:metadata)
|
||||||
(~(get by previews) rid)
|
(~(get by previews) rid)
|
||||||
:_ this
|
:_ this
|
||||||
?~ prev
|
?~ prev
|
||||||
@ -130,14 +130,14 @@
|
|||||||
++ on-pull-nack
|
++ on-pull-nack
|
||||||
|= [=resource =tang]
|
|= [=resource =tang]
|
||||||
^- (quip card _this)
|
^- (quip card _this)
|
||||||
=/ =associations
|
=/ =associations:metadata
|
||||||
(metadata-for-group:met resource)
|
(metadata-for-group:met resource)
|
||||||
:_ this
|
:_ this
|
||||||
%+ turn ~(tap by associations)
|
%+ turn ~(tap by associations)
|
||||||
|= [=md-resource =association]
|
|= [=md-resource:metadata =association:metadata]
|
||||||
=- [%pass / %agent [our.bowl %metadata-store] %poke -]
|
=- [%pass / %agent [our.bowl %metadata-store] %poke -]
|
||||||
:- %metadata-update
|
:- %metadata-update
|
||||||
!> ^- metadata-update
|
!> ^- update:metadata
|
||||||
[%remove resource md-resource]
|
[%remove resource md-resource]
|
||||||
::
|
::
|
||||||
++ on-pull-kick
|
++ on-pull-kick
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
:: metadata-push-hook [landscape]:
|
:: metadata-push-hook [landscape]:
|
||||||
::
|
::
|
||||||
/- *group, *invite-store, *metadata-store
|
/- *group, *invite-store, store=metadata-store
|
||||||
/+ default-agent, verb, dbug, grpl=group, push-hook,
|
/+ default-agent, verb, dbug, grpl=group, push-hook,
|
||||||
resource, mdl=metadata, gral=graph
|
resource, mdl=metadata, gral=graph
|
||||||
~% %group-hook-top ..part ~
|
~% %group-hook-top ..part ~
|
||||||
@ -11,7 +11,7 @@
|
|||||||
^- config:push-hook
|
^- config:push-hook
|
||||||
:* %metadata-store
|
:* %metadata-store
|
||||||
/all
|
/all
|
||||||
metadata-update
|
update:store
|
||||||
%metadata-update
|
%metadata-update
|
||||||
%metadata-pull-hook
|
%metadata-pull-hook
|
||||||
==
|
==
|
||||||
@ -39,28 +39,28 @@
|
|||||||
|= [=mark =vase]
|
|= [=mark =vase]
|
||||||
?. ?=(%metadata-hook-update mark)
|
?. ?=(%metadata-hook-update mark)
|
||||||
(on-poke:def mark vase)
|
(on-poke:def mark vase)
|
||||||
=+ !<(upd=metadata-hook-update vase)
|
=+ !<(=hook-update:store vase)
|
||||||
?. ?=(%req-preview -.upd)
|
?. ?=(%req-preview -.hook-update)
|
||||||
(on-poke:def mark vase)
|
(on-poke:def mark vase)
|
||||||
=* rid group.upd
|
=* rid group.hook-update
|
||||||
|^
|
|^
|
||||||
?> =(entity.rid our.bowl)
|
?> =(entity.rid our.bowl)
|
||||||
?> (can-join:grp rid src.bowl)
|
?> (can-join:grp rid src.bowl)
|
||||||
=/ members
|
=/ members
|
||||||
~(wyt in (members:grp rid))
|
~(wyt in (members:grp rid))
|
||||||
=/ =metadata
|
=/ =metadatum:store
|
||||||
(need (peek-metadata:met %contacts rid))
|
(need (peek-metadatum:met %contacts rid))
|
||||||
:_ this
|
:_ this
|
||||||
=; =cage
|
=; =cage
|
||||||
[%pass / %agent [src.bowl %metadata-pull-hook] %poke cage]~
|
[%pass / %agent [src.bowl %metadata-pull-hook] %poke cage]~
|
||||||
:- %metadata-hook-update
|
:- %metadata-hook-update
|
||||||
!> ^- metadata-hook-update
|
!> ^- hook-update:store
|
||||||
[%preview rid channels members channel-count metadata]
|
[%preview rid channels members channel-count metadatum]
|
||||||
::
|
::
|
||||||
++ channels
|
++ channels
|
||||||
%- ~(gas by *associations)
|
%- ~(gas by *associations:store)
|
||||||
%+ skim ~(tap by (app-metadata-for-group:met rid %graph))
|
%+ skim ~(tap by (app-metadata-for-group:met rid %graph))
|
||||||
|=([=md-resource group=resource =metadata] preview.metadata)
|
|=([=md-resource:store group=resource =metadatum:store] preview.metadatum)
|
||||||
::
|
::
|
||||||
++ channel-count
|
++ channel-count
|
||||||
~(wyt by (app-metadata-for-group:met rid %graph))
|
~(wyt by (app-metadata-for-group:met rid %graph))
|
||||||
@ -75,11 +75,11 @@
|
|||||||
::
|
::
|
||||||
++ should-proxy-update
|
++ should-proxy-update
|
||||||
|= =vase
|
|= =vase
|
||||||
=+ !<(upd=metadata-update vase)
|
=+ !<(=update:store vase)
|
||||||
?. ?=(?(%add %remove %update) -.upd)
|
?. ?=(?(%add %remove %update) -.update)
|
||||||
%.n
|
%.n
|
||||||
=/ role=(unit (unit role-tag))
|
=/ role=(unit (unit role-tag))
|
||||||
(role-for-ship:grp group.upd src.bowl)
|
(role-for-ship:grp group.update src.bowl)
|
||||||
?~ role %.n
|
?~ role %.n
|
||||||
?~ u.role %.n
|
?~ u.role %.n
|
||||||
?=(?(%admin %moderator) u.u.role)
|
?=(?(%admin %moderator) u.u.role)
|
||||||
@ -94,11 +94,11 @@
|
|||||||
^- vase
|
^- vase
|
||||||
=/ group
|
=/ group
|
||||||
(scry-group:grp rid)
|
(scry-group:grp rid)
|
||||||
=/ =associations
|
=/ =associations:store
|
||||||
(metadata-for-group:met rid)
|
(metadata-for-group:met rid)
|
||||||
?> ?=(^ group)
|
?> ?=(^ group)
|
||||||
?> (~(has in members.u.group) src.bowl)
|
?> (~(has in members.u.group) src.bowl)
|
||||||
!> ^- metadata-update
|
!> ^- update:store
|
||||||
[%initial-group rid associations]
|
[%initial-group rid associations]
|
||||||
::
|
::
|
||||||
--
|
--
|
||||||
|
@ -3,11 +3,11 @@
|
|||||||
:: data store for application metadata and mappings
|
:: data store for application metadata and mappings
|
||||||
:: between groups and resources within applications
|
:: between groups and resources within applications
|
||||||
::
|
::
|
||||||
:: group-paths are expected to be an existing group path
|
:: paths are expected to be an existing group path
|
||||||
:: resources are expected to correspond to existing app paths
|
:: resources are expected to correspond to existing app paths
|
||||||
::
|
::
|
||||||
:: note: when scrying for metadata, to make the arguments safe in paths,
|
:: note: when scrying for metadata, to make the arguments safe in paths,
|
||||||
:: encode group-path and app-path using (scot %t (spat group-path))
|
:: encode path and path using (scot %t (spat path))
|
||||||
::
|
::
|
||||||
:: +watch paths:
|
:: +watch paths:
|
||||||
:: /all associations + updates
|
:: /all associations + updates
|
||||||
@ -19,22 +19,22 @@
|
|||||||
:: /group-indices all group indices
|
:: /group-indices all group indices
|
||||||
:: /app-indices all app indices
|
:: /app-indices all app indices
|
||||||
:: /resource-indices all resource indices
|
:: /resource-indices all resource indices
|
||||||
:: /metadata/%group-path/%app-name/%app-path specific metadatum
|
:: /metadata/%path/%app-name/%path specific metadatum
|
||||||
:: /app-name/%app-name associations for app
|
:: /app-name/%app-name associations for app
|
||||||
:: /group/%group-path associations for group
|
:: /group/%path associations for group
|
||||||
::
|
::
|
||||||
/- *metadata-store, *metadata-hook
|
/- store=metadata-store
|
||||||
/+ *metadata-json, default-agent, verb, dbug, resource, *migrate
|
/+ *metadata-json, default-agent, verb, dbug, resource, *migrate
|
||||||
|%
|
|%
|
||||||
+$ card card:agent:gall
|
+$ card card:agent:gall
|
||||||
+$ base-state-0
|
+$ base-state-0
|
||||||
$: associations=associations-0
|
$: associations=associations-0
|
||||||
group-indices=(jug group-path md-resource)
|
group-indices=(jug path md-resource:store)
|
||||||
app-indices=(jug app-name [group-path app-path])
|
app-indices=(jug app-name:store [path path])
|
||||||
resource-indices=(jug md-resource group-path)
|
resource-indices=(jug md-resource:store path)
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
+$ associations-0 (map [group-path md-resource] metadata-0)
|
+$ associations-0 (map [path md-resource:store] metadata-0)
|
||||||
::
|
::
|
||||||
+$ metadata-0
|
+$ metadata-0
|
||||||
$: title=@t
|
$: title=@t
|
||||||
@ -53,25 +53,25 @@
|
|||||||
module=term
|
module=term
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
+$ md-resource-1 [=app-name =app-path]
|
+$ md-resource-1 [=app-name:store =path]
|
||||||
::
|
::
|
||||||
+$ associations-1 (map [group-path md-resource-1] metadata-1)
|
+$ associations-1 (map [path md-resource-1] metadata-1)
|
||||||
::
|
::
|
||||||
+$ base-state-1
|
+$ base-state-1
|
||||||
$: associations=associations-1
|
$: associations=associations-1
|
||||||
group-indices=(jug group-path md-resource-1)
|
group-indices=(jug path md-resource-1)
|
||||||
app-indices=(jug app-name [group-path app-path])
|
app-indices=(jug app-name:store [path path])
|
||||||
resource-indices=(jug md-resource-1 group-path)
|
resource-indices=(jug md-resource-1 path)
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
+$ cached-indices
|
+$ cached-indices
|
||||||
$: group-indices=(jug resource md-resource)
|
$: group-indices=(jug resource md-resource:store)
|
||||||
app-indices=(jug app-name [group=resource =resource])
|
app-indices=(jug app-name:store [group=resource =resource])
|
||||||
resource-indices=(map md-resource resource)
|
resource-indices=(map md-resource:store resource)
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
+$ base-state-2
|
+$ base-state-2
|
||||||
$: =associations
|
$: =associations:store
|
||||||
~
|
~
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
@ -127,7 +127,7 @@
|
|||||||
=^ cards state
|
=^ cards state
|
||||||
?+ mark (on-poke:def mark vase)
|
?+ mark (on-poke:def mark vase)
|
||||||
?(%metadata-action %metadata-update)
|
?(%metadata-action %metadata-update)
|
||||||
(poke-metadata-update:mc !<(metadata-update vase))
|
(poke-metadata-update:mc !<(update:store vase))
|
||||||
::
|
::
|
||||||
%import
|
%import
|
||||||
(poke-import:mc q.vase)
|
(poke-import:mc q.vase)
|
||||||
@ -150,7 +150,7 @@
|
|||||||
~
|
~
|
||||||
::
|
::
|
||||||
[%app-name @ ~]
|
[%app-name @ ~]
|
||||||
=/ =app-name i.t.path
|
=/ =app-name:store i.t.path
|
||||||
=/ app-indices (metadata-for-app:mc app-name)
|
=/ app-indices (metadata-for-app:mc app-name)
|
||||||
(give %metadata-update !>([%associations app-indices]))
|
(give %metadata-update !>([%associations app-indices]))
|
||||||
==
|
==
|
||||||
@ -171,7 +171,7 @@
|
|||||||
[%y %resource-indices ~] ``noun+!>(resource-indices)
|
[%y %resource-indices ~] ``noun+!>(resource-indices)
|
||||||
[%x %associations ~] ``noun+!>(associations)
|
[%x %associations ~] ``noun+!>(associations)
|
||||||
[%x %app-name @ ~]
|
[%x %app-name @ ~]
|
||||||
=/ =app-name i.t.t.path
|
=/ =app-name:store i.t.t.path
|
||||||
``noun+!>((metadata-for-app:mc app-name))
|
``noun+!>((metadata-for-app:mc app-name))
|
||||||
::
|
::
|
||||||
[%x %group *]
|
[%x %group *]
|
||||||
@ -179,7 +179,7 @@
|
|||||||
``noun+!>((metadata-for-group:mc group))
|
``noun+!>((metadata-for-group:mc group))
|
||||||
::
|
::
|
||||||
[%x %metadata @ @ @ @ ~]
|
[%x %metadata @ @ @ @ ~]
|
||||||
=/ =md-resource
|
=/ =md-resource:store
|
||||||
[i.t.t.path (de-path:resource t.t.t.path)]
|
[i.t.t.path (de-path:resource t.t.t.path)]
|
||||||
``noun+!>((~(get by associations) md-resource))
|
``noun+!>((~(get by associations) md-resource))
|
||||||
::
|
::
|
||||||
@ -240,26 +240,26 @@
|
|||||||
::
|
::
|
||||||
++ associations-1-to-2
|
++ associations-1-to-2
|
||||||
|= assoc=associations-1
|
|= assoc=associations-1
|
||||||
^- ^associations
|
^- associations:store
|
||||||
%- ~(gas by *^associations)
|
%- ~(gas by *associations:store)
|
||||||
%+ murn
|
%+ murn
|
||||||
~(tap by assoc)
|
~(tap by assoc)
|
||||||
|= [[group=path m=md-resource-1] met=metadata-1]
|
|= [[group=path m=md-resource-1] met=metadata-1]
|
||||||
%+ biff (de-path-soft:resource group)
|
%+ biff (de-path-soft:resource group)
|
||||||
|= g=resource
|
|= g=resource
|
||||||
%+ bind (md-resource-1-to-2 m)
|
%+ bind (md-resource-1-to-2 m)
|
||||||
|= =md-resource
|
|= =md-resource:store
|
||||||
[md-resource g (metadata-1-to-2 met)]
|
[md-resource g (metadata-1-to-2 met)]
|
||||||
::
|
::
|
||||||
++ md-resource-1-to-2
|
++ md-resource-1-to-2
|
||||||
|= m=md-resource-1
|
|= m=md-resource-1
|
||||||
^- (unit md-resource)
|
^- (unit md-resource:store)
|
||||||
%+ bind (de-path-soft:resource app-path.m)
|
%+ bind (de-path-soft:resource path.m)
|
||||||
|=(rid=resource [app-name.m rid])
|
|=(rid=resource [app-name.m rid])
|
||||||
::
|
::
|
||||||
++ metadata-1-to-2
|
++ metadata-1-to-2
|
||||||
|= m=metadata-1
|
|= m=metadata-1
|
||||||
%* . *metadata
|
%* . *metadatum:store
|
||||||
title title.m
|
title title.m
|
||||||
description description.m
|
description description.m
|
||||||
color color.m
|
color color.m
|
||||||
@ -269,25 +269,25 @@
|
|||||||
==
|
==
|
||||||
::
|
::
|
||||||
++ rebuild-resource-indices
|
++ rebuild-resource-indices
|
||||||
|= =^associations
|
|= =associations:store
|
||||||
%- ~(gas by *(map md-resource resource))
|
%- ~(gas by *(map md-resource:store resource))
|
||||||
%+ turn ~(tap by associations)
|
%+ turn ~(tap by associations)
|
||||||
|= [r=md-resource g=resource =metadata]
|
|= [r=md-resource:store g=resource =metadatum:store]
|
||||||
[r g]
|
[r g]
|
||||||
::
|
::
|
||||||
++ rebuild-group-indices
|
++ rebuild-group-indices
|
||||||
|= =^associations
|
|= =associations:store
|
||||||
%- ~(gas ju *(jug resource md-resource))
|
%- ~(gas ju *(jug resource md-resource:store))
|
||||||
%+ turn
|
%+ turn
|
||||||
~(tap by associations)
|
~(tap by associations)
|
||||||
|= [r=md-resource g=resource =metadata]
|
|= [r=md-resource:store g=resource =metadatum:store]
|
||||||
[g r]
|
[g r]
|
||||||
::
|
::
|
||||||
++ rebuild-app-indices
|
++ rebuild-app-indices
|
||||||
|= =^associations
|
|= =associations:store
|
||||||
%- ~(gas ju *(jug app-name [group=resource resource]))
|
%- ~(gas ju *(jug app-name:store [group=resource resource]))
|
||||||
%+ turn ~(tap by associations)
|
%+ turn ~(tap by associations)
|
||||||
|= [r=md-resource g=resource =metadata]
|
|= [r=md-resource:store g=resource =metadatum:store]
|
||||||
[app-name.r g resource.r]
|
[app-name.r g resource.r]
|
||||||
::
|
::
|
||||||
++ migrate-app-to-graph-store
|
++ migrate-app-to-graph-store
|
||||||
@ -295,18 +295,18 @@
|
|||||||
^- associations-1
|
^- associations-1
|
||||||
%- malt
|
%- malt
|
||||||
%+ turn ~(tap by associations)
|
%+ turn ~(tap by associations)
|
||||||
|= [[=group-path md-resource=md-resource-1] m=metadata-1]
|
|= [[=path md-resource=md-resource-1] m=metadata-1]
|
||||||
^- [[^group-path md-resource-1] metadata-1]
|
^- [[^path md-resource-1] metadata-1]
|
||||||
?. =(app-name.md-resource app)
|
?. =(app-name.md-resource app)
|
||||||
[[group-path md-resource] m]
|
[[path md-resource] m]
|
||||||
=/ new-app-path=path
|
=/ new-path=^path
|
||||||
?. ?=([@ @ ~] app-path.md-resource)
|
?. ?=([@ @ ~] path.md-resource)
|
||||||
app-path.md-resource
|
path.md-resource
|
||||||
ship+app-path.md-resource
|
ship+path.md-resource
|
||||||
[[group-path [%graph new-app-path]] m(module app)]
|
[[path [%graph new-path]] m(module app)]
|
||||||
--
|
--
|
||||||
++ poke-metadata-update
|
++ poke-metadata-update
|
||||||
|= upd=metadata-update
|
|= upd=update:store
|
||||||
^- (quip card _state)
|
^- (quip card _state)
|
||||||
?> (team:title [our src]:bowl)
|
?> (team:title [our src]:bowl)
|
||||||
?+ -.upd !!
|
?+ -.upd !!
|
||||||
@ -338,7 +338,7 @@
|
|||||||
[%pass / %agent [our.bowl app] %poke cage]
|
[%pass / %agent [our.bowl app] %poke cage]
|
||||||
::
|
::
|
||||||
+$ tree-metadata
|
+$ tree-metadata
|
||||||
$: associations=(tree [md-resource [resource metadata]])
|
$: associations=(tree [md-resource:store [resource metadatum:store]])
|
||||||
~
|
~
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
@ -351,15 +351,13 @@
|
|||||||
--
|
--
|
||||||
::
|
::
|
||||||
++ handle-add
|
++ handle-add
|
||||||
|= [group=resource =md-resource =metadata]
|
|= [group=resource =md-resource:store =metadatum:store]
|
||||||
^- (quip card _state)
|
^- (quip card _state)
|
||||||
:- %+ send-diff app-name.md-resource
|
:- %+ send-diff app-name.md-resource
|
||||||
?: (~(has by resource-indices) md-resource)
|
[%add group md-resource metadatum]
|
||||||
[%updated-metadata group md-resource metadata metadata]
|
|
||||||
[%add group md-resource metadata]
|
|
||||||
%= state
|
%= state
|
||||||
associations
|
associations
|
||||||
(~(put by associations) md-resource [group metadata])
|
(~(put by associations) md-resource [group metadatum])
|
||||||
::
|
::
|
||||||
app-indices
|
app-indices
|
||||||
%+ ~(put ju app-indices)
|
%+ ~(put ju app-indices)
|
||||||
@ -374,7 +372,7 @@
|
|||||||
==
|
==
|
||||||
::
|
::
|
||||||
++ handle-remove
|
++ handle-remove
|
||||||
|= [group=resource =md-resource]
|
|= [group=resource =md-resource:store]
|
||||||
^- (quip card _state)
|
^- (quip card _state)
|
||||||
:- (send-diff app-name.md-resource [%remove group md-resource])
|
:- (send-diff app-name.md-resource [%remove group md-resource])
|
||||||
%= state
|
%= state
|
||||||
@ -394,8 +392,8 @@
|
|||||||
==
|
==
|
||||||
::
|
::
|
||||||
++ handle-initial-group
|
++ handle-initial-group
|
||||||
|= [group=resource =^associations]
|
|= [group=resource =associations:store]
|
||||||
=/ assocs=(list [=md-resource grp=resource =metadata])
|
=/ assocs=(list [=md-resource:store grp=resource =metadatum:store])
|
||||||
~(tap by associations)
|
~(tap by associations)
|
||||||
=| cards=(list card)
|
=| cards=(list card)
|
||||||
|-
|
|-
|
||||||
@ -404,44 +402,44 @@
|
|||||||
=, assocs
|
=, assocs
|
||||||
?> =(group grp.i)
|
?> =(group grp.i)
|
||||||
=^ new-cards state
|
=^ new-cards state
|
||||||
(handle-add group [md-resource metadata]:i)
|
(handle-add group [md-resource metadatum]:i)
|
||||||
$(cards (weld cards new-cards), assocs t)
|
$(cards (weld cards new-cards), assocs t)
|
||||||
::
|
::
|
||||||
++ metadata-for-app
|
++ metadata-for-app
|
||||||
|= =app-name
|
|= =app-name:store
|
||||||
^+ associations
|
^+ associations
|
||||||
%+ roll ~(tap in (~(gut by app-indices) app-name ~))
|
%+ roll ~(tap in (~(gut by app-indices) app-name ~))
|
||||||
|= [[group=resource rid=resource] out=^associations]
|
|= [[group=resource rid=resource] out=associations:store]
|
||||||
=/ =md-resource
|
=/ =md-resource:store
|
||||||
[app-name rid]
|
[app-name rid]
|
||||||
=/ [resource =metadata]
|
=/ [resource =metadatum:store]
|
||||||
(~(got by associations) md-resource)
|
(~(got by associations) md-resource)
|
||||||
(~(put by out) md-resource [group metadata])
|
(~(put by out) md-resource [group metadatum])
|
||||||
::
|
::
|
||||||
++ metadata-for-group
|
++ metadata-for-group
|
||||||
|= group=resource
|
|= group=resource
|
||||||
=/ resources=(set md-resource)
|
=/ resources=(set md-resource:store)
|
||||||
(~(get ju group-indices) group)
|
(~(get ju group-indices) group)
|
||||||
%+ roll
|
%+ roll
|
||||||
~(tap in resources)
|
~(tap in resources)
|
||||||
|= [=md-resource out=^associations]
|
|= [=md-resource:store out=associations:store]
|
||||||
=/ [resource =metadata]
|
=/ [resource =metadatum:store]
|
||||||
(~(got by associations) md-resource)
|
(~(got by associations) md-resource)
|
||||||
(~(put by out) md-resource [group metadata])
|
(~(put by out) md-resource [group metadatum])
|
||||||
::
|
::
|
||||||
++ send-diff
|
++ send-diff
|
||||||
|= [=app-name upd=metadata-update]
|
|= [=app-name:store =update:store]
|
||||||
^- (list card)
|
^- (list card)
|
||||||
|^
|
|^
|
||||||
%- zing
|
%- zing
|
||||||
:~ (update-subscribers /all upd)
|
:~ (update-subscribers /all update)
|
||||||
(update-subscribers /updates upd)
|
(update-subscribers /updates update)
|
||||||
(update-subscribers [%app-name app-name ~] upd)
|
(update-subscribers [%app-name app-name ~] update)
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
++ update-subscribers
|
++ update-subscribers
|
||||||
|= [pax=path upd=metadata-update]
|
|= [pax=path =update:store]
|
||||||
^- (list card)
|
^- (list card)
|
||||||
[%give %fact ~[pax] %metadata-update !>(upd)]~
|
[%give %fact ~[pax] %metadata-update !>(update)]~
|
||||||
--
|
--
|
||||||
--
|
--
|
||||||
|
@ -1,16 +1,18 @@
|
|||||||
/- *group, *metadata-store
|
/- *group
|
||||||
/+ store=group-store, resource
|
/+ store=group-store, resource
|
||||||
::
|
::
|
||||||
|_ =bowl:gall
|
|_ =bowl:gall
|
||||||
+$ card card:agent:gall
|
+$ card card:agent:gall
|
||||||
++ scry-for
|
++ scry-for
|
||||||
|* [=mold =path]
|
|* [=mold =path]
|
||||||
|
=. path
|
||||||
|
(snoc path %noun)
|
||||||
.^ mold
|
.^ mold
|
||||||
%gx
|
%gx
|
||||||
(scot %p our.bowl)
|
(scot %p our.bowl)
|
||||||
%group-store
|
%group-store
|
||||||
(scot %da now.bowl)
|
(scot %da now.bowl)
|
||||||
(snoc `^path`path %noun)
|
path
|
||||||
==
|
==
|
||||||
++ scry-tag
|
++ scry-tag
|
||||||
|= [rid=resource =tag]
|
|= [rid=resource =tag]
|
||||||
@ -21,27 +23,16 @@
|
|||||||
~
|
~
|
||||||
`(~(gut by tags.u.group) tag ~)
|
`(~(gut by tags.u.group) tag ~)
|
||||||
::
|
::
|
||||||
++ scry-group-path
|
|
||||||
|= =path
|
|
||||||
%+ scry-for
|
|
||||||
(unit group)
|
|
||||||
[%groups path]
|
|
||||||
::
|
|
||||||
++ scry-group
|
++ scry-group
|
||||||
|= rid=resource
|
|= rid=resource
|
||||||
%- scry-group-path
|
%+ scry-for ,(unit group)
|
||||||
(en-path:resource rid)
|
`path`groups+(en-path:resource rid)
|
||||||
::
|
::
|
||||||
++ members
|
++ members
|
||||||
|= rid=resource
|
|= rid=resource
|
||||||
%- members-from-path
|
=; =group
|
||||||
(en-path:resource rid)
|
members.group
|
||||||
::
|
(fall (scry-group rid) *group)
|
||||||
++ members-from-path
|
|
||||||
|= =group-path
|
|
||||||
^- (set ship)
|
|
||||||
=- members:(fall - *group)
|
|
||||||
(scry-group-path group-path)
|
|
||||||
::
|
::
|
||||||
++ is-member
|
++ is-member
|
||||||
|= [=ship group=resource]
|
|= [=ship group=resource]
|
||||||
@ -85,31 +76,18 @@
|
|||||||
[~ ~]
|
[~ ~]
|
||||||
~
|
~
|
||||||
::
|
::
|
||||||
++ can-join-from-path
|
|
||||||
|= [=path =ship]
|
|
||||||
%+ scry-for
|
|
||||||
?
|
|
||||||
%+ welp
|
|
||||||
[%groups path]
|
|
||||||
/join/[(scot %p ship)]
|
|
||||||
::
|
|
||||||
++ can-join
|
++ can-join
|
||||||
|= [rid=resource =ship]
|
|= [rid=resource =ship]
|
||||||
%+ can-join-from-path
|
%+ scry-for ,?
|
||||||
(en-path:resource rid)
|
^- path
|
||||||
ship
|
:- %groups
|
||||||
::
|
(weld (en-path:resource rid) /join/(scot %p ship))
|
||||||
++ is-managed-path
|
|
||||||
|= =path
|
|
||||||
^- ?
|
|
||||||
=/ group=(unit group)
|
|
||||||
(scry-group-path path)
|
|
||||||
?~ group %.n
|
|
||||||
!hidden.u.group
|
|
||||||
::
|
::
|
||||||
++ is-managed
|
++ is-managed
|
||||||
|= rid=resource
|
|= rid=resource
|
||||||
%- is-managed-path
|
=/ group=(unit group)
|
||||||
(en-path:resource rid)
|
(scry-group rid)
|
||||||
|
?~ group %.n
|
||||||
|
!hidden.u.group
|
||||||
::
|
::
|
||||||
--
|
--
|
||||||
|
@ -2,13 +2,14 @@
|
|||||||
/+ resource
|
/+ resource
|
||||||
^?
|
^?
|
||||||
|%
|
|%
|
||||||
|
::
|
||||||
++ associations-to-json
|
++ associations-to-json
|
||||||
|= =associations
|
|= =associations
|
||||||
=, enjs:format
|
=, enjs:format
|
||||||
^- json
|
^- json
|
||||||
%- pairs
|
%- pairs
|
||||||
%+ turn ~(tap by associations)
|
%+ turn ~(tap by associations)
|
||||||
|= [=md-resource [group=resource =metadata]]
|
|= [=md-resource [group=resource =metadatum]]
|
||||||
^- [cord json]
|
^- [cord json]
|
||||||
:-
|
:-
|
||||||
%- crip
|
%- crip
|
||||||
@ -21,12 +22,12 @@
|
|||||||
:~ [%group s+(enjs-path:resource group)]
|
:~ [%group s+(enjs-path:resource group)]
|
||||||
[%app-name s+app-name.md-resource]
|
[%app-name s+app-name.md-resource]
|
||||||
[%resource s+(enjs-path:resource resource.md-resource)]
|
[%resource s+(enjs-path:resource resource.md-resource)]
|
||||||
[%metadata (metadata-to-json metadata)]
|
[%metadata (metadata-to-json metadatum)]
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
++ json-to-action
|
++ json-to-action
|
||||||
|= jon=json
|
|= jon=json
|
||||||
^- metadata-action
|
^- action
|
||||||
=, dejs:format
|
=, dejs:format
|
||||||
=< (parse-json jon)
|
=< (parse-json jon)
|
||||||
|%
|
|%
|
||||||
@ -40,7 +41,7 @@
|
|||||||
%- ot
|
%- ot
|
||||||
:~ [%group dejs-path:resource]
|
:~ [%group dejs-path:resource]
|
||||||
[%resource md-resource]
|
[%resource md-resource]
|
||||||
[%metadata metadata]
|
[%metadata metadatum]
|
||||||
==
|
==
|
||||||
++ remove
|
++ remove
|
||||||
%- ot
|
%- ot
|
||||||
@ -61,7 +62,7 @@
|
|||||||
(tag %member-metadata)
|
(tag %member-metadata)
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
++ metadata
|
++ metadatum
|
||||||
%- ot
|
%- ot
|
||||||
:~ [%title so]
|
:~ [%title so]
|
||||||
[%description so]
|
[%description so]
|
||||||
@ -85,7 +86,7 @@
|
|||||||
--
|
--
|
||||||
::
|
::
|
||||||
++ metadata-to-json
|
++ metadata-to-json
|
||||||
|= met=metadata
|
|= met=metadatum
|
||||||
^- json
|
^- json
|
||||||
=, enjs:format
|
=, enjs:format
|
||||||
%- pairs
|
%- pairs
|
||||||
@ -100,7 +101,7 @@
|
|||||||
[%vip s+`@t`vip.met]
|
[%vip s+`@t`vip.met]
|
||||||
==
|
==
|
||||||
++ hook-update-to-json
|
++ hook-update-to-json
|
||||||
|= upd=metadata-hook-update
|
|= upd=hook-update
|
||||||
=, enjs:format
|
=, enjs:format
|
||||||
%+ frond %metadata-hook-update
|
%+ frond %metadata-hook-update
|
||||||
%+ frond -.upd
|
%+ frond -.upd
|
||||||
@ -111,7 +112,7 @@
|
|||||||
[%channels (associations-to-json channels.upd)]
|
[%channels (associations-to-json channels.upd)]
|
||||||
[%members (numb members.upd)]
|
[%members (numb members.upd)]
|
||||||
[%channel-count (numb channel-count.upd)]
|
[%channel-count (numb channel-count.upd)]
|
||||||
[%metadata (metadata-to-json metadata.upd)]
|
[%metadata (metadata-to-json metadatum.upd)]
|
||||||
==
|
==
|
||||||
%req-preview
|
%req-preview
|
||||||
~[group+s+(enjs-path:resource group.upd)]
|
~[group+s+(enjs-path:resource group.upd)]
|
||||||
@ -119,7 +120,7 @@
|
|||||||
|
|
||||||
::
|
::
|
||||||
++ update-to-json
|
++ update-to-json
|
||||||
|= upd=metadata-update
|
|= upd=update
|
||||||
^- json
|
^- json
|
||||||
=, enjs:format
|
=, enjs:format
|
||||||
%+ frond %metadata-update
|
%+ frond %metadata-update
|
||||||
@ -131,7 +132,7 @@
|
|||||||
:~ [%group s+(enjs-path:resource group.upd)]
|
:~ [%group s+(enjs-path:resource group.upd)]
|
||||||
[%app-name s+app-name.resource.upd]
|
[%app-name s+app-name.resource.upd]
|
||||||
[%resource s+(enjs-path:resource resource.resource.upd)]
|
[%resource s+(enjs-path:resource resource.resource.upd)]
|
||||||
[%metadata (metadata-to-json metadata.upd)]
|
[%metadata (metadata-to-json metadatum.upd)]
|
||||||
==
|
==
|
||||||
%updated-metadata
|
%updated-metadata
|
||||||
:- %add
|
:- %add
|
||||||
@ -139,7 +140,7 @@
|
|||||||
:~ [%group s+(enjs-path:resource group.upd)]
|
:~ [%group s+(enjs-path:resource group.upd)]
|
||||||
[%app-name s+app-name.resource.upd]
|
[%app-name s+app-name.resource.upd]
|
||||||
[%resource s+(enjs-path:resource resource.resource.upd)]
|
[%resource s+(enjs-path:resource resource.resource.upd)]
|
||||||
[%metadata (metadata-to-json metadata.upd)]
|
[%metadata (metadata-to-json metadatum.upd)]
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
%remove
|
%remove
|
||||||
|
@ -1,38 +1,39 @@
|
|||||||
:: metadata: helpers for getting data from the metadata-store
|
:: metadata: helpers for getting data from the metadata-store
|
||||||
::
|
::
|
||||||
/- *metadata-store
|
/- store=metadata-store
|
||||||
/+ resource
|
/+ resource
|
||||||
::
|
::
|
||||||
|_ =bowl:gall
|
|_ =bowl:gall
|
||||||
++ app-paths-from-group
|
++ app-paths-from-group
|
||||||
|= [=app-name group=resource]
|
|= [=app-name:store group=resource]
|
||||||
^- (list resource)
|
^- (list resource)
|
||||||
%+ murn
|
%+ murn
|
||||||
%~ tap in
|
%~ tap in
|
||||||
=- (~(gut by -) group ~)
|
=- (~(gut by -) group ~)
|
||||||
.^ (jug resource md-resource)
|
.^ (jug resource md-resource:store)
|
||||||
%gy
|
%gy
|
||||||
(scot %p our.bowl)
|
(scot %p our.bowl)
|
||||||
%metadata-store
|
%metadata-store
|
||||||
(scot %da now.bowl)
|
(scot %da now.bowl)
|
||||||
/group-indices
|
/group-indices
|
||||||
==
|
==
|
||||||
|= =md-resource
|
|= =md-resource:store
|
||||||
^- (unit resource)
|
^- (unit resource)
|
||||||
?. =(app-name.md-resource app-name) ~
|
?. =(app-name.md-resource app-name) ~
|
||||||
`resource.md-resource
|
`resource.md-resource
|
||||||
::
|
::
|
||||||
++ app-metadata-for-group
|
++ app-metadata-for-group
|
||||||
|= [group=resource =app-name]
|
|= [group=resource =app-name:store]
|
||||||
=/ =associations
|
=/ =associations:store
|
||||||
(metadata-for-group group)
|
(metadata-for-group group)
|
||||||
%- ~(gas by *^associations)
|
%- ~(gas by *associations:store)
|
||||||
%+ skim ~(tap by associations)
|
%+ skim ~(tap by associations)
|
||||||
|=([=md-resource association] =(app-name app-name.md-resource))
|
|= [=md-resource:store association:store]
|
||||||
|
=(app-name app-name.md-resource)
|
||||||
::
|
::
|
||||||
++ metadata-for-group
|
++ metadata-for-group
|
||||||
|= group=resource
|
|= group=resource
|
||||||
.^ associations
|
.^ associations:store
|
||||||
%gx (scot %p our.bowl) %metadata-store (scot %da now.bowl)
|
%gx (scot %p our.bowl) %metadata-store (scot %da now.bowl)
|
||||||
%group (snoc (en-path:resource group) %noun)
|
%group (snoc (en-path:resource group) %noun)
|
||||||
==
|
==
|
||||||
@ -40,7 +41,7 @@
|
|||||||
++ md-resources-from-group
|
++ md-resources-from-group
|
||||||
|= group=resource
|
|= group=resource
|
||||||
=- (~(get ju -) group)
|
=- (~(get ju -) group)
|
||||||
.^ (jug resource md-resource)
|
.^ (jug resource md-resource:store)
|
||||||
%gy
|
%gy
|
||||||
(scot %p our.bowl)
|
(scot %p our.bowl)
|
||||||
%metadata-store
|
%metadata-store
|
||||||
@ -50,19 +51,19 @@
|
|||||||
::
|
::
|
||||||
++ peek-association
|
++ peek-association
|
||||||
|= [app-name=term rid=resource]
|
|= [app-name=term rid=resource]
|
||||||
.^ (unit association)
|
.^ (unit association:store)
|
||||||
%gx (scot %p our.bowl) %metadata-store (scot %da now.bowl)
|
%gx (scot %p our.bowl) %metadata-store (scot %da now.bowl)
|
||||||
%metadata app-name (snoc (en-path:resource rid) %noun)
|
%metadata app-name (snoc (en-path:resource rid) %noun)
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
++ peek-metadata
|
++ peek-metadatum
|
||||||
|= =md-resource
|
|= =md-resource:store
|
||||||
%+ bind (peek-association md-resource)
|
%+ bind (peek-association md-resource)
|
||||||
|=(association metadata)
|
|=(association:store metadatum)
|
||||||
::
|
::
|
||||||
++ peek-group
|
++ peek-group
|
||||||
|= =md-resource
|
|= =md-resource:store
|
||||||
^- (unit resource)
|
^- (unit resource)
|
||||||
%+ bind (peek-association md-resource)
|
%+ bind (peek-association md-resource)
|
||||||
|=(association group)
|
|=(association:store group)
|
||||||
--
|
--
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
/- *metadata-store
|
/- store=metadata-store
|
||||||
/+ *metadata-json
|
/+ *metadata-json
|
||||||
|_ upd=metadata-update
|
|_ =update:store
|
||||||
++ grad %noun
|
++ grad %noun
|
||||||
++ grow
|
++ grow
|
||||||
|%
|
|%
|
||||||
++ noun upd
|
++ noun update
|
||||||
++ resource
|
++ resource
|
||||||
?> ?=(?(%add %remove %initial-group) -.upd)
|
?> ?=(?(%add %remove %initial-group) -.update)
|
||||||
group.upd
|
group.update
|
||||||
++ json (update-to-json upd)
|
++ json (update-to-json update)
|
||||||
--
|
--
|
||||||
::
|
::
|
||||||
++ grab
|
++ grab
|
||||||
|%
|
|%
|
||||||
++ noun metadata-update
|
++ noun update:store
|
||||||
++ json json-to-action
|
++ json json-to-action
|
||||||
--
|
--
|
||||||
::
|
::
|
||||||
|
@ -2,18 +2,16 @@
|
|||||||
^?
|
^?
|
||||||
|%
|
|%
|
||||||
::
|
::
|
||||||
+$ group-path path
|
|
||||||
+$ app-name term
|
+$ app-name term
|
||||||
+$ app-path path
|
|
||||||
+$ md-resource [=app-name =resource]
|
+$ md-resource [=app-name =resource]
|
||||||
+$ association [group=resource =metadata]
|
+$ association [group=resource =metadatum]
|
||||||
+$ associations (map md-resource association)
|
+$ associations (map md-resource association)
|
||||||
+$ group-preview
|
+$ group-preview
|
||||||
$: group=resource
|
$: group=resource
|
||||||
channels=associations
|
channels=associations
|
||||||
members=@ud
|
members=@ud
|
||||||
channel-count=@ud
|
channel-count=@ud
|
||||||
=metadata
|
=metadatum
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
+$ color @ux
|
+$ color @ux
|
||||||
@ -30,7 +28,7 @@
|
|||||||
:: %$: No variation
|
:: %$: No variation
|
||||||
::
|
::
|
||||||
+$ vip-metadata ?(%reader-comments %member-metadata %$)
|
+$ vip-metadata ?(%reader-comments %member-metadata %$)
|
||||||
+$ metadata
|
+$ metadatum
|
||||||
$: title=cord
|
$: title=cord
|
||||||
description=cord
|
description=cord
|
||||||
=color
|
=color
|
||||||
@ -42,20 +40,25 @@
|
|||||||
vip=vip-metadata
|
vip=vip-metadata
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
+$ metadata-action
|
+$ action
|
||||||
$% [%add group=resource resource=md-resource =metadata]
|
$% [%add group=resource resource=md-resource =metadatum]
|
||||||
[%remove group=resource resource=md-resource]
|
[%remove group=resource resource=md-resource]
|
||||||
[%initial-group group=resource =associations]
|
[%initial-group group=resource =associations]
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
+$ metadata-hook-update
|
+$ hook-update
|
||||||
$% [%req-preview group=resource]
|
$% [%req-preview group=resource]
|
||||||
[%preview group-preview]
|
[%preview group-preview]
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
+$ metadata-update
|
+$ update
|
||||||
$% metadata-action
|
$% action
|
||||||
[%associations =associations]
|
[%associations =associations]
|
||||||
[%updated-metadata group=resource resource=md-resource before=metadata =metadata]
|
$: %updated-metadata
|
||||||
|
group=resource
|
||||||
|
resource=md-resource
|
||||||
|
before=metadatum
|
||||||
|
=metadatum
|
||||||
|
==
|
||||||
==
|
==
|
||||||
--
|
--
|
||||||
|
Loading…
Reference in New Issue
Block a user