ΖΩΝΤΑΝΑ · ΑΛΥΣΙΔΑ ΕΛΕΓΧΟΥ · ΕΕ
ΣΥΣΤΗΜΑ · 99,99% ΔΙΑΘΕΣΙΜΟΤΗΤΑ
v 1.0 ↗ ΦΤΙΑΓΜΕΝΟ ΣΤΗΝ ΕΕ

Αυθεντικοποίηση

Κάθε αίτημα προς το δημόσιο API φέρει ένα ζεύγος διαπιστευτηρίων — nb_pub_* (δημόσιο κλειδί) + nb_sec_* (μυστικό). Το μυστικό αποστέλλεται ως Bearer token. Το διαπιστευτήριο περιορίζεται σε έναν μόνο org + έναν σταθερό κατάλογο scope.

Έκδοση διαπιστευτηρίων

  1. Συνδεθείτε στον org σας στο app.nexbasira.com.
  2. Μεταβείτε στο Admin → API credentials.
  3. Κάντε κλικ στο Issue credential, επιλέξτε όνομα + scopes, επιβεβαιώστε.
  4. Αντιγράψτε το ζεύγος 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 ανά συνεδρία

Εναλλαγή

Για εναλλαγή χωρίς διακοπή λειτουργίας:

  1. Εκδώστε ένα νέο διαπιστευτήριο με το ίδιο σύνολο scope.
  2. Αναπτύξτε το νέο μυστικό στην εφαρμογή σας.
  3. Επαληθεύστε ότι το νέο διαπιστευτήριο δέχεται κίνηση (το Admin → API credentials εμφανίζει χρονοσφραγίδα τελευταίας χρήσης).
  4. Ανακαλέστε ήπια το παλιό διαπιστευτήριο. Τα υπάρχοντα αιτήματα που το χρησιμοποιούν επιστρέφουν 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.