From 58d421ae5731c6f08b85eb172dae279715453be0 Mon Sep 17 00:00:00 2001 From: Sosthene Date: Wed, 27 Aug 2025 17:35:00 +0200 Subject: [PATCH] Update of process definition for most process creations --- .../LeCoffreApi/sdk/CollaboratorService.ts | 20 +++++-------- .../Api/LeCoffreApi/sdk/OfficeRoleService.ts | 24 +++++++-------- .../Api/LeCoffreApi/sdk/OfficeService.ts | 30 +++++++++---------- src/common/Api/LeCoffreApi/sdk/RoleService.ts | 24 +++++++-------- .../Api/LeCoffreApi/sdk/RuleGroupService.ts | 24 +++++++-------- src/common/Api/LeCoffreApi/sdk/RuleService.ts | 24 +++++++-------- 6 files changed, 62 insertions(+), 84 deletions(-) diff --git a/src/common/Api/LeCoffreApi/sdk/CollaboratorService.ts b/src/common/Api/LeCoffreApi/sdk/CollaboratorService.ts index 0fe3d856..5d70dde9 100644 --- a/src/common/Api/LeCoffreApi/sdk/CollaboratorService.ts +++ b/src/common/Api/LeCoffreApi/sdk/CollaboratorService.ts @@ -7,6 +7,7 @@ import AbstractService from './AbstractService'; import OfficeService from './OfficeService'; import RoleService from './RoleService'; import OfficeRoleService from './OfficeRoleService'; +import { DEFAULT_STORAGE_URLS } from '@Front/Config/AppConstants'; export default class CollaboratorService extends AbstractService { @@ -33,7 +34,7 @@ export default class CollaboratorService extends AbstractService { const roles: any = { demiurge: { - members: [...[ownerId], validatorId], + members: [ownerId], validation_rules: [], storages: [] }, @@ -41,28 +42,23 @@ export default class CollaboratorService extends AbstractService { members: [ownerId], validation_rules: [ { - quorum: 0.5, - fields: [...privateFields, 'roles', 'uid', 'utype'], + quorum: 1, + fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'], min_sig_member: 1, }, ], - storages: [] + storages: [...DEFAULT_STORAGE_URLS] }, validator: { members: [validatorId], validation_rules: [ { - quorum: 0.5, - fields: ['idCertified', 'roles'], + quorum: 1, + fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'], min_sig_member: 1, }, - { - quorum: 0.0, - fields: [...privateFields], - min_sig_member: 0, - }, ], - storages: [] + storages: [...DEFAULT_STORAGE_URLS] }, apophis: { members: [ownerId], diff --git a/src/common/Api/LeCoffreApi/sdk/OfficeRoleService.ts b/src/common/Api/LeCoffreApi/sdk/OfficeRoleService.ts index a9aabc1d..c316cdfc 100644 --- a/src/common/Api/LeCoffreApi/sdk/OfficeRoleService.ts +++ b/src/common/Api/LeCoffreApi/sdk/OfficeRoleService.ts @@ -6,6 +6,7 @@ import AbstractService from './AbstractService'; import OfficeService from './OfficeService'; import RuleService from './RuleService'; +import { DEFAULT_STORAGE_URLS } from '@Front/Config/AppConstants'; export default class OfficeRoleService extends AbstractService { @@ -32,7 +33,7 @@ export default class OfficeRoleService extends AbstractService { const roles: any = { demiurge: { - members: [...[ownerId], validatorId], + members: [ownerId], validation_rules: [], storages: [] }, @@ -40,31 +41,26 @@ export default class OfficeRoleService extends AbstractService { members: [ownerId], validation_rules: [ { - quorum: 0.5, - fields: [...privateFields, 'roles', 'uid', 'utype'], - min_sig_member: 1, + quorum: 0.01, + fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'], + min_sig_member: 0.01, }, ], - storages: [] + storages: [...DEFAULT_STORAGE_URLS] }, validator: { members: [validatorId], validation_rules: [ { - quorum: 0.5, - fields: ['idCertified', 'roles'], + quorum: 1, + fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'], min_sig_member: 1, }, - { - quorum: 0.0, - fields: [...privateFields], - min_sig_member: 0, - }, ], - storages: [] + storages: [...DEFAULT_STORAGE_URLS] }, apophis: { - members: [ownerId], + members: [ownerId, validatorId], validation_rules: [], storages: [] } diff --git a/src/common/Api/LeCoffreApi/sdk/OfficeService.ts b/src/common/Api/LeCoffreApi/sdk/OfficeService.ts index 4b139c9f..036aebce 100644 --- a/src/common/Api/LeCoffreApi/sdk/OfficeService.ts +++ b/src/common/Api/LeCoffreApi/sdk/OfficeService.ts @@ -10,9 +10,12 @@ export default class OfficeService extends AbstractService { super(); } - public static createOffice(officeData: any, validatorId: string): Promise { + public static createOffice(officeData: any, owners: string[], validatorId: string, storageUrls: string[]): Promise { const ownerId: string = User.getInstance().getPairingId()!; + // Create a set for all owners to avoid duplicates + const ownersSet: Set = new Set([...owners, ownerId]); + const processData: any = { uid: uuidv4(), utype: 'office', @@ -29,39 +32,34 @@ export default class OfficeService extends AbstractService { const roles: any = { demiurge: { - members: [...[ownerId], validatorId], + members: Array.from(ownersSet), validation_rules: [], storages: [] }, owner: { - members: [ownerId], + members: Array.from(ownersSet), validation_rules: [ { - quorum: 0.5, - fields: [...privateFields, 'roles', 'uid', 'utype'], - min_sig_member: 1, + quorum: 0.01, // effectively any owner can make any change + fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'], + min_sig_member: 0.01, // need to sign with at least one device }, ], - storages: [] + storages: storageUrls }, validator: { members: [validatorId], validation_rules: [ { - quorum: 0.5, - fields: ['idCertified', 'roles'], + quorum: 1, // validator can do anything alone + fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'], min_sig_member: 1, }, - { - quorum: 0.0, - fields: [...privateFields], - min_sig_member: 0, - }, ], - storages: [] + storages: storageUrls }, apophis: { - members: [ownerId], + members: Array.from(ownersSet), // any owner can terminate the office validation_rules: [], storages: [] } diff --git a/src/common/Api/LeCoffreApi/sdk/RoleService.ts b/src/common/Api/LeCoffreApi/sdk/RoleService.ts index 6f21a627..e62b017d 100644 --- a/src/common/Api/LeCoffreApi/sdk/RoleService.ts +++ b/src/common/Api/LeCoffreApi/sdk/RoleService.ts @@ -3,6 +3,7 @@ import { v4 as uuidv4 } from 'uuid'; import User from 'src/sdk/User'; import AbstractService from './AbstractService'; +import { DEFAULT_STORAGE_URLS } from '@Front/Config/AppConstants'; export default class RoleService extends AbstractService { @@ -29,7 +30,7 @@ export default class RoleService extends AbstractService { const roles: any = { demiurge: { - members: [...[ownerId], validatorId], + members: [ownerId], validation_rules: [], storages: [] }, @@ -37,31 +38,26 @@ export default class RoleService extends AbstractService { members: [ownerId], validation_rules: [ { - quorum: 0.5, - fields: [...privateFields, 'roles', 'uid', 'utype'], - min_sig_member: 1, + quorum: 0.01, + fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'], + min_sig_member: 0.01, }, ], - storages: [] + storages: [...DEFAULT_STORAGE_URLS] }, validator: { members: [validatorId], validation_rules: [ { - quorum: 0.5, - fields: ['idCertified', 'roles'], + quorum: 1, + fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'], min_sig_member: 1, }, - { - quorum: 0.0, - fields: [...privateFields], - min_sig_member: 0, - }, ], - storages: [] + storages: [...DEFAULT_STORAGE_URLS] }, apophis: { - members: [ownerId], + members: [ownerId, validatorId], validation_rules: [], storages: [] } diff --git a/src/common/Api/LeCoffreApi/sdk/RuleGroupService.ts b/src/common/Api/LeCoffreApi/sdk/RuleGroupService.ts index c0775cde..f9d58ff1 100644 --- a/src/common/Api/LeCoffreApi/sdk/RuleGroupService.ts +++ b/src/common/Api/LeCoffreApi/sdk/RuleGroupService.ts @@ -5,6 +5,7 @@ import User from 'src/sdk/User'; import AbstractService from './AbstractService'; import RuleService from './RuleService'; +import { DEFAULT_STORAGE_URLS } from '@Front/Config/AppConstants'; export default class RuleGroupService extends AbstractService { @@ -31,7 +32,7 @@ export default class RuleGroupService extends AbstractService { const roles: any = { demiurge: { - members: [...[ownerId], validatorId], + members: [ownerId], validation_rules: [], storages: [] }, @@ -39,31 +40,26 @@ export default class RuleGroupService extends AbstractService { members: [ownerId], validation_rules: [ { - quorum: 0.5, - fields: [...privateFields, 'roles', 'uid', 'utype'], - min_sig_member: 1, + quorum: 0.01, + fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'], + min_sig_member: 0.01, }, ], - storages: [] + storages: [...DEFAULT_STORAGE_URLS] }, validator: { members: [validatorId], validation_rules: [ { - quorum: 0.5, - fields: ['idCertified', 'roles'], + quorum: 1, + fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'], min_sig_member: 1, }, - { - quorum: 0.0, - fields: [...privateFields], - min_sig_member: 0, - }, ], - storages: [] + storages: [...DEFAULT_STORAGE_URLS] }, apophis: { - members: [ownerId], + members: [ownerId, validatorId], validation_rules: [], storages: [] } diff --git a/src/common/Api/LeCoffreApi/sdk/RuleService.ts b/src/common/Api/LeCoffreApi/sdk/RuleService.ts index 9fd9bb4d..66a798e8 100644 --- a/src/common/Api/LeCoffreApi/sdk/RuleService.ts +++ b/src/common/Api/LeCoffreApi/sdk/RuleService.ts @@ -3,6 +3,7 @@ import { v4 as uuidv4 } from 'uuid'; import User from 'src/sdk/User'; import AbstractService from './AbstractService'; +import { DEFAULT_STORAGE_URLS } from '@Front/Config/AppConstants'; export default class RuleService extends AbstractService { @@ -29,7 +30,7 @@ export default class RuleService extends AbstractService { const roles: any = { demiurge: { - members: [...[ownerId], validatorId], + members: [ownerId], validation_rules: [], storages: [] }, @@ -37,31 +38,26 @@ export default class RuleService extends AbstractService { members: [ownerId], validation_rules: [ { - quorum: 0.5, - fields: [...privateFields, 'roles', 'uid', 'utype'], - min_sig_member: 1, + quorum: 0.01, + fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'], + min_sig_member: 0.01, }, ], - storages: [] + storages: [...DEFAULT_STORAGE_URLS] }, validator: { members: [validatorId], validation_rules: [ { - quorum: 0.5, - fields: ['idCertified', 'roles'], + quorum: 1, + fields: [...privateFields, 'roles', 'isDeleted', 'uid', 'utype'], min_sig_member: 1, }, - { - quorum: 0.0, - fields: [...privateFields], - min_sig_member: 0, - }, ], - storages: [] + storages: [...DEFAULT_STORAGE_URLS] }, apophis: { - members: [ownerId], + members: [ownerId, validatorId], validation_rules: [], storages: [] }