Αυθεντικοποίηση
Κάθε αίτημα προς το δημόσιο API φέρει ένα ζεύγος διαπιστευτηρίων — nb_pub_* (δημόσιο κλειδί) + nb_sec_* (μυστικό). Το μυστικό αποστέλλεται ως Bearer token. Το διαπιστευτήριο περιορίζεται σε έναν μόνο org + έναν σταθερό κατάλογο scope.
Έκδοση διαπιστευτηρίων
- Συνδεθείτε στον org σας στο app.nexbasira.com.
- Μεταβείτε στο Admin → API credentials.
- Κάντε κλικ στο Issue credential, επιλέξτε όνομα + scopes, επιβεβαιώστε.
- Αντιγράψτε το ζεύγος
nb_pub_*+nb_sec_*. Το μυστικό εμφανίζεται ακριβώς μία φορά. Αποθηκεύστε το αμέσως στον διαχειριστή μυστικών σας — εμείς κρατάμε μόνο ένα hash SHA-256 από την πλευρά μας.
Χρήση του διαπιστευτηρίου
Authorization: Bearer nb_sec_AbCdEf... Το δημόσιο κλειδί (nb_pub_*) ταυτοποιεί το διαπιστευτήριο στα logs μας + εμφανίζεται στην κεφαλίδα NB-Credential-Id των παραδόσεων webhook. Το μυστικό αυθεντικοποιεί.
curl https://app.nexbasira.com/api/v1/public/sessions \
-H "Authorization: Bearer nb_sec_..." Κατάλογος scope
Κάθε διαπιστευτήριο δημιουργείται με ρητό σύνολο scope. Αιτήματα εκτός αυτών των scopes επιστρέφουν 403. Ο κατάλογος scope είναι σταθερός (χωρίς προσαρμοσμένα scopes στο v1):
| Scope | Παρέχει |
|---|---|
sessions:read | Λίστα + ανάκτηση συνεδριών |
sessions:write | Δημιουργία συνεδριών + τερματισμός τους |
participants:read | Λίστα συμμετεχόντων σε μια συνεδρία |
participants:write | Δημιουργία προσκλήσεων χρηστών πεδίου |
evidence:read | Λίστα + ανάκτηση εγγραφών τεκμηρίων + υπογεγραμμένων URL λήψης |
recordings:read | Ανάγνωση μεταδεδομένων artefact εγγραφής + URL λήψης |
audit:read | Ανάγνωση της αλυσίδας ελέγχου ανά συνεδρία + συντεταγμένων αγκύρωσης TSA |
webhooks:read | Λίστα καταχωρημένων endpoints webhook + log παραδόσεων |
webhooks:write | Καταχώριση / εναλλαγή μυστικού / διαγραφή endpoints webhook |
branding:read | Ανάγνωση branding org (logo / χρώματα / υποσέλιδο PDF) |
branding:write | Μεταβολή branding org |
org:read | Ανάγνωση μεταδεδομένων org |
whiteboards:read | Λίστα whiteboards ανά συνεδρία |
Εναλλαγή
Για εναλλαγή χωρίς διακοπή λειτουργίας:
- Εκδώστε ένα νέο διαπιστευτήριο με το ίδιο σύνολο scope.
- Αναπτύξτε το νέο μυστικό στην εφαρμογή σας.
- Επαληθεύστε ότι το νέο διαπιστευτήριο δέχεται κίνηση (το Admin → API credentials εμφανίζει χρονοσφραγίδα τελευταίας χρήσης).
- Ανακαλέστε ήπια το παλιό διαπιστευτήριο. Τα υπάρχοντα αιτήματα που το χρησιμοποιούν επιστρέφουν 401· η αλυσίδα ελέγχου των παρελθόντων κλήσεων παραμένει ανέπαφη.
Επαλήθευση σταθερού χρόνου
Στο backend, τα μυστικά αποθηκεύονται ως SHA-256(secret + SECRET_KEY_pepper) και συγκρίνονται σε σταθερό χρόνο (hmac.compare_digest). Ένα διαρρεύσαν dump hash δεν μπορεί να αποκρυπτογραφηθεί με brute-force στο plaintext χωρίς να παραβιαστεί και το pepper.
Τι ΔΕΝ παρέχει αυτό το διαπιστευτήριο
- Πρόσβαση admin στο SPA — αυτή είναι ξεχωριστή (σύνδεση χειριστή + RBAC).
- Σύνδεση από την πλευρά πεδίου — αυτή χρησιμοποιεί υπογεγραμμένα URL μιας χρήσης που δημιουργούνται μέσω
sessions.invite(). - Provisioning SCIM — χρησιμοποιεί ξεχωριστό bearer token ανά org, δείτε SCIM provisioning.
- Υπογραφή webhook — αυτή γίνεται με το μυστικό
whsec_*ανά endpoint, δείτε Webhooks.
Αλυσίδα ελέγχου
Κάθε κλήση API καταγράφεται με το δημόσιο κλειδί του διαπιστευτηρίου + το endpoint + το status. Οι λειτουργίες που μεταβάλλουν κατάσταση γράφουν επιπλέον εγγραφές ελέγχου στον επηρεαζόμενο org. Ο admin μπορεί να δει τη δραστηριότητα του διαπιστευτηρίου στο Admin → API credentials → [credential] → Activity.