Specification
The commands Vault share vault unshare and vault permissions needs to act as porcelan commands while using GRPC methods as the plumbing. The Bin command themselves are largely unchanged. To this end we need to create GRPC methods called;
vaultsPermissionGet.ts
vaultsPermissionSet.ts
vaultsPermissionUnset.ts
Set and unset will take a permissions message that provides (NodeId, VaultIdOrName, VaultActions[]). Get will use the same message as a stream but it will be unnecessary to provide the VaultId in that case.
The Permission type needs to be updated to work with the ID changes.
type Permission = {
gestalt: GestaltActions;
vaults: Record<VaultIdString, VaultActions>;
};
Additional context
Relevant threads from vaultsrefactoring:
Tasks
Specification
The commands
Vault sharevault unshareandvault permissionsneeds to act as porcelan commands while using GRPC methods as the plumbing. The Bin command themselves are largely unchanged. To this end we need to create GRPC methods called;Set and unset will take a permissions message that provides
(NodeId, VaultIdOrName, VaultActions[]). Get will use the same message as a stream but it will be unnecessary to provide theVaultIdin that case.The Permission type needs to be updated to work with the ID changes.
Additional context
Relevant threads from
vaultsrefactoring:shareVault: https://gitlab.com/MatrixAI/Engineering/Polykey/js-polykey/-/merge_requests/205#note_708467722Tasks
VaultIdStringas key.commandShareandcommandUnsharewith plumbing methodscommandPermissionSet,commandPermissionUnsetandcommandPermissionGet.vaultsPermissionsSettest in client/service.vaultsPermissionsUnsettest in client/service.vaultsPermissionsGettest in client/service.