dalim-fusion-es-api/docs/dalim-api-reference.md
DJP 584b7df68b feat: Dalim DAM web application — full build
Complete client-facing DAM interface for Dalim ES FUSiON GraphQL API:

- Asset browsing, search with faceted filtering, project/folder navigation
- Send To distribution to 17 MMS platforms (PIM, Social, Google, In-Store, Print)
- 10 workflow templates, approval queue, process monitor with progress bars
- Collections with thumbnail mosaics, dashboard with KPI cards and activity feed
- Docker Compose (app + PostgreSQL), mock mode, error boundaries
- Two-tier API reference docs (466 operations indexed, 29 detailed)
- MediaMarkt branding: Noto Sans Display, #DF0000 red, dark sidebar

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 22:12:18 -04:00

34 KiB

Dalim ES FUSiON API — Active Endpoint Reference

Detailed documentation for the endpoints actively used in this project. For a full list of all 466 available operations, see dalim-api-index.md.


Authentication

The API uses OAuth2 with HMAC SHA256 signing.

Token endpoint: https://{HOST}/ES/api/oauth/token GraphQL endpoint: https://{HOST}/ES/api/graphql

Get a token:

token_data = {
    "grant_type": "password",
    "client_id": CLIENT_ID,
    "client_secret": CLIENT_SECRET,
    "username": USERNAME,
    "password": PASSWORD
}
response = requests.post(TOKEN_URL, data=token_data)
access_token = response.json()["access_token"]
headers = {"Authorization": f"Bearer {access_token}", "Content-Type": "application/json"}

Dependency chain (must create in this order): Security Profiles → Users → Projects → Assets


System & Auth

connectAs

Type: Mutation Returns: a JSON!

Enable an Admin to connect to ES as another User. The response is identical to a standard login, a new AccessToken is received.

Arguments:

Name Type Required Description
login String! Yes login of the user
withSecurityProfile String No name of a securityProfile
createIfNotExists Boolean No Auto-created user if not exists

Example Query:

mutation connectAs( $login: String!, $withSecurityProfile: String, $createIfNotExists: Boolean ) { connectAs( login: $login, withSecurityProfile: $withSecurityProfile, createIfNotExists: $createIfNotExists ) }

Example Variables:

{ "login": "abc123", "withSecurityProfile": "abc123", "createIfNotExists": true }

Example Response:

{"data": {"connectAs": {}}}

disconnectAs

Type: Mutation Returns: a JSON!

When connected as another user, returns to the original login, the current token is revoked. The response is identical to a standard login, a new AccessToken is received. If the AccessToken does not correspond to a user connected as, then nothing append, the current token is still valid.

Example Query:

mutation disconnectAs { disconnectAs }

Example Response:

{"data": {"disconnectAs": {}}}

whoami

Type: Query Returns: a Whoami!

Example Query:

query whoami { whoami { id user { ...UserFragment } securityProfile { ...UserSecurityProfileFragment } } }

Example Response:

{ "data": { "whoami": { "id": "4", "user": User, "securityProfile": UserSecurityProfile } } }

serverInformation

Type: Query Returns: a ServerInformation!

Example Query:

query serverInformation { serverInformation { guiClientId authorizationURL accessTokenURL authenticationKeys } }

Example Response:

{ "data": { "serverInformation": { "guiClientId": "abc123", "authorizationURL": "http://www.test.com/", "accessTokenURL": "http://www.test.com/", "authenticationKeys": ["4"] } } }

Users

users

Type: Query Returns: a UserPagingResponse!

Retrieve visible users by the current logged user

Arguments:

Name Type Required Description
filter iFilter No
limit Int No
cursor ID No
orderBy iOrderBy No Default = {property : "id", direction : ASC}

Example Query:

query users( $filter: iFilter, $limit: Int, $cursor: ID, $orderBy: iOrderBy ) { users( filter: $filter, limit: $limit, cursor: $cursor, orderBy: $orderBy ) { lowerCursor upperCursor hasMoreItems objectList { ...UserFragment } } }

Example Variables:

{ "filter": iFilter, "limit": 123, "cursor": 4, "orderBy": {"property": "id", "direction": "ASC"} }

Example Response:

{ "data": { "users": { "lowerCursor": "4", "upperCursor": "4", "hasMoreItems": true, "objectList": [User] } } }

userById

Type: Query Returns: [User!]

Retrieve user by id

Arguments:

Name Type Required Description
id [ID!]! Yes

Example Query:

query userById($id: [ID!]!) { userById(id: $id) { id name description lastModificationDate lastModificationUser { ...UserFragment } creationDate creationUser { ...UserFragment } metadatas { ...MetadataValueFragment } metadataProperties { ...MetadataValueFragment } login userCanLog lang dateFormat unitResolution unitLength color image use2FA channel2FA sessionTimeout workCapacity workCapacityUnit firstName lastName email title company phone phone2 homePhone fax mobilePhone department address { ...AddressFragment } organization { ...OrganizationFragment } groups { ...GroupFragment } roles { ...RoleFragment } defaultProfile { ...UserSecurityProfileFragment } availableProfiles { ...UserSecurityProfileFragment } notifications { ...NotificationFragment } } }

Example Variables:

{"id": ["4"]}

Example Response:

{ "data": { "userById": [ { "id": "4", "name": "abc123", "description": "xyz789", "lastModificationDate": "2007-12-03T10:15:30Z", "lastModificationUser": User, "creationDate": "2007-12-03T10:15:30Z", "creationUser": User, "metadatas": [MetadataValue], "metadataProperties": [MetadataValue], "login": "abc123", "userCanLog": true, "lang": "ar", "dateFormat": "abc123", "unitResolution": "xyz789", "unitLength": "xyz789", "color": "xyz789", "image": "xyz789", "use2FA": true, "channel2FA": "AUTHENTICATOR", "sessionTimeout": 123, "workCapacity": "abc123", "workCapacityUnit": "xyz789", "firstName": "xyz789", "lastName": "abc123", "email": "abc123", "title": "abc123", "company": "xyz789", "phone": "abc123", "phone2": "xyz789", "homePhone": "xyz789", "fax": "abc123", "mobilePhone": "xyz789", "departm
... (truncated)

createUser

Type: Mutation Returns: a User!

Create an User in the specified Organization

Arguments:

Name Type Required Description
name String! Yes
in ID! Yes
setup iCreateUserSetup No

Example Query:

mutation createUser( $name: String!, $in: ID!, $setup: iCreateUserSetup ) { createUser( name: $name, in: $in, setup: $setup ) { id name description lastModificationDate lastModificationUser { ...UserFragment } creationDate creationUser { ...UserFragment } metadatas { ...MetadataValueFragment } metadataProperties { ...MetadataValueFragment } login userCanLog lang dateFormat unitResolution unitLength color image use2FA channel2FA sessionTimeout workCapacity workCapacityUnit firstName lastName email title company phone phone2 homePhone fax mobilePhone department address { ...AddressFragment } organization { ...OrganizationFragment } groups { ...GroupFragment } roles { ...RoleFragment } defaultProfile { ...UserSecurityProfileFragment } availableProfiles { ...UserSecurityProfileFragment } notifications { ...NotificationFragment } } }

Example Variables:

{ "name": "abc123", "in": 4, "setup": iCreateUserSetup }

Example Response:

{ "data": { "createUser": { "id": 4, "name": "abc123", "description": "xyz789", "lastModificationDate": "2007-12-03T10:15:30Z", "lastModificationUser": User, "creationDate": "2007-12-03T10:15:30Z", "creationUser": User, "metadatas": [MetadataValue], "metadataProperties": [MetadataValue], "login": "xyz789", "userCanLog": false, "lang": "ar", "dateFormat": "abc123", "unitResolution": "xyz789", "unitLength": "xyz789", "color": "xyz789", "image": "abc123", "use2FA": true, "channel2FA": "AUTHENTICATOR", "sessionTimeout": 123, "workCapacity": "xyz789", "workCapacityUnit": "xyz789", "firstName": "xyz789", "lastName": "xyz789", "email": "abc123", "title": "xyz789", "company": "xyz789", "phone": "xyz789", "phone2": "xyz789", "homePhone": "abc123", "fax": "xyz789", "mobilePhone": "abc123", "departme
... (truncated)

changeUser

Type: Mutation Returns: a User!

Arguments:

Name Type Required Description
name String! Yes

Example Query:

mutation changeUser($name: String!) { changeUser(name: $name) { id name description lastModificationDate lastModificationUser { ...UserFragment } creationDate creationUser { ...UserFragment } metadatas { ...MetadataValueFragment } metadataProperties { ...MetadataValueFragment } login userCanLog lang dateFormat unitResolution unitLength color image use2FA channel2FA sessionTimeout workCapacity workCapacityUnit firstName lastName email title company phone phone2 homePhone fax mobilePhone department address { ...AddressFragment } organization { ...OrganizationFragment } groups { ...GroupFragment } roles { ...RoleFragment } defaultProfile { ...UserSecurityProfileFragment } availableProfiles { ...UserSecurityProfileFragment } notifications { ...NotificationFragment } } }

Example Variables:

{"name": "abc123"}

Example Response:

{ "data": { "changeUser": { "id": "4", "name": "abc123", "description": "abc123", "lastModificationDate": "2007-12-03T10:15:30Z", "lastModificationUser": User, "creationDate": "2007-12-03T10:15:30Z", "creationUser": User, "metadatas": [MetadataValue], "metadataProperties": [MetadataValue], "login": "xyz789", "userCanLog": true, "lang": "ar", "dateFormat": "xyz789", "unitResolution": "abc123", "unitLength": "abc123", "color": "xyz789", "image": "abc123", "use2FA": true, "channel2FA": "AUTHENTICATOR", "sessionTimeout": 123, "workCapacity": "xyz789", "workCapacityUnit": "xyz789", "firstName": "abc123", "lastName": "xyz789", "email": "xyz789", "title": "abc123", "company": "abc123", "phone": "xyz789", "phone2": "abc123", "homePhone": "abc123", "fax": "abc123", "mobilePhone": "abc123", "departm
... (truncated)

Security Profiles

securityProfiles

Type: Query Returns: a SecurityProfilePagingResponse!

Retrieve SecurityProfile by filter

Arguments:

Name Type Required Description
filter iFilter No
limit Int No
cursor ID No
orderBy iOrderBy No Default = {property : "id", direction : ASC}

Example Query:

query securityProfiles( $filter: iFilter, $limit: Int, $cursor: ID, $orderBy: iOrderBy ) { securityProfiles( filter: $filter, limit: $limit, cursor: $cursor, orderBy: $orderBy ) { lowerCursor upperCursor hasMoreItems objectList { ...SecurityProfileFragment } } }

Example Variables:

{ "filter": iFilter, "limit": 123, "cursor": "4", "orderBy": {"property": "id", "direction": "ASC"} }

Example Response:

{ "data": { "securityProfiles": { "lowerCursor": 4, "upperCursor": "4", "hasMoreItems": true, "objectList": [SecurityProfile] } } }

createUserSecurityProfile

Type: Mutation Returns: a UserSecurityProfile

Arguments:

Name Type Required Description
name String! Yes
setup iUserSecurityProfile No

Example Query:

mutation createUserSecurityProfile( $name: String!, $setup: iUserSecurityProfile ) { createUserSecurityProfile( name: $name, setup: $setup ) { id name description lastModificationDate lastModificationUser { ...UserFragment } creationDate creationUser { ...UserFragment } properties { ...SecurityPropertyFragment } securityRoles } }

Example Variables:

{ "name": "abc123", "setup": iUserSecurityProfile }

Example Response:

{ "data": { "createUserSecurityProfile": { "id": "4", "name": "xyz789", "description": "xyz789", "lastModificationDate": "2007-12-03T10:15:30Z", "lastModificationUser": User, "creationDate": "2007-12-03T10:15:30Z", "creationUser": User, "properties": [SecurityProperty], "securityRoles": ["ADMIN"] } } }

addProfileToUser

Type: Mutation Returns: a Boolean!

Add one or many SecurityProfiles to one or many Users

Arguments:

Name Type Required Description
id [ID!]! Yes
to [ID!]! Yes

Example Query:

mutation addProfileToUser( $id: [ID!]!, $to: [ID!]! ) { addProfileToUser( id: $id, to: $to ) }

Example Variables:

{"id": ["4"], "to": [4]}

Example Response:

{"data": {"addProfileToUser": true}}

addRoleToUser

Type: Mutation Returns: a Boolean!

Add one or many Role(s) to one or many User(s)

Arguments:

Name Type Required Description
id [ID!]! Yes
to [ID!]! Yes

Example Query:

mutation addRoleToUser( $id: [ID!]!, $to: [ID!]! ) { addRoleToUser( id: $id, to: $to ) }

Example Variables:

{"id": ["4"], "to": [4]}

Example Response:

{"data": {"addRoleToUser": true}}

Projects

projects

Type: Query Returns: a ProjectPagingResponse!

Retrieve Projects by filter

Arguments:

Name Type Required Description
filter iFilter No
limit Int No
cursor ID No
orderBy iOrderBy No Default = {property : "id", direction : ASC}

Example Query:

query projects( $filter: iFilter, $limit: Int, $cursor: ID, $orderBy: iOrderBy ) { projects( filter: $filter, limit: $limit, cursor: $cursor, orderBy: $orderBy ) { lowerCursor upperCursor hasMoreItems objectList { ...ProjectFragment } } }

Example Variables:

{ "filter": iFilter, "limit": 123, "cursor": "4", "orderBy": {"property": "id", "direction": "ASC"} }

Example Response:

{ "data": { "projects": { "lowerCursor": 4, "upperCursor": 4, "hasMoreItems": true, "objectList": [Project] } } }

projectById

Type: Query Returns: [Project!]

Retrieve Projects by ID or [ID]

Arguments:

Name Type Required Description
id [ID!]! Yes

Example Query:

query projectById($id: [ID!]!) { projectById(id: $id) { id name description lastModificationDate lastModificationUser { ...UserFragment } creationDate creationUser { ...UserFragment } trashDate trashUser { ...UserFragment } endDate metadatas { ...MetadataValueFragment } metadataProperties { ...MetadataValueFragment } status workflowName approvalStatus { ...ApprovalActivityStatusFragment } approvalSummary approvals { ...ApprovalCycleFragment } assetApprovals { ...ApprovalCycleFragment } children { ...PagingResponseFragment } assetWorkflow { ...WorkflowFragment } processes { ...ProcessFragment } projectTemplate { ...ProjectTemplateFragment } priority colorSpace { ...ColorSpaceFragment } viewingCondition { ...ViewingConditionFragment } reversedView customer { ...CustomerFragment } parents { ...ContainerFragment } mainAsset { ...AssetFragment } siteId productionParticipants { ...ProductionParticipantFragment } notes { ...NoteFragment } trimmedHeight trimmedWidth nbPages accessControls deadlines { ...ProjectDeadlineFragment } } }

Example Variables:

{"id": [4]}

Example Response:

{ "data": { "projectById": [ { "id": 4, "name": "abc123", "description": "xyz789", "lastModificationDate": "2007-12-03T10:15:30Z", "lastModificationUser": User, "creationDate": "2007-12-03T10:15:30Z", "creationUser": User, "trashDate": "2007-12-03T10:15:30Z", "trashUser": User, "endDate": "2007-12-03T10:15:30Z", "metadatas": [MetadataValue], "metadataProperties": [MetadataValue], "status": ["ACTIVE"], "workflowName": "abc123", "approvalStatus": [ApprovalActivityStatus], "approvalSummary": "NONE", "approvals": [ApprovalCycle], "assetApprovals": [ApprovalCycle], "children": PagingResponse, "assetWorkflow": Workflow, "processes": [Process], "projectTemplate": ProjectTemplate, "priority": 123, "colorSpace": ColorSpace, "viewingCondition": ViewingCondition, "reversedView": true, "customer": Cus
... (truncated)

projectTemplates

Type: Query Returns: a ProjectTemplateResponse!

Retrieve Project Templates

Arguments:

Name Type Required Description
filter iFilter No
limit Int No
cursor ID No
orderBy iOrderBy No Default = {property : "id", direction : ASC}

Example Query:

query projectTemplates( $filter: iFilter, $limit: Int, $cursor: ID, $orderBy: iOrderBy ) { projectTemplates( filter: $filter, limit: $limit, cursor: $cursor, orderBy: $orderBy ) { lowerCursor upperCursor hasMoreItems objectList { ...ProjectTemplateFragment } } }

Example Variables:

{ "filter": iFilter, "limit": 123, "cursor": 4, "orderBy": {"property": "id", "direction": "ASC"} }

Example Response:

{ "data": { "projectTemplates": { "lowerCursor": 4, "upperCursor": 4, "hasMoreItems": true, "objectList": [ProjectTemplate] } } }

createProject

Type: Mutation Returns: a Project!

security role handle by the mutationFetcher itself To create a Project for a Customer with a name

Arguments:

Name Type Required Description
customerId ID! Yes
name String! Yes
setup iProjectSetup No
inputs [iInputFile!] Yes

Example Query:

mutation createProject( $customerId: ID!, $name: String!, $setup: iProjectSetup, $inputs: [iInputFile!] ) { createProject( customerId: $customerId, name: $name, setup: $setup, inputs: $inputs ) { id name description lastModificationDate lastModificationUser { ...UserFragment } creationDate creationUser { ...UserFragment } trashDate trashUser { ...UserFragment } endDate metadatas { ...MetadataValueFragment } metadataProperties { ...MetadataValueFragment } status workflowName approvalStatus { ...ApprovalActivityStatusFragment } approvalSummary approvals { ...ApprovalCycleFragment } assetApprovals { ...ApprovalCycleFragment } children { ...PagingResponseFragment } assetWorkflow { ...WorkflowFragment } processes { ...ProcessFragment } projectTemplate { ...ProjectTemplateFragment } priority colorSpace { ...ColorSpaceFragment } viewingCondition { ...ViewingConditionFragment } reversedView customer { ...CustomerFragment } parents { ...ContainerFragment } mainAsset { ...AssetFragment } siteId productionParticipants { ...ProductionParticipantFragment } notes { ...NoteFragment } trimmedHeight trimmedWidth nbPages accessControls deadlines { ...ProjectDeadlineFragment } } }

Example Variables:

{ "customerId": "4", "name": "xyz789", "setup": iProjectSetup, "inputs": [iInputFile] }

Example Response:

{ "data": { "createProject": { "id": "4", "name": "abc123", "description": "abc123", "lastModificationDate": "2007-12-03T10:15:30Z", "lastModificationUser": User, "creationDate": "2007-12-03T10:15:30Z", "creationUser": User, "trashDate": "2007-12-03T10:15:30Z", "trashUser": User, "endDate": "2007-12-03T10:15:30Z", "metadatas": [MetadataValue], "metadataProperties": [MetadataValue], "status": ["ACTIVE"], "workflowName": "xyz789", "approvalStatus": [ApprovalActivityStatus], "approvalSummary": "NONE", "approvals": [ApprovalCycle], "assetApprovals": [ApprovalCycle], "children": PagingResponse, "assetWorkflow": Workflow, "processes": [Process], "projectTemplate": ProjectTemplate, "priority": 987, "colorSpace": ColorSpace, "viewingCondition": ViewingCondition, "reversedView": true, "customer": C
... (truncated)

deleteProject

Type: Mutation Returns: a Boolean!

To delete a Project. By default the project is moved to the trash

Arguments:

Name Type Required Description
id [ID!]! Yes id of the Project
now Boolean No flag to be able to immediately delete the Project otherwise it is moved to the trash. Default = false

Example Query:

mutation deleteProject( $id: [ID!]!, $now: Boolean ) { deleteProject( id: $id, now: $now ) }

Example Variables:

{"id": [4], "now": false}

Example Response:

{"data": {"deleteProject": false}}

createFolder

Type: Mutation Returns: a Folder!

To create a Folder

Arguments:

Name Type Required Description
name String! Yes
in ID! Yes
setup iFolderSetup No

Example Query:

mutation createFolder( $name: String!, $in: ID!, $setup: iFolderSetup ) { createFolder( name: $name, in: $in, setup: $setup ) { id name description lastModificationDate lastModificationUser { ...UserFragment } creationDate creationUser { ...UserFragment } trashDate trashUser { ...UserFragment } metadatas { ...MetadataValueFragment } metadataProperties { ...MetadataValueFragment } readOnly productionSettings { ...ProductionSettingsFragment } processes { ...ProcessFragment } accessControlList { ...AccessControlListFragment } children { ...PagingResponseFragment } project { ...ProjectFragment } parents { ...ContainerFragment } path { ...FolderFragment } color icon } }

Example Variables:

{ "name": "xyz789", "in": 4, "setup": iFolderSetup }

Example Response:

{ "data": { "createFolder": { "id": 4, "name": "xyz789", "description": "abc123", "lastModificationDate": "2007-12-03T10:15:30Z", "lastModificationUser": User, "creationDate": "2007-12-03T10:15:30Z", "creationUser": User, "trashDate": "2007-12-03T10:15:30Z", "trashUser": User, "metadatas": [MetadataValue], "metadataProperties": [MetadataValue], "readOnly": true, "productionSettings": ProductionSettings, "processes": [Process], "accessControlList": AccessControlList, "children": PagingResponse, "project": Project, "parents": [Container], "path": [Folder], "color": "xyz789", "icon": 4 } } }

Assets

assets

Type: Query Returns: an AssetPagingResponse!

Retrieve Assets by filter

Arguments:

Name Type Required Description
filter iFilter No
limit Int No
cursor ID No
orderBy iOrderBy No Default = {property : "id", direction : ASC}

Example Query:

query assets( $filter: iFilter, $limit: Int, $cursor: ID, $orderBy: iOrderBy ) { assets( filter: $filter, limit: $limit, cursor: $cursor, orderBy: $orderBy ) { lowerCursor upperCursor hasMoreItems objectList { ...AssetFragment } } }

Example Variables:

{ "filter": iFilter, "limit": 987, "cursor": 4, "orderBy": {"property": "id", "direction": "ASC"} }

Example Response:

{ "data": { "assets": { "lowerCursor": "4", "upperCursor": "4", "hasMoreItems": false, "objectList": [Asset] } } }

assetById

Type: Query Returns: [Asset!]

Retrieve Assets by ID or [ID]

Arguments:

Name Type Required Description
id [ID!]! Yes

Example Query:

query assetById($id: [ID!]!) { assetById(id: $id) { id name description lastModificationDate lastModificationUser { ...UserFragment } creationDate creationUser { ...UserFragment } trashDate trashUser { ...UserFragment } metadatas { ...MetadataValueFragment } metadataProperties { ...MetadataValueFragment } status approvalSummary approvalStatus { ...ApprovalActivityStatusFragment } approvals { ...ApprovalCycleFragment } workflowName isAlias processes { ...ProcessFragment } uuid priority isCheckedOut checkedOutBy { ...UserFragment } privateWorkingRevision isArchived archiveId colorSpace { ...ColorSpaceFragment } viewingCondition { ...ViewingConditionFragment } project { ...ProjectFragment } parents { ...ContainerFragment } numberOfRevisions expirationDate medias { ...MediaFragment } notes { ...NoteFragment } relationFrom { ...RelationFragment } relationTo { ...RelationFragment } accessControls } }

Example Variables:

{"id": [4]}

Example Response:

{ "data": { "assetById": [ { "id": 4, "name": "xyz789", "description": "abc123", "lastModificationDate": "2007-12-03T10:15:30Z", "lastModificationUser": User, "creationDate": "2007-12-03T10:15:30Z", "creationUser": User, "trashDate": "2007-12-03T10:15:30Z", "trashUser": User, "metadatas": [MetadataValue], "metadataProperties": [MetadataValue], "status": ["ACTIVE"], "approvalSummary": "NONE", "approvalStatus": [ApprovalActivityStatus], "approvals": [ApprovalCycle], "workflowName": "abc123", "isAlias": false, "processes": [Process], "uuid": "abc123", "priority": 987, "isCheckedOut": false, "checkedOutBy": User, "privateWorkingRevision": 987, "isArchived": true, "archiveId": 4, "colorSpace": ColorSpace, "viewingCondition": ViewingCondition, "project": Project, "parents": [Container], "numberO
... (truncated)

createAsset

Type: Mutation Returns: an AssetCreationStatus!

To create an Asset.

Arguments:

Name Type Required Description
in [ID!]! Yes
name String No
checkedOut Boolean No Default = false
setup iAssetSetup No
input iInputFile No

Example Query:

mutation createAsset( $in: [ID!]!, $name: String, $checkedOut: Boolean, $setup: iAssetSetup, $input: iInputFile ) { createAsset( in: $in, name: $name, checkedOut: $checkedOut, setup: $setup, input: $input ) { created asset { ...AssetFragment } } }

Example Variables:

{ "in": ["4"], "name": "xyz789", "checkedOut": false, "setup": iAssetSetup, "input": iInputFile }

Example Response:

{ "data": { "createAsset": {"created": false, "asset": Asset} } }

deleteAsset

Type: Mutation Returns: a Boolean!

To delete an Asset. By default the Asset is moved to the trash

Arguments:

Name Type Required Description
id [ID!]! Yes id of the Asset
now Boolean No flag to be able to immediately delete the Asset otherwise it is moved to the trash. Default = false

Example Query:

mutation deleteAsset( $id: [ID!]!, $now: Boolean ) { deleteAsset( id: $id, now: $now ) }

Example Variables:

{"id": [4], "now": false}

Example Response:

{"data": {"deleteAsset": false}}

downloadAsset

Type: Query Returns: a Stream

Stream an Asset

Arguments:

Name Type Required Description
id ID! Yes
revision Int No Default = 0

Example Query:

query downloadAsset( $id: ID!, $revision: Int ) { downloadAsset( id: $id, revision: $revision ) }

Example Variables:

{"id": "4", "revision": 0}

Example Response:

{"data": {"downloadAsset": Stream}}

Organizations & Customers

customers

Type: Query Returns: a CustomerPagingResponse!

Retrieve Customers by filter

Arguments:

Name Type Required Description
filter iFilter No
limit Int No
cursor ID No
orderBy iOrderBy No Default = {property : "id", direction : ASC}

Example Query:

query customers( $filter: iFilter, $limit: Int, $cursor: ID, $orderBy: iOrderBy ) { customers( filter: $filter, limit: $limit, cursor: $cursor, orderBy: $orderBy ) { lowerCursor upperCursor hasMoreItems objectList { ...CustomerFragment } } }

Example Variables:

{ "filter": iFilter, "limit": 123, "cursor": 4, "orderBy": {"property": "id", "direction": "ASC"} }

Example Response:

{ "data": { "customers": { "lowerCursor": "4", "upperCursor": 4, "hasMoreItems": false, "objectList": [Customer] } } }

customerById

Type: Query Returns: [Customer!]

Retrieve Customers by ID or [ID]

Arguments:

Name Type Required Description
id [ID!]! Yes

Example Query:

query customerById($id: [ID!]!) { customerById(id: $id) { id name description lastModificationDate lastModificationUser { ...UserFragment } creationDate creationUser { ...UserFragment } metadatas { ...MetadataValueFragment } metadataProperties { ...MetadataValueFragment } sites defaultSite defaultProjectTemplate { ...ProjectTemplateFragment } projectTemplates { ...ProjectTemplateFragment } code phone phone2 www fax shippingAddress { ...AddressFragment } billingAddress { ...AddressFragment } organization { ...OrganizationFragment } children { ...PagingResponseFragment } emailTemplates { ...EmailTemplateFragment } notificationTemplates { ...NotificationTemplateFragment } securityConfiguration { ...SecurityConfigurationFragment } notifications { ...NotificationFragment } } }

Example Variables:

{"id": [4]}

Example Response:

{ "data": { "customerById": [ { "id": 4, "name": "abc123", "description": "abc123", "lastModificationDate": "2007-12-03T10:15:30Z", "lastModificationUser": User, "creationDate": "2007-12-03T10:15:30Z", "creationUser": User, "metadatas": [MetadataValue], "metadataProperties": [MetadataValue], "sites": ["abc123"], "defaultSite": "xyz789", "defaultProjectTemplate": ProjectTemplate, "projectTemplates": [ProjectTemplate], "code": "xyz789", "phone": "abc123", "phone2": "abc123", "www": "xyz789", "fax": "abc123", "shippingAddress": Address, "billingAddress": Address, "organization": Organization, "children": PagingResponse, "emailTemplates": [EmailTemplate], "notificationTemplates": [NotificationTemplate], "securityConfiguration": SecurityConfiguration, "notifications": [Notification] } ] } }

groups

Type: Query Returns: a GroupPagingResponse!

Retrieve visible groups by the current logged user

Arguments:

Name Type Required Description
filter iFilter No
limit Int No
cursor ID No
orderBy iOrderBy No Default = {property : "id", direction : ASC}

Example Query:

query groups( $filter: iFilter, $limit: Int, $cursor: ID, $orderBy: iOrderBy ) { groups( filter: $filter, limit: $limit, cursor: $cursor, orderBy: $orderBy ) { lowerCursor upperCursor hasMoreItems objectList { ...GroupFragment } } }

Example Variables:

{ "filter": iFilter, "limit": 123, "cursor": 4, "orderBy": {"property": "id", "direction": "ASC"} }

Example Response:

{ "data": { "groups": { "lowerCursor": "4", "upperCursor": 4, "hasMoreItems": false, "objectList": [Group] } } }

addUserToGroup

Type: Mutation Returns: a Boolean!

Add one or many Users to one or many Groups that are not System Groups. All the Users provided will be added to each Groups provided

Arguments:

Name Type Required Description
id [ID!]! Yes
to [ID!]! Yes

Example Query:

mutation addUserToGroup( $id: [ID!]!, $to: [ID!]! ) { addUserToGroup( id: $id, to: $to ) }

Example Variables:

{"id": ["4"], "to": [4]}

Example Response:

{"data": {"addUserToGroup": false}}

search

Type: Query Returns: a SearchResponse

Arguments:

Name Type Required Description
filter iSearchFilter! Yes
facets [String!] Yes
limit Int No
cursor ID No

Example Query:

query search( $filter: iSearchFilter!, $facets: [String!], $limit: Int, $cursor: ID ) { search( filter: $filter, facets: $facets, limit: $limit, cursor: $cursor ) { upperCursor hasMoreItems objectList { ...EntityFragment } scores facets { ...FacetFragment } } }

Example Variables:

{ "filter": iSearchFilter, "facets": ["abc123"], "limit": 987, "cursor": 4 }

Example Response:

{ "data": { "search": { "upperCursor": "4", "hasMoreItems": false, "objectList": [Entity], "scores": [987.65], "facets": [Facet] } } }

Approvals

approve

Type: Mutation Returns: a Boolean!

Arguments:

Name Type Required Description
id [ID!]! Yes The id(s) of the request approval(s) to approve
comment String No The comment associated to the approve action
checkViewingCondition Boolean No Specify if the viewing condition should be checked or not. Default = true

Example Query:

mutation approve( $id: [ID!]!, $comment: String, $checkViewingCondition: Boolean ) { approve( id: $id, comment: $comment, checkViewingCondition: $checkViewingCondition ) }

Example Variables:

{ "id": [4], "comment": "xyz789", "checkViewingCondition": true }

Example Response:

{"data": {"approve": true}}

approveObject

Type: Mutation Returns: a Boolean!

Arguments:

Name Type Required Description
id [ID!]! Yes The id(s) of the object(s) to approve
comment String No The comment associated to the approve action
checkViewingCondition Boolean No Specify if the viewing condition should be checked or not. Default = true

Example Query:

mutation approveObject( $id: [ID!]!, $comment: String, $checkViewingCondition: Boolean ) { approveObject( id: $id, comment: $comment, checkViewingCondition: $checkViewingCondition ) }

Example Variables:

{ "id": [4], "comment": "xyz789", "checkViewingCondition": true }

Example Response:

{"data": {"approveObject": false}}