Service - Organization: Difference between revisions
Jump to navigation
Jump to search
| (2 intermediate revisions by one other user not shown) | |||
| Line 16: | Line 16: | ||
objectType: "organization", | objectType: "organization", | ||
canDelete: false, | canDelete: false, | ||
generatedBy: "userGenerated", | |||
addOnDataStructure: [ | addOnDataStructure: [ | ||
{ | |||
type:"rbac" | |||
}, | |||
{ | { | ||
type: "propertyValue" | type: "propertyValue" | ||
}, | }, | ||
{ | { | ||
type:"versionedData", | type: "versionedData", | ||
versionedDataLabel: "Detail", | versionedDataLabel: "Detail", | ||
storageResourceTag : "myGraph", | storageResourceTag : "myGraph", | ||
| Line 95: | Line 99: | ||
canChangeToRelTypes: [ | canChangeToRelTypes: [ | ||
{ | { | ||
serviceTag:"Organization", | serviceTag: "Organization", | ||
relationshipTag: "removedOrganization" | relationshipTag: "removedOrganization" | ||
}, | }, | ||
| Line 135: | Line 139: | ||
canChangeToRelTypes: [ | canChangeToRelTypes: [ | ||
{ | { | ||
serviceTag:"Organization", | serviceTag: "Organization", | ||
relationshipTag: "hasOrganization" | relationshipTag: "hasOrganization" | ||
}, | }, | ||
Latest revision as of 03:45, 18 August 2026
Overview
A user can have many organizations, each organization has it's independent accounting.
Repository
...
Object Schemas
- Additional Information
- Per Service Schemas
organization
{
objectType: "organization",
canDelete: false,
generatedBy: "userGenerated",
addOnDataStructure: [
{
type:"rbac"
},
{
type: "propertyValue"
},
{
type: "versionedData",
versionedDataLabel: "Detail",
storageResourceTag : "myGraph",
fieldNames: {
"organizationName":{
type: "string",
requiredOnCreate: true,
canUpdate: true,
userCanUpdate: true,
},
"dailyRateCurrencyTableId":{
type: "string",
requiredOnCreate: true,
canUpdate: true,
userCanUpdate: true,
},
}
},
],
storageResources: {
myGraph: {
storageType: "graph",
graphServerTag: "GraphHandler"
}
},
fieldNames: {
organizationId: {
type: "string",
randomOnCreate: true,
storageResourceTags: ['myGraph']
},
functionalCurrency: {
type: "currency",
requiredOnCreate: true,
canUpdate: false,
userCanUpdate: false,
storageResourceTags: ['myGraph']
},
precision: {
type: "integer",
randomOnCreate: false,
optionalOnCreate: true,
requiredOnCreate: false,
validation: {
pattern: pattern
},
storageResourceTags: ['graph'],
}
},
identifiers: [
{
type: "identifier",
fieldName: "organizationId"
}
]
}
Relationships
hasOrganization
{
hasOrganization: {
storageResources: {
myGraph: {
storageType: "graph",
graphServerTag: "GraphHandler"
}
},
canChangeToRelTypes: [
{
serviceTag: "Organization",
relationshipTag: "removedOrganization"
},
],
links: [
{
storageResourceTags: ["myGraph"],
from: {
objType: {
serviceTag: "User",
objectType: "user"
},
linkType: "one",
},
to: {
objType: {
serviceTag: "Organization",
objectType: "organization"
},
linkType: "many"
}
},
]
}
}
removedOrganization
{
removedOrganization: {
storageResources: {
myGraph: {
storageType: "graph",
graphServerTag: "GraphHandler"
}
},
canChangeToRelTypes: [
{
serviceTag: "Organization",
relationshipTag: "hasOrganization"
},
],
links: [
{
storageResourceTags: ["myGraph"],
from: {
objType: {
serviceTag: "User",
objectType: "user"
},
linkType: "one",
},
to: {
objType: {
serviceTag: "Organization",
objectType: "organization"
},
linkType: "many"
}
},
]
}
}
- links a user to the organization they manage
- does not convey ownership, each organization is a standalone organization that has it's own RBAC
- this allows for simple transfer of ownership of data
Addresses
- use same structure as users in Izara Market