Download OpenAPI specification:
Endpoints για δημιουργία, ενημέρωση και συγχρονισμό χρηστών στο Eisigites.
Τα endpoints αυτά εκτίθενται από το Eisigites, ώστε το κεντρικό σύστημα Διαχείρισης Χρηστών να μπορεί να δημιουργεί, να ενημερώνει και να συγχρονίζει τους τοπικούς shadow users της εφαρμογής.
Το κεντρικό σύστημα Διαχείρισης Χρηστών παραμένει το source of truth.
Το Eisigites κρατά δικό του τοπικό user id και το αντιστοιχίζει με το
κεντρικό user id μέσω του πεδίου externalUserId.
Δημιουργεί ή ενημερώνει έως 500 χρήστες σε ένα request.
Το validation γίνεται ανά χρήστη. Αν ένα record έχει άκυρο payload,
επιστρέφεται ως ERROR μέσα στο results και τα υπόλοιπα έγκυρα
records συνεχίζουν να επεξεργάζονται.
Οι υπάρχοντες χρήστες εντοπίζονται με βάση το provider + externalUserId.
Αν δεν υπάρχει ακόμα external mapping, το Eisigites μπορεί να συνδέσει
υπάρχοντα τοπικό χρήστη με βάση το username ή το email, εφόσον ο
χρήστης αυτός δεν είναι ήδη συνδεδεμένος με άλλο external user.
required | Πίνακας απόobjects (UserProvisioningInput) [ 1 .. 500 ] items | ||||||||||||||||||||||||||||||||||||||||||||
Array ([ 1 .. 500 ] items)
| |||||||||||||||||||||||||||||||||||||||||||||
| total required | integer >= 0 | ||||||||||||||||||||||||||||||||||||||||||||||
| succeeded required | integer >= 0 | ||||||||||||||||||||||||||||||||||||||||||||||
| failed required | integer >= 0 | ||||||||||||||||||||||||||||||||||||||||||||||
required | Πίνακας απόobjects or objects (UsersSyncResult) | ||||||||||||||||||||||||||||||||||||||||||||||
Array One of
| |||||||||||||||||||||||||||||||||||||||||||||||
| total required | integer >= 0 | ||||||||||||||||||||||||||||||||||||||||||||||
| succeeded required | integer >= 0 | ||||||||||||||||||||||||||||||||||||||||||||||
| failed required | integer >= 0 | ||||||||||||||||||||||||||||||||||||||||||||||
required | Πίνακας απόobjects or objects (UsersSyncResult) | ||||||||||||||||||||||||||||||||||||||||||||||
Array One of
| |||||||||||||||||||||||||||||||||||||||||||||||
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
{- "users": [
- {
- "externalUserId": "42",
- "username": "ipapadopoulos",
- "email": "ipapadopoulos@example.com",
- "firstName": "Ioannis",
- "lastName": "Papadopoulos",
- "enabled": true,
- "role": "admin",
- "stakeholder": "cadastre",
- "roles": [
- "Admin"
], - "officeIds": [
- "6687f2000000000000000000"
], - "organization": {
- "id": "10",
- "title": "Organization Name"
}
}
]
}{- "total": 1,
- "succeeded": 1,
- "failed": 0,
- "results": [
- {
- "externalUserId": "string",
- "status": "CREATED",
- "user": {
- "localUserId": "6687f1000000000000000000",
- "externalUserId": "42",
- "provider": "central-auth",
- "username": "ipapadopoulos",
- "email": "ipapadopoulos@example.com",
- "firstName": "Ioannis",
- "lastName": "Papadopoulos",
- "enabled": true,
- "role": "admin",
- "stakeholder": "lawyer",
- "officeIds": [ ],
- "roles": [
- "Admin"
], - "organization": {
- "id": "42",
- "title": "string",
- "code": "string"
}, - "lastSyncedAt": "2026-07-04T09:00:00.000Z"
}
}
]
}Επιστρέφει το τοπικό mapping χρήστη στο Eisigites για ένα κεντρικό user id.
| externalUserId required | string non-empty Παράδειγμα: 42 Σταθερό user id από το κεντρικό σύστημα Διαχείρισης Χρηστών. |
| provider | string non-empty Παράδειγμα: provider=central-auth Εξωτερικός identity provider. Αν δεν σταλεί, χρησιμοποιείται το |
| localUserId required | string Τοπικό MongoDB ObjectId που αποδίδεται από το Eisigites. | ||||||||
| externalUserId required | string | ||||||||
| provider required | string | ||||||||
| username required | string | ||||||||
| firstName required | string | ||||||||
| lastName required | string | ||||||||
| enabled required | boolean | ||||||||
| role required | string (UserRole) Επιτρεπτές τιμές: "admin" "manager" "auditor" "accountant" "archiver" "users_editor" "supervisor" | ||||||||
| stakeholder required | string (Stakeholder) Επιτρεπτές τιμές: "lawyer" "ministry" "cadastre" "task_force" | ||||||||
| officeIds required | Πίνακας απόstrings | ||||||||
| roles required | Πίνακας απόstrings | ||||||||
string or null <email> | |||||||||
object (Organization) non-empty | |||||||||
| |||||||||
| lastSyncedAt | string or null <date-time> | ||||||||
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
{- "localUserId": "6687f1000000000000000000",
- "externalUserId": "42",
- "provider": "central-auth",
- "username": "ipapadopoulos",
- "email": "ipapadopoulos@example.com",
- "firstName": "Ioannis",
- "lastName": "Papadopoulos",
- "enabled": true,
- "role": "admin",
- "stakeholder": "lawyer",
- "officeIds": [ ],
- "roles": [
- "Admin"
], - "organization": {
- "id": "42",
- "title": "string",
- "code": "string"
}, - "lastSyncedAt": "2026-07-04T09:00:00.000Z"
}Δημιουργεί ή ενημερώνει έναν provisioned χρήστη με merge semantics. Τα optional πεδία που παραλείπονται σε υπάρχοντα χρήστη δεν καθαρίζονται. Το κεντρικό user id λαμβάνεται από το path parameter.
| externalUserId required | string non-empty Παράδειγμα: 42 Σταθερό user id από το κεντρικό σύστημα Διαχείρισης Χρηστών. |
| provider | string non-empty Παράδειγμα: provider=central-auth Εξωτερικός identity provider. Αν δεν σταλεί, χρησιμοποιείται το |
| username required | string non-empty Τοπικό username, αποθηκεύεται σε lower-case. | ||||||||
| firstName required | string non-empty | ||||||||
| lastName required | string non-empty | ||||||||
| role required | string (UserRole) Επιτρεπτές τιμές: "admin" "manager" "auditor" "accountant" "archiver" "users_editor" "supervisor" | ||||||||
| provider | string non-empty Προεπιλογή: "central-auth" | ||||||||
string or null <email> | |||||||||
| enabled | boolean Για νέο χρήστη, αν παραλειφθεί αποθηκεύεται ως | ||||||||
| stakeholder | string (Stakeholder) Επιτρεπτές τιμές: "lawyer" "ministry" "cadastre" "task_force" | ||||||||
| roles | Πίνακας απόstrings[ items non-empty ] Raw κεντρικοί ρόλοι ή groups, κρατούνται για traceability. | ||||||||
object (Organization) non-empty | |||||||||
| |||||||||
| officeIds | Πίνακας απόstrings non-empty unique [ items^[a-fA-F0-9]{24}$ ] Τοπικά Eisigites Office ObjectId values από | ||||||||
| tags | Πίνακας απόstrings Επιτρεπτές τιμές Επιτρεπτές τιμές: "tf21" "tf30" | ||||||||
| specialPermissions | Πίνακας απόstrings Επιτρεπτές τιμές Επιτρεπτές τιμές: "canMarkCaseAsOristiki" "canResetCaseDecision" "canThisManagerSelfAssignCase" "canViewCaseAuditorInCaseTable" "canChangeCasePriority" | ||||||||
| vatNumber | string or null Ελληνικό ΑΦΜ. Γίνεται server-side checksum validation όταν σταλεί μη κενή τιμή. | ||||||||
| iban | string or null Γίνεται server-side IBAN validation όταν σταλεί μη κενή τιμή. | ||||||||
| status required | string (UserWriteStatus) Επιτρεπτές τιμές: "CREATED" "UPDATED" "LINKED_UPDATED" "DISABLED" "ERROR" | ||||||||||||||||||||||||||||||||||||||
required | object (ProvisionedUser) | ||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||
| status required | string (UserWriteStatus) Επιτρεπτές τιμές: "CREATED" "UPDATED" "LINKED_UPDATED" "DISABLED" "ERROR" | ||||||||||||||||||||||||||||||||||||||
required | object (ProvisionedUser) | ||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
{- "username": "ipapadopoulos",
- "email": "ipapadopoulos@example.com",
- "firstName": "Ioannis",
- "lastName": "Papadopoulos",
- "enabled": true,
- "role": "auditor",
- "stakeholder": "cadastre",
- "roles": [
- "Auditor"
], - "officeIds": [
- "6687f2000000000000000000"
], - "organization": {
- "id": "10",
- "title": "Organization Name"
}
}{- "status": "CREATED",
- "user": {
- "localUserId": "6687f1000000000000000000",
- "externalUserId": "42",
- "provider": "central-auth",
- "username": "ipapadopoulos",
- "email": "ipapadopoulos@example.com",
- "firstName": "Ioannis",
- "lastName": "Papadopoulos",
- "enabled": true,
- "role": "admin",
- "stakeholder": "lawyer",
- "officeIds": [ ],
- "roles": [
- "Admin"
], - "organization": {
- "id": "42",
- "title": "string",
- "code": "string"
}, - "lastSyncedAt": "2026-07-04T09:00:00.000Z"
}
}Ενημερώνει μερικώς έναν υπάρχοντα provisioned χρήστη. Πρέπει να αποσταλεί τουλάχιστον ένα μεταβλητό πεδίο.
| externalUserId required | string non-empty Παράδειγμα: 42 Σταθερό user id από το κεντρικό σύστημα Διαχείρισης Χρηστών. |
| provider | string non-empty Παράδειγμα: provider=central-auth Εξωτερικός identity provider. Αν δεν σταλεί, χρησιμοποιείται το |
| provider | string non-empty | ||||||||
| username | string non-empty | ||||||||
string or null <email> | |||||||||
| firstName | string non-empty | ||||||||
| lastName | string non-empty | ||||||||
| enabled | boolean | ||||||||
| role | string (UserRole) Επιτρεπτές τιμές: "admin" "manager" "auditor" "accountant" "archiver" "users_editor" "supervisor" | ||||||||
| stakeholder | string (Stakeholder) Επιτρεπτές τιμές: "lawyer" "ministry" "cadastre" "task_force" | ||||||||
| roles | Πίνακας απόstrings[ items non-empty ] | ||||||||
object (Organization) non-empty | |||||||||
| |||||||||
| officeIds | Πίνακας απόstrings non-empty unique [ items^[a-fA-F0-9]{24}$ ] Τοπικά Eisigites Office ObjectId values από | ||||||||
| tags | Πίνακας απόstrings Επιτρεπτές τιμές Επιτρεπτές τιμές: "tf21" "tf30" | ||||||||
| specialPermissions | Πίνακας απόstrings Επιτρεπτές τιμές Επιτρεπτές τιμές: "canMarkCaseAsOristiki" "canResetCaseDecision" "canThisManagerSelfAssignCase" "canViewCaseAuditorInCaseTable" "canChangeCasePriority" | ||||||||
| vatNumber | string or null Ελληνικό ΑΦΜ. Γίνεται server-side checksum validation όταν σταλεί μη κενή τιμή. | ||||||||
| iban | string or null Γίνεται server-side IBAN validation όταν σταλεί μη κενή τιμή. | ||||||||
| status required | string (UserWriteStatus) Επιτρεπτές τιμές: "CREATED" "UPDATED" "LINKED_UPDATED" "DISABLED" "ERROR" | ||||||||||||||||||||||||||||||||||||||
required | object (ProvisionedUser) | ||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
{- "enabled": false,
- "role": "auditor",
- "roles": [
- "Auditor"
]
}{- "status": "CREATED",
- "user": {
- "localUserId": "6687f1000000000000000000",
- "externalUserId": "42",
- "provider": "central-auth",
- "username": "ipapadopoulos",
- "email": "ipapadopoulos@example.com",
- "firstName": "Ioannis",
- "lastName": "Papadopoulos",
- "enabled": true,
- "role": "admin",
- "stakeholder": "lawyer",
- "officeIds": [ ],
- "roles": [
- "Admin"
], - "organization": {
- "id": "42",
- "title": "string",
- "code": "string"
}, - "lastSyncedAt": "2026-07-04T09:00:00.000Z"
}
}Απενεργοποιεί τοπικά τον χρήστη θέτοντας enabled=false.
Ο τοπικός χρήστης δεν διαγράφεται φυσικά, επειδή μπορεί να χρησιμοποιείται από υποθέσεις, audit logs, πληρωμές, σημειώσεις ή ειδοποιήσεις.
| externalUserId required | string non-empty Παράδειγμα: 42 Σταθερό user id από το κεντρικό σύστημα Διαχείρισης Χρηστών. |
| provider | string non-empty Παράδειγμα: provider=central-auth Εξωτερικός identity provider. Αν δεν σταλεί, χρησιμοποιείται το |
| status required | string (UserWriteStatus) Επιτρεπτές τιμές: "CREATED" "UPDATED" "LINKED_UPDATED" "DISABLED" "ERROR" | ||||||||||||||||||||||||||||||||||||||
required | object (ProvisionedUser) | ||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
{- "status": "CREATED",
- "user": {
- "localUserId": "6687f1000000000000000000",
- "externalUserId": "42",
- "provider": "central-auth",
- "username": "ipapadopoulos",
- "email": "ipapadopoulos@example.com",
- "firstName": "Ioannis",
- "lastName": "Papadopoulos",
- "enabled": true,
- "role": "admin",
- "stakeholder": "lawyer",
- "officeIds": [ ],
- "roles": [
- "Admin"
], - "organization": {
- "id": "42",
- "title": "string",
- "code": "string"
}, - "lastSyncedAt": "2026-07-04T09:00:00.000Z"
}
}Υποστηρικτικά endpoints για διαθέσιμους ρόλους, φορείς/ιδιότητες, οργανισμούς, γραφεία και permissions.
Bootstrap endpoint που επιστρέφει τις επιτρεπτές τιμές που χρειάζεται το κεντρικό σύστημα Διαχείρισης Χρηστών για να κάνει σωστό provisioning στο Eisigites.
Το πεδίο officeIds στα user payloads πρέπει να περιέχει τιμές από
τα offices.id που έχουν assignable=true. Στην πράξη αυτό σημαίνει
ότι το office είναι υποκατάστημα, δηλαδή έχει parent, και μπορεί να
ανατεθεί σε χρήστη. Τα organizations προκύπτουν από τα top-level
offices του Eisigites, επειδή η εφαρμογή δεν διαθέτει ξεχωριστό τοπικό
Organization model.
Για άντληση μίας οντότητας με pagination, χρησιμοποιήστε
GET /reference-data/{entity}.
| include | Πίνακας απόstrings (ReferenceEntity) Επιτρεπτές τιμές Επιτρεπτές τιμές: "roles" "stakeholders" "organizations" "offices" "tags" "specialPermissions" Παράδειγμα: include=roles,stakeholders,offices Comma-separated λίστα από reference οντότητες που θα συμπεριληφθούν στο bootstrap response. Αν δεν σταλεί, επιστρέφονται όλες. |
| generatedAt required | string <date-time> | ||||||||||||||||||||||
Πίνακας απόobjects (RoleReference) | |||||||||||||||||||||||
Array
| |||||||||||||||||||||||
Πίνακας απόobjects (StakeholderReference) | |||||||||||||||||||||||
Array
| |||||||||||||||||||||||
Πίνακας απόobjects (OrganizationReference) Top-level offices που λειτουργούν ως οργανωτικές οντότητες στο Eisigites. | |||||||||||||||||||||||
Array
| |||||||||||||||||||||||
Πίνακας απόobjects (OfficeReference) Γραφεία του Eisigites. Για user provisioning χρησιμοποιούνται τα | |||||||||||||||||||||||
Array
| |||||||||||||||||||||||
Πίνακας απόobjects (TagReference) | |||||||||||||||||||||||
Array
| |||||||||||||||||||||||
Πίνακας απόobjects (SpecialPermissionReference) Ορατά special permissions που μπορούν να σταλούν στο | |||||||||||||||||||||||
Array
| |||||||||||||||||||||||
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
{- "generatedAt": "2026-07-06T18:00:00.000Z",
- "roles": [
- {
- "name": "auditor",
- "title": "Εισηγητής",
- "enabledInAddUserFormForRoles": [
- "admin",
- "users_editor"
]
}
], - "stakeholders": [
- {
- "name": "cadastre",
- "title": "Κτηματολόγιο"
}
], - "organizations": [
- {
- "id": "6687f1000000000000000000",
- "name": "Κεντρικό Γραφείο",
- "spekOfficeId": "100",
- "updatedAt": "2026-07-06T18:00:00.000Z"
}
], - "offices": [
- {
- "id": "6687f2000000000000000000",
- "name": "Υποκατάστημα Αθήνας",
- "spekOfficeId": "101",
- "spekOfficeParentId": "100",
- "assignable": true,
- "parent": {
- "id": "6687f1000000000000000000",
- "name": "Κεντρικό Γραφείο",
- "spekOfficeId": "100"
}, - "updatedAt": "2026-07-06T18:00:00.000Z"
}
], - "tags": [
- {
- "value": "tf21",
- "label": "Task Force 21"
}
], - "specialPermissions": [
- {
- "name": "canMarkCaseAsOristiki",
- "title": "Σήμανση ως οριστική στο ΣΠΕΚ",
- "roles": [
- "manager"
]
}
]
}Επιστρέφει μία reference οντότητα με σταθερό response envelope και
pagination μέσω limit / offset.
Χρησιμοποιείται όταν το κεντρικό σύστημα θέλει να συγχρονίσει ή να
ανανεώσει ξεχωριστά μία λίστα, π.χ. μόνο τα offices.
| entity required | string (ReferenceEntity) Επιτρεπτές τιμές: "roles" "stakeholders" "organizations" "offices" "tags" "specialPermissions" Παράδειγμα: offices Reference οντότητα που θα επιστραφεί. |
| limit | integer [ 0 .. 500 ] Προεπιλογή: 100 Παράδειγμα: limit=100 Μέγιστος αριθμός items που θα επιστραφούν. Default |
| offset | integer >= 0 Προεπιλογή: 0 Αριθμός items που θα παραλειφθούν. Default |
| search | string Παράδειγμα: search=Αθήνα Αναζήτηση σε βασικά text πεδία της οντότητας, όπως |
| assignable | boolean Παράδειγμα: assignable=true Φίλτρο μόνο για |
| updatedAfter | string <date-time> Παράδειγμα: updatedAfter=2026-07-01T00:00:00.000Z Φίλτρο μόνο για |
| generatedAt required | string <date-time> | ||||||
| entity required | string (ReferenceEntity) Επιτρεπτές τιμές: "roles" "stakeholders" "organizations" "offices" "tags" "specialPermissions" | ||||||
| total required | integer >= 0 Σύνολο items μετά τα filters και πριν από το pagination. | ||||||
| limit required | integer [ 0 .. 500 ] | ||||||
| offset required | integer >= 0 | ||||||
required | Πίνακας απόRoleReference (object) or StakeholderReference (object) or OrganizationReference (object) or OfficeReference (object) or TagReference (object) or SpecialPermissionReference (object) (ReferenceEntityItem) | ||||||
Array One of
| |||||||
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
| message required | string |
Πίνακας απόany or object or string or null | |
One of Array any | |
| property name* additional property | any |
{- "generatedAt": "2026-07-06T18:00:00.000Z",
- "entity": "offices",
- "total": 1,
- "limit": 100,
- "offset": 0,
- "items": [
- {
- "id": "6687f2000000000000000000",
- "name": "Υποκατάστημα Αθήνας",
- "spekOfficeId": "101",
- "spekOfficeParentId": "100",
- "assignable": true,
- "parent": {
- "id": "6687f1000000000000000000",
- "name": "Κεντρικό Γραφείο",
- "spekOfficeId": "100"
}, - "updatedAt": "2026-07-06T18:00:00.000Z"
}
]
}