Partner Portal
Self-service web περιβάλλον όπου οι εταίροι βλέπουν το API key τους, το περιστρέφουν (rotate) και ρυθμίζουν το webhook URL τους.
Το Partner Portal είναι μια web εφαρμογή που αποδίδεται από τον server (server-rendered) και επιτρέπει στους εταίρους να διαχειρίζονται τα δικά τους διαπιστευτήρια (credentials) SmartphoneKey και το URL παράδοσης webhook, χωρίς να χρειάζεται να επικοινωνήσουν με την υποστήριξη.
URLs
| Περιβάλλον | URL |
|---|---|
| Dev | https://partner-portal.spk-dev.workers.dev/ |
| Stage | https://partner-portal.spk-stage.workers.dev/ |
| Nonprod | https://partner-portal.spk-nonprod.workers.dev/ |
| Prod | https://partner-portal.spk-prod.workers.dev/ |
Τι μπορείτε να κάνετε
- Να δείτε το
orgIdσας και το πρόθεμα (prefix) του ενεργού API key σας. - Να δείτε ολόκληρο το API key σας μία φορά, αμέσως μετά την περιστροφή (rotation), πίσω από έναν διακόπτη Reveal.
- Να περιστρέψετε το API key σας — εκδίδει ένα νέο key και ανακαλεί το προηγούμενο στο ίδιο βήμα.
- Να ορίσετε ή να ενημερώσετε το webhook URL σας — το URL στο οποίο θα γίνεται POST των events. Η κατάσταση επαναφέρεται σε
pendingμέχρι το EventBridge να το επαληθεύσει ξανά.
Το portal είναι σκόπιμα περιορισμένο: οτιδήποτε πέρα από αλλαγές URL (φίλτρο events, περιστροφή secret, δευτερεύοντα webhooks) είναι αποκλειστικά για διαχειριστές (admin-only).
Ροή σύνδεσης (Sign-in)
Το portal δεν διαθέτει δική του φόρμα εγγραφής. Η ταυτότητα ανήκει στο Auth0:
- Ανοίξτε το URL του portal για το περιβάλλον σας.
- Κάντε κλικ στο Sign in with Auth0 στην αρχική σελίδα.
- Το Auth0 σας καθοδηγεί στη σύνδεση μέσω email (ή social login, ανάλογα με τη ρύθμιση του tenant σας).
- Μετά το OIDC callback, οι εταίροι που συνδέονται για πρώτη φορά οδηγούνται σε μια σελίδα Onboarding για να επιλέξουν ένα organization ID και όνομα. Η υποβολή αυτής της φόρμας:
- Καταχωρεί τον tenant σας.
- Εκδίδει το αρχικό σας API key (εμφανίζεται μία φορά στον πίνακα ελέγχου με έναν διακόπτη reveal και μια προειδοποίηση «αποθηκεύστε το τώρα»).
- Σας ανακατευθύνει στον πίνακα ελέγχου.
Οι εταίροι που επιστρέφουν παρακάμπτουν το onboarding και προσγειώνονται απευθείας στον πίνακα ελέγχου με ένα μασκαρισμένο key (3f9a1b2c…7d4e).
Ξενάγηση στον πίνακα ελέγχου (Dashboard)
Ο πίνακας ελέγχου είναι μία σελίδα χωρισμένη σε τρεις κάρτες:
1. Organization
Εμφανίζει το orgId σας. Αυτή είναι η τιμή στην οποία το EventBridge εφαρμόζει φίλτρο (detail.partnerId) για κάθε event που λαμβάνετε.
2. API Key
- Αν μόλις εκδόθηκε ένα νέο key (πρώτη σύνδεση ή μετά από rotation), η κάρτα εμφανίζει έναν διακόπτη Reveal API key. Κάντε κλικ για να εμφανιστεί ολόκληρο το key — αντιγράψτε το τώρα, δεν μπορείτε να το δείτε ξανά.
- Μετά το βήμα reveal, εμφανίζεται μόνο μια μασκαρισμένη προεπισκόπηση (τα πρώτα 8 χαρακτήρες, μετά αποσιωπητικά, μετά τους τελευταίους 4).
- Το Rotate API key εκδίδει ένα νέο key και ανακαλεί το τρέχον αμέσως. Οποιοσδήποτε client εξακολουθεί να χρησιμοποιεί το παλιό key θα αρχίσει να λαμβάνει
401αμέσως — συντονίστε την περιστροφή με το deploy της ενσωμάτωσής σας.
3. Webhook URL
- Εμφανίζει το τρέχον ρυθμισμένο URL, ή «No webhook URL configured» αν δεν έχετε ορίσει ακόμη κάποιο.
- Η φόρμα δέχεται οποιοδήποτε HTTPS URL. Με την υποβολή του:
- Δημιουργεί τη συνδρομή webhook κατά την πρώτη ρύθμιση, ή
- Ενημερώνει το URL στην υπάρχουσα συνδρομή αν έχετε ήδη μία.
- Η κατάσταση του webhook επαναφέρεται σε
pendingμέχρι το AWS EventBridge να επαληθεύσει ξανά το νέο endpoint. Κατά την επαλήθευση, το EventBridge θα κάνει POST μια πρόκληση επαλήθευσης (verification challenge) — το endpoint σας πρέπει να απαντήσει με2xx.
Τι συμβαίνει στο παρασκήνιο
- Η σύνδεση γίνεται με OIDC έναντι του Auth0. Το portal αποθηκεύει ένα υπογεγραμμένο session cookie· δεν υπάρχει framework στην πλευρά του client.
- Η δημιουργία tenant και API key, η εμφάνιση λίστας και η περιστροφή γίνονται μέσω proxy προς το Admin API (
POST /api-keys, κ.λπ.) με χρήση ενός διαπιστευτηρίου service-to-service — οι εταίροι δεν βλέπουν ποτέ το admin token. - Η ρύθμιση ενός webhook URL περνά μέσα από το partner self-service endpoint:
- Πρώτη ρύθμιση →
POST /tenants/:orgId/webhooks(admin path, καλείται από το portal εκ μέρους του εταίρου) - Επόμενες ενημερώσεις →
PATCH /webhooks/:webhookIdμε το δικό τουX-API-Keyτου εταίρου
- Πρώτη ρύθμιση →
Το ίδιο endpoint PATCH /webhooks/:webhookId είναι επίσης διαθέσιμο απευθείας σε εταίρους που προτιμούν να το αυτοματοποιήσουν. Δείτε Ενημέρωση Webhook URL μέσω API.
Σημειώσεις ασφάλειας
- Όλες οι ενέργειες που υποβάλλονται από τον πίνακα ελέγχου περιλαμβάνουν ένα CSRF token· το portal απορρίπτει POST που δεν το φέρουν.
- Η αποσύνδεση είναι ένα
POST /logout(επίσης προστατευμένο με CSRF) που καθαρίζει το session cookie. - Το portal επικυρώνει τη runtime ρύθμιση που εισάγεται από το Doppler σε κάθε αίτημα· τα λανθασμένα ρυθμισμένα περιβάλλοντα αποτυγχάνουν θορυβωδώς αντί να παράγουν σιωπηλά χαλασμένες ανακατευθύνσεις auth.
Αντιμετώπιση προβλημάτων
| Σύμπτωμα | Πιθανή αιτία | Λύση |
|---|---|---|
| «No active key» στον πίνακα ελέγχου | Το προηγούμενο key σας ανακλήθηκε αλλά δεν εκδόθηκε νέο (σπάνιο) | Κάντε κλικ στο Rotate API key για να εκδώσετε ένα νέο |
Το webhook παραμένει σε pending | Το EventBridge δεν έχει λάβει 2xx από το αίτημα επαλήθευσης | Ελέγξτε τα logs του endpoint σας για το POST επαλήθευσης και επιβεβαιώστε ότι επιστρέφει 2xx |
| Βρόχος σύνδεσης / άμεση αποσύνδεση | Παλιό ή μη έγκυρο session cookie | Καθαρίστε τα cookies για το domain του portal και συνδεθείτε ξανά |
Σχετικά
- Onboarding Εταίρων — Onboarding με καθοδήγηση διαχειριστή (χωρίς πρόσβαση στο portal)
- Partner Webhooks — Πλήρης ρύθμιση webhook, παράδοση και συμπεριφορά επανάληψης (retry)
- Event Catalog — Αναφορά για τα events που θα λαμβάνετε μόλις οριστεί το URL σας