GH GambleHub

Αμμοκιβώτια και περιβάλλοντα δοκιμών

TL· DR

Ανθεκτικό αμμοκιβώτιο = πλήρης απομόνωση, συνθετικά/απρόσωπα δεδομένα, ρεαλιστικοί προσομοιωτές εξωτερικών συστημάτων, προβλέψιμες πλευρές και χρονοδιαδρόμηση, ενσωματωμένη ταυτότητα και webhooks, διαφανή όρια και μετρήσεις. Τρόφιμα - εκτός εμβέλειας, κλειδιά - σκάψιμο, προώθηση - μόνο σε καταλόγους ελέγχου.


1) Περιβαλλοντικός χάρτης και οι ρόλοι τους

ΠεριβάλλονΣκοπόςΠρόσβασηΔεδομέναΑξιοπιστία
Τοπικό/DevΤαχεία ανάπτυξηΜηχανικοίΣυνθετικά/Ελάχιστα μυθιστορήματαΧαμηλή
CI/ΔοκιμήΔοκιμές μονάδας/ολοκλήρωσης/σύμβασηςCI/CDΑυτοσιδήρεςΜέσος όρος
Στάδιο/Προ-πρόδρομοςΤελική συναρμολόγηση, παλινδρόμησηΠεριορισμένηΑνώνυμα στιγμιότυπαΥψηλή
Δημόσια SandboxΕξωτερικοί εταίροι/έμποροιΠύλη + όριαΜόνο συνθετικάΜέσος όρος
ProdΚαταπολέμησηSSO/Αυστηρή πρόσβασηΠραγματικόΤο πολύ

Κανόνας: sandbox-prod. Οποιαδήποτε σύνδεση - μέσω μονόδρομων προσομοιωτών χωρίς πρόσβαση σε πραγματικά μέσα/παιχνίδια/προσωπικά δεδομένα.


2) Στοιχεία: συνθετικά, ανωνυμοποίηση, συνεδρίαση

Προκαθορισμένα συνθετικά. Γεννήτριες δεδομένων διαβατηρίου/κάρτας, έγκυρες αλλά μη χρηματοοικονομικές PAN (test BIN), ζωντανές μορφές τιμών και υπολοίπων.
Ανωνυμοποίηση για το στάδιο: μαρκινοποίηση αναγνωριστικών, διαφορική ιδιωτικότητα για συγκεντρωτικά στοιχεία, αφαίρεση σπάνιων συνδυασμών.
Σιντς και ντετερμινισμός: μία ομάδα - μία πολιτεία.

bash make db-reset && make db-seed ENV=sandbox SEED=2025_11_03

Χρονικό ταξίδι: συνολική «ώρα» του περιβάλλοντος για τις δοκιμές προθεσμίας/λήξης.


3) Προσομοιωτές και βύσματα (αποκόμματα)

Πληρωμές/Τράπεζες/ΠΥΠ

Auth/Capture/Refund/Payout со сценариями: 'εγκεκριμένο', 'αρνητικό _ ανεπαρκές', '3ds _ requirement', 'timeout', 'αντίγραφο'.
PSP webhooks: Υπογραφή HMAC, retrai, καθυστερήσεις και «βρώμικο διαδίκτυο».

KYC/AML/Κυρώσεις

: 'clear', 'pep _ match', 'sanction _ hit', 'doc _ mismatch', 'manual _ review'.
Υποστήριξη της ιδιαιτερότητας και των ορίων των ποσοστών, όπως στην περίπτωση του προτύπου.

Πάροχοι/Κατάλογος παιχνιδιών

Λόμπι, χαρακτηριστικό, RTP/γύροι - ψευδο-τυχαία παραγωγή, ελεγχόμενες «πληρωμές/αποτυχίες» για περιπτώσεις UX.

Επιλογή: διακόπτης «σοβαρότητας» προσομοιωτή (happy-path vs haos).


4) Webhooks in the sandbox

Υπογραφές HMAC (v1), κεφαλίδες 'X-Event-Id', 'X-Timestamp', παράθυρο ≤ 5 λεπτά.
Retrays με εκθετική backoff, DLQ και replay.
Κονσόλα «resend» και αρχεία καταγραφής των προσπαθειών.

Ψευδοψύξη:
pseudo
POST /psp/webhooks
Headers: X-Signature, X-Timestamp, X-Event-Id
Body: { event_id, type, data, attempt }

5) Ταυτότητα και προσδιορισμός

Όλες οι μεταλλάξεις δέχονται το «Idempotency-Key».
Οι προσομοιωτές αποθηκεύουν το αποτέλεσμα με κλειδιά (TTL 24-72 h).
«Προσδιορισμός σπόρων»: με την ίδια εισροή - το ίδιο αποτέλεσμα (για επαναλαμβανόμενες δοκιμές).


6) Ασφάλεια και πρόσβαση

απομόνωση δικτύου/VPC, μεμονωμένα μυστικά και πεδία ('sandbox. παράδειγμα. com ').
RBAC/ABAC: οι ρόλοι «εταίρος», «qa», «dev», ospreys των μαρκών είναι ελάχιστοι.
Όρια συντελεστών και ποσοστώσεις: δίκαιο μερίδιο ανά ενοικιαστή/κλειδί, κατανοητό «429 »/« Retry-After».
Μυστικά μόνο σε KMS/θησαυροφυλάκιο. τακτική εναλλαγή.
Απαγόρευση πραγματικών πληρωμών σε επίπεδο κωδικών/ρυθμίσεων (hard block feature-flag).


7) Πύλη API και παρατηρησιμότητα στην άμμο

Οι ίδιες πολιτικές: OAuth2/OIDC/JWT, CORS, WAF, προφίλ DDoS.
Μετρήσεις: p50/p95/p99, 4xx/5xx, όρια hit-rate, latency webhooks, idempotent hits.
Καταγραφές/μονοπάτια: δεν υπάρχει PII. συσχέτιση «trace _ id».
Ταμπλό «Sandbox Health»: uptime, ουρές webhook, σφάλματα προσομοιωτών.


8) Σημαίες, εκδόσεις και συμβατότητα

Συμπερίληψη χαρακτηριστικών στο αμμοκιβώτιο → στάδιο → prod.
SemVer για API· Αφαίρεση/πανό ηλιοβασίλεμα σε Swagger/Redoc sandboxes.
Συνεχιζόμενες ερωτήσεις για καταστήματα GraphQL (εάν υπάρχουν).


9) CI/CD - προώθηση

1. Κατασκευή/Μονάδα →

2. Δοκιμές σύμβασης/Mock (OpenAPI/Protobuf/GraphQL SDL) →

3. Ενσωμάτωση εναντίον προσομοιωτών →

4. Παλινδρόμηση σταδίου (anon. στιγμιότυπα) →

5. Canary в prod.

Προώθηση καταλόγου πυλών: παρακάτω στο § 12.


10) Σενάρια UAT για συνεργάτες (sandboxed)

Πληρωμές: auth/capture/refund/payout με webhooks και σφάλματα PSP.
KYC/AML: όλες οι καταστάσεις + χειροκίνητη κλιμάκωση.
Idempotency: το επαναλαμβανόμενο 'Idempotency-Key' → το ίδιο αποτέλεσμα.
Όριο ταχύτητας: Ορθός χειρισμός του '429'.
Χρονικά παράθυρα: λήξη των μαρκών, 'Retry-After', χρονικά ταξίδια.
Webhooks: υπογραφές/retrays/DLQ, χειροκίνητη αναπαραγωγή και dedup.


11) Πολιτική δεδομένων και προστασία της ιδιωτικής ζωής

Ποτέ μην αποθηκεύετε πραγματικές αποβάθρες PAN/KYC σε αμμοκιβώτιο/στάδιο.
Ανωνυμοποίηση: κάλυψη, αφαίρεση άμεσων αναγνωριστικών στοιχείων, συνθετική συσχέτιση.
TTL αποθήκευση κορμών και σωμάτων webhook ≤ ρουτίνα.


12) Κατάλογοι ελέγχου

12. 1 Εκτόξευση νέου αμμοκιβωτίου

  • Απομονωμένο δίκτυο/βάση/μνήμη/αποθήκευση αντικειμένων
  • Μυστικά που δημιουργήθηκαν στο KMS/Vault, πρόσβαση ανά ρόλο
  • Οι προσομοιωτές PSP/KYC/παιχνιδιών γράφονται και εκδίδονται
  • Συλλογή Swagger/Redoc + Postman (τελικά σημεία άμμου)
  • Webhooks: HMAC, retry, DLQ, κονσόλα αναπαραγωγής
  • Προφίλ ποσοστώσεων/ποσοστώσεων, Διαφήμιση/πανό ηλιοβασιλέματος (εάν υπάρχουν)
  • Πίνακες και προειδοποιήσεις (καθυστέρηση, 5xx, 429, DLQ)

12. 2 Απελευθέρωση προώθησης (stage→prod)

  • Έλεγχοι ανάθεσης συμβάσεων (χωρίς διακοπή)
  • Φορτίο p95/p99 κανονικό στο στάδιο
  • Webhooks υποβλήθηκε UAT, idempotency ok
  • Έχουν ετοιμαστεί σημαίες, υπάρχει ένα σχέδιο ανατροπής
  • Changelog, οδηγός μετανάστευσης και αποστολή μηνυμάτων στους εταίρους

13) Αντιπατερίδια

Ένα αμμώδες κουτί που «κρυφά» αγγίζει υπηρεσίες/βάσεις δεδομένων.
Δεδομένα πραγματικής κάρτας/διαβατηρίου σε στάδιο/αμμουδιά.
Οι προσομοιωτές χωρίς webhooks/retreats είναι μόνο ένα «χαρούμενο μονοπάτι».
Καμία ταυτότητα → διπλή πληρωμή/στοιχήματα.
Ένα κοινό μυστικό HMAC για όλους τους εταίρους.
Δεν υπάρχουν όρια ή διαφανείς 429/Retry-After.


14) Mini snippets

.env. αμμοκιβώτιο (παράδειγμα)

dotenv
API_BASE=https://sandbox.api.example.com
OAUTH_ISS=https://sandbox.idp.example.com
PSP_SIM_URL=https://sandbox.psp-sim.example.com
KYC_SIM_URL=https://sandbox.kyc-sim.example.com
WEBHOOK_SECRET_ROTATION_DAYS=90
FEATURE_FORCE_SANDBOX_PAYMENTS=1

Τμήμα OpenAPI (εξυπηρετητής sandbox)

yaml servers:
- url: https://sandbox.api.example.com/v1 description: Public Sandbox

Idempotency pseudocode (ψευδοκώδικας)

pseudo if store.exists(idem_key): return store.get(idem_key)
res = do_business()
store.set(idem_key, res, ttl=72h)
return res

Ενεργοποιητές προσομοιωτή PSP

json
{ "scenario": "payout", "case": "declined_insufficient", "payout_id": "p_123" }

15) Παρατηρησιμότητα αμμοκιβωτίου και SLO

Uptime sandbox API ≥ 99. 5% (η έκθεση ενσωμάτωσης δεν πρέπει να μειωθεί).
Webhooks p95 ≤ 3 s έως 2xx υπό κανονικό φορτίο.
Σφάλμα προϋπολογισμού 5xx πύλης ≤ 0. 1%.
Η πύλη σύνδεσης είναι διαθέσιμη και συγχρονίζεται με το συμβόλαιο.


16) Διακυβέρνηση

Ιδιοκτήτης περιβάλλοντος (SRE/πλατφόρμα) και διαχειριστής API (συμβάσεις).
Διαδικασία RFC για την παραβίαση αλλαγών, ημερολόγιο αποσύνθεσης/ηλιοβασιλέματος.
Χωριστά όρια/ποσοστώσεις και τιμολόγηση «δίκαιης χρήσης» για την άμμο.


Επανάληψη σύνοψης

Το αμμοκιβώτιο είναι προϊόν για τους προγραμματιστές και όχι "αντίγραφο της βάσης. "Δώστε: αυστηρή απομόνωση, συνθετικά δεδομένα, πλήρεις προσομοιωτές με webhooks και retras, προσδιορισμός μέσω πλευρών και χρονοταξιδιού, σημαίες και διαφανή όρια. Συνδέστε τα πάντα με τις συμβάσεις, την παρατηρησιμότητα και τη διακυβέρνηση - και η ολοκλήρωσή σας θα γίνει γρήγορη, ασφαλής και προβλέψιμη, και απελευθερώνει ανώδυνες.

Contact

Επικοινωνήστε μαζί μας

Επικοινωνήστε για οποιαδήποτε βοήθεια ή πληροφορία.Είμαστε πάντα στη διάθεσή σας.

Έναρξη ολοκλήρωσης

Το Email είναι υποχρεωτικό. Telegram ή WhatsApp — προαιρετικά.

Το όνομά σας προαιρετικό
Email προαιρετικό
Θέμα προαιρετικό
Μήνυμα προαιρετικό
Telegram προαιρετικό
@
Αν εισαγάγετε Telegram — θα απαντήσουμε και εκεί.
WhatsApp προαιρετικό
Μορφή: κωδικός χώρας + αριθμός (π.χ. +30XXXXXXXXX).

Πατώντας «Αποστολή» συμφωνείτε με την επεξεργασία δεδομένων.