You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Out of all of the MVP Notification types to be supported, Component Forks are the only event type which is not currently written on-chain.
We need to create a pattern of writing component fork events on-chain and integrate this with the near.org UI (and ideally integrated with tools like bos-cli-rs) such that when a user forks a component and submits the transaction to write the forked component, a payload is included which writes the forked data on-chain.
We can accomplish this by leveraging our socialdbmetrics.near account and write to its socialDB namespace each time a forked component is committed from the near.org gateway.
We need
To grant a group of individuals the ability to manage the socialdbmetrics.near namespace in socialDB.
These individuals manage the namespace via their ability to grant write permissions onto certain areas within the socialdbmetrics socialDB namespace to the near accounts of individuals representing tools like bos-cli-rs and gateways such as and near.social.
A permissionless way to request accommodations from the individuals managing socialdbmetrics.near, e.g. request that a new gateway be granted the ability to write into a socialdbmetrics namespace
To restrict write permissions to specific areas within the socialdbmetrics.near socialdb namespace. Such that we can grant alice.near the ability to write into socialdbmetrics.near/post/near.org, while alice.near is denied write access in socialdbmetrics.near/post/bos.gg
Technical approach
The management functionality can be satisfied by two contracts.
A namespace-permission-managemment contract, for example deployed at permissions.socialdbmetrics.near, which provides the following api:
create_namespace(postNamespace): creates a new namespace at socialdbmetrics.near/post/[postNamespace]
grant_write_permissions(publicKey, postNamespace): stores the publicKey into an allowlist of namespaces and the accounts which have the ablity to write to them.
set(postNamespace, data): checks the allowlist and returns a permissions error if the publickey associated to the function call is not included in the associated postNamespace map. Otherwise, it writes the data payload into socialdbmetrics.near/post/[postNamespace]
a sputnikDAOv2 contract deployed at genesis.socialdbmetrics.near. The Dao contact would allow voting and multi-party agreement between the individuals that will manage socialdbmetrics.near (e.g. council members) on for example, who should allowed to write to socialdbmetrics.near namespaces.
Are socialdB's namespace permissions granular enough to manage permissions for distinct post types? E.g. can we allow a publickey reprsenting 's UI to write to socialdbmetrics.near/post/near.org and not be able to also write to socialdbmetrics.near/post/bos.gg? Or can permission only be managed at the parent 'post' level?
No, this is not possible on socialDB directly. To accomplish this would require a contract (e.g. permissions.socialdbmetrics.near) which enforces said restriction in an interface to socialDB's set function.
The text was updated successfully, but these errors were encountered:
Context
Out of all of the MVP Notification types to be supported, Component Forks are the only event type which is not currently written on-chain.
We need to create a pattern of writing component fork events on-chain and integrate this with the near.org UI (and ideally integrated with tools like bos-cli-rs) such that when a user forks a component and submits the transaction to write the forked component, a payload is included which writes the forked data on-chain.
We can accomplish this by leveraging our socialdbmetrics.near account and write to its socialDB namespace each time a forked component is committed from the near.org gateway.
We need
Technical approach
The management functionality can be satisfied by two contracts.
Questions
No, this is not possible on socialDB directly. To accomplish this would require a contract (e.g. permissions.socialdbmetrics.near) which enforces said restriction in an interface to socialDB's set function.
The text was updated successfully, but these errors were encountered: