Update of process definition for most process creations

This commit is contained in:
Sosthene 2025-08-27 17:35:00 +02:00
parent 7923a29ce2
commit f7d6661f20
6 changed files with 62 additions and 84 deletions

View File

@ -7,6 +7,7 @@ import AbstractService from './AbstractService';
import OfficeService from './OfficeService'; import OfficeService from './OfficeService';
import RoleService from './RoleService'; import RoleService from './RoleService';
import OfficeRoleService from './OfficeRoleService'; import OfficeRoleService from './OfficeRoleService';
import { DEFAULT_STORAGE_URLS } from '@Front/Config/AppConstants';
export default class CollaboratorService extends AbstractService { export default class CollaboratorService extends AbstractService {
@ -33,7 +34,7 @@ export default class CollaboratorService extends AbstractService {
const roles: any = { const roles: any = {
demiurge: { demiurge: {
members: [...[ownerId], validatorId], members: [ownerId],
validation_rules: [], validation_rules: [],
storages: [] storages: []
}, },
@ -41,28 +42,23 @@ export default class CollaboratorService extends AbstractService {
members: [ownerId], members: [ownerId],
validation_rules: [ validation_rules: [
{ {
quorum: 0.5, quorum: 1,
fields: [...privateFields, 'roles', 'uid', 'utype'], fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'],
min_sig_member: 1, min_sig_member: 1,
}, },
], ],
storages: [] storages: [...DEFAULT_STORAGE_URLS]
}, },
validator: { validator: {
members: [validatorId], members: [validatorId],
validation_rules: [ validation_rules: [
{ {
quorum: 0.5, quorum: 1,
fields: ['idCertified', 'roles'], fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'],
min_sig_member: 1, min_sig_member: 1,
}, },
{
quorum: 0.0,
fields: [...privateFields],
min_sig_member: 0,
},
], ],
storages: [] storages: [...DEFAULT_STORAGE_URLS]
}, },
apophis: { apophis: {
members: [ownerId], members: [ownerId],

View File

@ -6,6 +6,7 @@ import AbstractService from './AbstractService';
import OfficeService from './OfficeService'; import OfficeService from './OfficeService';
import RuleService from './RuleService'; import RuleService from './RuleService';
import { DEFAULT_STORAGE_URLS } from '@Front/Config/AppConstants';
export default class OfficeRoleService extends AbstractService { export default class OfficeRoleService extends AbstractService {
@ -32,7 +33,7 @@ export default class OfficeRoleService extends AbstractService {
const roles: any = { const roles: any = {
demiurge: { demiurge: {
members: [...[ownerId], validatorId], members: [ownerId],
validation_rules: [], validation_rules: [],
storages: [] storages: []
}, },
@ -40,31 +41,26 @@ export default class OfficeRoleService extends AbstractService {
members: [ownerId], members: [ownerId],
validation_rules: [ validation_rules: [
{ {
quorum: 0.5, quorum: 0.01,
fields: [...privateFields, 'roles', 'uid', 'utype'], fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'],
min_sig_member: 1, min_sig_member: 0.01,
}, },
], ],
storages: [] storages: [...DEFAULT_STORAGE_URLS]
}, },
validator: { validator: {
members: [validatorId], members: [validatorId],
validation_rules: [ validation_rules: [
{ {
quorum: 0.5, quorum: 1,
fields: ['idCertified', 'roles'], fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'],
min_sig_member: 1, min_sig_member: 1,
}, },
{
quorum: 0.0,
fields: [...privateFields],
min_sig_member: 0,
},
], ],
storages: [] storages: [...DEFAULT_STORAGE_URLS]
}, },
apophis: { apophis: {
members: [ownerId], members: [ownerId, validatorId],
validation_rules: [], validation_rules: [],
storages: [] storages: []
} }

View File

@ -10,9 +10,12 @@ export default class OfficeService extends AbstractService {
super(); super();
} }
public static createOffice(officeData: any, validatorId: string): Promise<any> { public static createOffice(officeData: any, owners: string[], validatorId: string, storageUrls: string[]): Promise<any> {
const ownerId: string = User.getInstance().getPairingId()!; const ownerId: string = User.getInstance().getPairingId()!;
// Create a set for all owners to avoid duplicates
const ownersSet: Set<string> = new Set([...owners, ownerId]);
const processData: any = { const processData: any = {
uid: uuidv4(), uid: uuidv4(),
utype: 'office', utype: 'office',
@ -29,39 +32,34 @@ export default class OfficeService extends AbstractService {
const roles: any = { const roles: any = {
demiurge: { demiurge: {
members: [...[ownerId], validatorId], members: Array.from(ownersSet),
validation_rules: [], validation_rules: [],
storages: [] storages: []
}, },
owner: { owner: {
members: [ownerId], members: Array.from(ownersSet),
validation_rules: [ validation_rules: [
{ {
quorum: 0.5, quorum: 0.01, // effectively any owner can make any change
fields: [...privateFields, 'roles', 'uid', 'utype'], fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'],
min_sig_member: 1, min_sig_member: 0.01, // need to sign with at least one device
}, },
], ],
storages: [] storages: storageUrls
}, },
validator: { validator: {
members: [validatorId], members: [validatorId],
validation_rules: [ validation_rules: [
{ {
quorum: 0.5, quorum: 1, // validator can do anything alone
fields: ['idCertified', 'roles'], fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'],
min_sig_member: 1, min_sig_member: 1,
}, },
{
quorum: 0.0,
fields: [...privateFields],
min_sig_member: 0,
},
], ],
storages: [] storages: storageUrls
}, },
apophis: { apophis: {
members: [ownerId], members: Array.from(ownersSet), // any owner can terminate the office
validation_rules: [], validation_rules: [],
storages: [] storages: []
} }

View File

@ -3,6 +3,7 @@ import { v4 as uuidv4 } from 'uuid';
import User from 'src/sdk/User'; import User from 'src/sdk/User';
import AbstractService from './AbstractService'; import AbstractService from './AbstractService';
import { DEFAULT_STORAGE_URLS } from '@Front/Config/AppConstants';
export default class RoleService extends AbstractService { export default class RoleService extends AbstractService {
@ -29,7 +30,7 @@ export default class RoleService extends AbstractService {
const roles: any = { const roles: any = {
demiurge: { demiurge: {
members: [...[ownerId], validatorId], members: [ownerId],
validation_rules: [], validation_rules: [],
storages: [] storages: []
}, },
@ -37,31 +38,26 @@ export default class RoleService extends AbstractService {
members: [ownerId], members: [ownerId],
validation_rules: [ validation_rules: [
{ {
quorum: 0.5, quorum: 0.01,
fields: [...privateFields, 'roles', 'uid', 'utype'], fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'],
min_sig_member: 1, min_sig_member: 0.01,
}, },
], ],
storages: [] storages: [...DEFAULT_STORAGE_URLS]
}, },
validator: { validator: {
members: [validatorId], members: [validatorId],
validation_rules: [ validation_rules: [
{ {
quorum: 0.5, quorum: 1,
fields: ['idCertified', 'roles'], fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'],
min_sig_member: 1, min_sig_member: 1,
}, },
{
quorum: 0.0,
fields: [...privateFields],
min_sig_member: 0,
},
], ],
storages: [] storages: [...DEFAULT_STORAGE_URLS]
}, },
apophis: { apophis: {
members: [ownerId], members: [ownerId, validatorId],
validation_rules: [], validation_rules: [],
storages: [] storages: []
} }

View File

@ -5,6 +5,7 @@ import User from 'src/sdk/User';
import AbstractService from './AbstractService'; import AbstractService from './AbstractService';
import RuleService from './RuleService'; import RuleService from './RuleService';
import { DEFAULT_STORAGE_URLS } from '@Front/Config/AppConstants';
export default class RuleGroupService extends AbstractService { export default class RuleGroupService extends AbstractService {
@ -31,7 +32,7 @@ export default class RuleGroupService extends AbstractService {
const roles: any = { const roles: any = {
demiurge: { demiurge: {
members: [...[ownerId], validatorId], members: [ownerId],
validation_rules: [], validation_rules: [],
storages: [] storages: []
}, },
@ -39,31 +40,26 @@ export default class RuleGroupService extends AbstractService {
members: [ownerId], members: [ownerId],
validation_rules: [ validation_rules: [
{ {
quorum: 0.5, quorum: 0.01,
fields: [...privateFields, 'roles', 'uid', 'utype'], fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'],
min_sig_member: 1, min_sig_member: 0.01,
}, },
], ],
storages: [] storages: [...DEFAULT_STORAGE_URLS]
}, },
validator: { validator: {
members: [validatorId], members: [validatorId],
validation_rules: [ validation_rules: [
{ {
quorum: 0.5, quorum: 1,
fields: ['idCertified', 'roles'], fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'],
min_sig_member: 1, min_sig_member: 1,
}, },
{
quorum: 0.0,
fields: [...privateFields],
min_sig_member: 0,
},
], ],
storages: [] storages: [...DEFAULT_STORAGE_URLS]
}, },
apophis: { apophis: {
members: [ownerId], members: [ownerId, validatorId],
validation_rules: [], validation_rules: [],
storages: [] storages: []
} }

View File

@ -3,6 +3,7 @@ import { v4 as uuidv4 } from 'uuid';
import User from 'src/sdk/User'; import User from 'src/sdk/User';
import AbstractService from './AbstractService'; import AbstractService from './AbstractService';
import { DEFAULT_STORAGE_URLS } from '@Front/Config/AppConstants';
export default class RuleService extends AbstractService { export default class RuleService extends AbstractService {
@ -29,7 +30,7 @@ export default class RuleService extends AbstractService {
const roles: any = { const roles: any = {
demiurge: { demiurge: {
members: [...[ownerId], validatorId], members: [ownerId],
validation_rules: [], validation_rules: [],
storages: [] storages: []
}, },
@ -37,31 +38,26 @@ export default class RuleService extends AbstractService {
members: [ownerId], members: [ownerId],
validation_rules: [ validation_rules: [
{ {
quorum: 0.5, quorum: 0.01,
fields: [...privateFields, 'roles', 'uid', 'utype'], fields: [...privateFields, 'roles', 'uid', 'utype', 'isDeleted'],
min_sig_member: 1, min_sig_member: 0.01,
}, },
], ],
storages: [] storages: [...DEFAULT_STORAGE_URLS]
}, },
validator: { validator: {
members: [validatorId], members: [validatorId],
validation_rules: [ validation_rules: [
{ {
quorum: 0.5, quorum: 1,
fields: ['idCertified', 'roles'], fields: [...privateFields, 'roles', 'isDeleted', 'uid', 'utype'],
min_sig_member: 1, min_sig_member: 1,
}, },
{
quorum: 0.0,
fields: [...privateFields],
min_sig_member: 0,
},
], ],
storages: [] storages: [...DEFAULT_STORAGE_URLS]
}, },
apophis: { apophis: {
members: [ownerId], members: [ownerId, validatorId],
validation_rules: [], validation_rules: [],
storages: [] storages: []
} }