Update of process definition for most process creations

This commit is contained in:
Sosthene 2025-08-27 17:35:00 +02:00
parent 371ff69a35
commit 58d421ae57
6 changed files with 62 additions and 84 deletions

View File

@ -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],

View File

@ -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: []
}

View File

@ -10,9 +10,12 @@ export default class OfficeService extends AbstractService {
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()!;
// Create a set for all owners to avoid duplicates
const ownersSet: Set<string> = 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: []
}

View File

@ -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: []
}

View File

@ -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: []
}

View File

@ -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: []
}