Riferimento API: organizzazioni
Riferimento API per la gestione delle organizzazioni e gli endpoint di amministrazione degli utenti.
Endpoint: GET /v1/tenant/{tenantId}
Autenticazione: Chiave API con ambito tenant · read ambito
Parametri:
| Nome | Tipo | Posizione | Obbligatorio | Descrizione |
|---|---|---|---|---|
| tenantId | string | path | Sì | Formato: uuid |
Risposta (200):
Dettagli del tenant
{
"id": "00000000-0000-0000-0000-000000000000",
"createdBy": "00000000-0000-0000-0000-000000000000",
"createdAt": "2024-03-15T16:30:00Z",
"displayName": "string",
"contactEmail": "string",
"isActive": true,
"shortName": "string",
"useOrganizationTheme": true,
"description": "string",
"organizationId": "00000000-0000-0000-0000-000000000000",
"allowedLogins": {
"Microsoft": true,
"Google": true,
"LinkedIn": true
},
"url": "string"
} | Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| id | string | Sì | Formato: uuid |
| createdBy | string | Sì | Formato: uuid |
| createdAt | string | Sì | Formato: date-time |
| displayName | string | Sì | Predefinito: ""Lunghezza massima: 128 |
| contactEmail | string | Sì | Formato: email |
| isActive | boolean | Sì | Predefinito: true |
| shortName | string | Sì | |
| useOrganizationTheme | boolean | Sì | Predefinito: true |
| description | string | Sì | Lunghezza massima: 200 |
| organizationId | string | Sì | Formato: uuid |
| allowedLogins | object | Sì | |
| url | string | Sì | Formato: uri |
Errori:
Endpoint: PUT /v1/tenant/{tenantId}
Autenticazione: Chiave API con ambito tenant · write ambito
Parametri:
| Nome | Tipo | Posizione | Obbligatorio | Descrizione |
|---|---|---|---|---|
| tenantId | string | path | Sì | Formato: uuid |
Corpo della richiesta:
{
"id": "00000000-0000-0000-0000-000000000000",
"displayName": "string",
"contactEmail": "string",
"shortName": "string",
"description": "string"
} | Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| id | string | No | Formato: uuid |
| displayName | string | No | |
| contactEmail | string | No | |
| shortName | string | No | |
| description | string | No |
Risposta (200):
Tenant aggiornato
{
"id": "00000000-0000-0000-0000-000000000000",
"createdBy": "00000000-0000-0000-0000-000000000000",
"createdAt": "2024-03-15T16:30:00Z",
"displayName": "string",
"contactEmail": "string",
"isActive": true,
"shortName": "string",
"useOrganizationTheme": true,
"description": "string",
"organizationId": "00000000-0000-0000-0000-000000000000",
"allowedLogins": {
"Microsoft": true,
"Google": true,
"LinkedIn": true
},
"url": "string"
} | Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| id | string | Sì | Formato: uuid |
| createdBy | string | Sì | Formato: uuid |
| createdAt | string | Sì | Formato: date-time |
| displayName | string | Sì | Predefinito: ""Lunghezza massima: 128 |
| contactEmail | string | Sì | Formato: email |
| isActive | boolean | Sì | Predefinito: true |
| shortName | string | Sì | |
| useOrganizationTheme | boolean | Sì | Predefinito: true |
| description | string | Sì | Lunghezza massima: 200 |
| organizationId | string | Sì | Formato: uuid |
| allowedLogins | object | Sì | |
| url | string | Sì | Formato: uri |
Errori:
Endpoint: GET /v1/tenant/{tenantId}/statistics
Autenticazione: Chiave API con ambito tenant · read ambito
Parametri:
| Nome | Tipo | Posizione | Obbligatorio | Descrizione |
|---|---|---|---|---|
| tenantId | string | path | Sì | Formato: uuid |
Risposta (200):
Statistiche del tenant
{
"tenantId": "00000000-0000-0000-0000-000000000000",
"uploadedDataSize": 0,
"uploadedDataCount": 0,
"modelCount": 0,
"simulationCount": 0,
"userCount": 0
} | Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| tenantId | string | Sì | Formato: uuid |
| uploadedDataSize | number | Sì | |
| uploadedDataCount | number | Sì | |
| modelCount | number | Sì | |
| simulationCount | number | Sì | |
| userCount | number | Sì |
Errori:
Restituisce gli utenti corrispondenti come array JSON semplice: non è presente un conteggio totale; utilizzare limit/offset per la paginazione.
Endpoint: GET /v1/tenant/{tenantId}/users
Autenticazione: Chiave API con ambito tenant · read ambito
Parametri:
| Nome | Tipo | Posizione | Obbligatorio | Descrizione |
|---|---|---|---|---|
| tenantId | string | path | Sì | Formato: uuid |
| limit | integer | query | No | Numero massimo di elementi da restituire |
| offset | integer | query | No | Numero di elementi da ignorare |
Risposta (200):
Elenco degli utenti
[
{
"id": "00000000-0000-0000-0000-000000000000",
"email": "string",
"firstName": "string",
"lastName": "string",
"createdAt": "2024-03-15T16:30:00Z",
"lastLoginAt": "2024-03-15T16:30:00Z",
"tenantId": "00000000-0000-0000-0000-000000000000",
"isActiveInTenant": true,
"isAdminInTenant": true,
"access": "none",
"isDashboardViewer": true,
"organizationId": "00000000-0000-0000-0000-000000000000",
"isActiveInOrganization": true,
"isAdminInOrganization": true
}
] Errori:
I campi del ruolo nel corpo della richiesta (isAdminInTenant, access: none|portalViewer|designer|architect|intelligence, isDashboardViewer) vengono applicati senza modifiche; questo endpoint consente di amministrare completamente il tenant, pertanto assegni le chiavi con autorizzazioni di scrittura esclusivamente a chiamanti affidabili. La visualizzazione delle Dashboard è controllata dal valore booleano isDashboardViewer; il precedente livello di accesso in sola lettura viewer è stato rimosso.
Endpoint: POST /v1/tenant/{tenantId}/users
Autenticazione: Chiave API con ambito tenant · write ambito
Parametri:
| Nome | Tipo | Posizione | Obbligatorio | Descrizione |
|---|---|---|---|---|
| tenantId | string | path | Sì | Formato: uuid |
Corpo della richiesta:
{
"email": "string",
"firstName": "string",
"lastName": "string",
"isActiveInTenant": true,
"isAdminInTenant": true,
"access": "none",
"isDashboardViewer": true,
"preferredLocale": "en"
} | Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| string | Sì | Indirizzo e-mail dell’utente, utilizzato anche come identità di accesso Formato: email | |
| firstName | string | No | Nome facoltativo Lunghezza massima: 64 |
| lastName | string | No | Cognome facoltativo Lunghezza massima: 64 |
| isActiveInTenant | boolean | No | Indica se l’utente è attivo in questo tenant |
| isAdminInTenant | boolean | No | Diritti di amministratore in questo tenant, applicati senza modifiche: amministrazione completa del tenant |
| access | none | portalViewer | designer | architect | intelligence | No | Postazione a selezione singola: none | portalViewer | designer | architect | intelligence Valori consentiti: none, portalViewer, designer, architect, intelligence |
| isDashboardViewer | boolean | No | Indica se l’utente dispone della visualizzazione in sola lettura delle Dashboard |
| preferredLocale | en | zh | es | fr | de | pt | it | nl | ja | tr | No | Impostazioni locali preferite dell’interfaccia per l’utente Valori consentiti: en, zh, es, fr, de, pt, it, nl, ja, tr |
Risposta (201):
Utente aggiunto
{
"id": "string",
"message": "string"
} | Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| id | string | Sì | ID del nuovo utente aggiunto |
| message | string | Sì |
Errori:
Endpoint: PUT /v1/tenant/{tenantId}/users/{userId}
Autenticazione: Chiave API con ambito tenant · write ambito
Parametri:
| Nome | Tipo | Posizione | Obbligatorio | Descrizione |
|---|---|---|---|---|
| tenantId | string | path | Sì | Formato: uuid |
| userId | string | path | Sì | Formato: uuid |
Corpo della richiesta:
{
"isActiveInTenant": true,
"isAdminInTenant": true,
"access": "none",
"isDashboardViewer": true
} | Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| isActiveInTenant | boolean | No | Indica se l’utente è attivo in questo tenant |
| isAdminInTenant | boolean | No | Diritti di amministratore in questo tenant, applicati senza modifiche: amministrazione completa del tenant |
| access | none | portalViewer | designer | architect | intelligence | No | Postazione a selezione singola: none | portalViewer | designer | architect | intelligence. La visualizzazione delle Dashboard è controllata dal valore booleano isDashboardViewer. Valori consentiti: none, portalViewer, designer, architect, intelligence |
| isDashboardViewer | boolean | No | Indica se l’utente dispone della visualizzazione in sola lettura delle Dashboard |
Risposta (200):
Aggiornato
{
"message": "string"
} | Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| message | string | Sì |
Errori:
Endpoint: DELETE /v1/tenant/{tenantId}/users/{userId}
Autenticazione: Chiave API con ambito tenant · write ambito
Parametri:
| Nome | Tipo | Posizione | Obbligatorio | Descrizione |
|---|---|---|---|---|
| tenantId | string | path | Sì | Formato: uuid |
| userId | string | path | Sì | Formato: uuid |
Risposta (200):
Utente rimosso
{
"message": "string"
} | Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| message | string | Sì |
Errori:
Restituisce un token monouso, con validità di 60 secondi, associato all’utente, al tenant e all’organizzazione, oltre all’url a cui indirizzare il browser dell’utente. Apra l’URL nel browser dell’utente: quest’ultimo accederà a ProcessMind con autenticazione già attiva, senza link e-mail né impersonificazione, utilizzando la propria sessione. È necessario l’ambito sessions dedicato sulla chiave API: una chiave con ambito organizzazione può generare token per qualsiasi tenant della propria organizzazione, mentre una chiave con ambito tenant può farlo solo per gli utenti del proprio tenant. Tratti il token come una password: viene restituito una sola volta, non viene mai registrato nei log e viene revocato disabilitando la chiave o l’utente.
Endpoint: POST /v1/tenant/{tenantId}/users/{userId}/login-token
Autenticazione: Chiave API con ambito tenant o organizzazione · sessions ambito · limite di frequenza 2 richieste/s (burst 4)
Parametri:
| Nome | Tipo | Posizione | Obbligatorio | Descrizione |
|---|---|---|---|---|
| tenantId | string | path | Sì | Formato: uuid |
| userId | string | path | Sì | Formato: uuid |
Corpo della richiesta:
Percorso di destinazione facoltativo, relativo all’app, ad esempio “app” o “app/dashboards”
{
"path": "string"
} | Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| path | string | No | Lunghezza massima: 512 |
Risposta (200):
Token di passaggio per l’accesso
{
"token": "string",
"url": "string",
"expiresInSeconds": 0,
"expiresAt": "2024-03-15T16:30:00Z"
} | Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| token | string | Sì | |
| url | string | Sì | |
| expiresInSeconds | number | Sì | |
| expiresAt | string | Sì | Formato: date-time |
Errori:
Le chiavi API autenticano le integrazioni. Le chiavi con ambito organizzazione possono predisporre e gestire le chiavi di qualsiasi tenant dell’organizzazione.
È necessaria una chiave API con ambito organizzazione. Il segreto non viene mai restituito.
Endpoint: GET /v1/tenant/{tenantId}/api-keys
Autenticazione: Chiave API con ambito organizzazione · read ambito
Parametri:
| Nome | Tipo | Posizione | Obbligatorio | Descrizione |
|---|---|---|---|---|
| tenantId | string | path | Sì | Formato: uuid |
| limit | integer | query | No | Numero massimo di elementi da restituire |
| offset | integer | query | No | Numero di elementi da ignorare |
Risposta (200):
Elenco delle chiavi API
[
{
"id": "00000000-0000-0000-0000-000000000000",
"tenantId": "00000000-0000-0000-0000-000000000000",
"organizationId": "00000000-0000-0000-0000-000000000000",
"displayName": "string",
"partialKey": "string",
"enabled": true,
"createdAt": "2024-03-15T16:30:00Z",
"lastUsedAt": "2024-03-15T16:30:00Z",
"expiresAt": "2024-03-15T16:30:00Z",
"scope": {
"read": true,
"write": true,
"uploadData": true,
"sessions": true
}
}
] Errori:
È necessaria una chiave di scrittura con ambito organizzazione. Il segreto viene generato lato server e restituito una sola volta nella risposta; lo conservi in modo sicuro. Viene memorizzato esclusivamente l’hash.
Endpoint: POST /v1/tenant/{tenantId}/api-keys
Autenticazione: Chiave API con ambito organizzazione · write ambito
Parametri:
| Nome | Tipo | Posizione | Obbligatorio | Descrizione |
|---|---|---|---|---|
| tenantId | string | path | Sì | Formato: uuid |
Corpo della richiesta:
{
"displayName": "string",
"scope": {
"read": true,
"write": true,
"uploadData": true,
"sessions": true
},
"enabled": true,
"expiresAt": "2024-03-15T16:30:00Z"
} | Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| displayName | string | Sì | Lunghezza massima: 128 |
| scope | object | No | |
| enabled | boolean | No | |
| expiresAt | string | No | Formato: date-time |
Risposta (201):
Chiave API creata, incluso il segreto monouso
{
"id": "00000000-0000-0000-0000-000000000000",
"tenantId": "00000000-0000-0000-0000-000000000000",
"organizationId": "00000000-0000-0000-0000-000000000000",
"displayName": "string",
"partialKey": "string",
"enabled": true,
"createdAt": "2024-03-15T16:30:00Z",
"lastUsedAt": "2024-03-15T16:30:00Z",
"expiresAt": "2024-03-15T16:30:00Z",
"scope": {
"read": true,
"write": true,
"uploadData": true,
"sessions": true
},
"secret": "string"
} | Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| id | string | Sì | Formato: uuid |
| tenantId | string | Sì | Formato: uuid |
| organizationId | string | Sì | Formato: uuid |
| displayName | string | Sì | Lunghezza massima: 128 |
| partialKey | string | Sì | Lunghezza massima: 128 |
| enabled | boolean | Sì | Predefinito: true |
| createdAt | string | Sì | Formato: date-time |
| lastUsedAt | string | Sì | Formato: date-time |
| expiresAt | string | Sì | Formato: date-time |
| scope | object | Sì | |
| secret | string | Sì | Lunghezza massima: 128 |
Errori:
È necessaria una chiave di scrittura con ambito organizzazione. I campi dell’ambito vengono uniti a quello memorizzato.
Endpoint: PUT /v1/tenant/{tenantId}/api-keys/{keyId}
Autenticazione: Chiave API con ambito organizzazione · write ambito
Parametri:
| Nome | Tipo | Posizione | Obbligatorio | Descrizione |
|---|---|---|---|---|
| tenantId | string | path | Sì | Formato: uuid |
| keyId | string | path | Sì | Formato: uuid |
Corpo della richiesta:
{
"displayName": "string",
"scope": {
"read": true,
"write": true,
"uploadData": true,
"sessions": true
},
"enabled": true,
"expiresAt": "2024-03-15T16:30:00Z"
} | Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| displayName | string | No | Lunghezza massima: 128 |
| scope | object | No | |
| enabled | boolean | No | |
| expiresAt | string | No | Formato: date-time |
Risposta (200):
Chiave API aggiornata
{
"id": "00000000-0000-0000-0000-000000000000",
"tenantId": "00000000-0000-0000-0000-000000000000",
"organizationId": "00000000-0000-0000-0000-000000000000",
"displayName": "string",
"partialKey": "string",
"enabled": true,
"createdAt": "2024-03-15T16:30:00Z",
"lastUsedAt": "2024-03-15T16:30:00Z",
"expiresAt": "2024-03-15T16:30:00Z",
"scope": {
"read": true,
"write": true,
"uploadData": true,
"sessions": true
}
} | Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| id | string | Sì | Formato: uuid |
| tenantId | string | Sì | Formato: uuid |
| organizationId | string | Sì | Formato: uuid |
| displayName | string | Sì | Lunghezza massima: 128 |
| partialKey | string | Sì | Lunghezza massima: 128 |
| enabled | boolean | Sì | Predefinito: true |
| createdAt | string | Sì | Formato: date-time |
| lastUsedAt | string | Sì | Formato: date-time |
| expiresAt | string | Sì | Formato: date-time |
| scope | object | Sì |
Errori:
È necessaria una chiave di scrittura con ambito organizzazione. La chiave viene eliminata logicamente e smette immediatamente di autenticare le richieste.
Endpoint: DELETE /v1/tenant/{tenantId}/api-keys/{keyId}
Autenticazione: Chiave API con ambito organizzazione · write ambito
Parametri:
| Nome | Tipo | Posizione | Obbligatorio | Descrizione |
|---|---|---|---|---|
| tenantId | string | path | Sì | Formato: uuid |
| keyId | string | path | Sì | Formato: uuid |
Risposta (200):
Chiave API eliminata
{
"message": "string"
} | Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| message | string | Sì |
Errori:
Utilizziamo i cookie per migliorare la Sua esperienza, personalizzare i contenuti e analizzare il traffico. Facendo clic su "Accetta tutto", acconsente all’utilizzo dei cookie.