Implementacja architektury multi-tenancy [PHP] + integracja ze sklepem

Zleceniodawca
H_kari
H_kari
Opis

Posiadam aplikację opartą na pliku config i własnej bazie danych, służącą do kompletowania towaru i sortowania zamówień. Celem jest udostępnienie jej w „sklepie”, gdzie sklep wysyła webhooki, a my instalujemy instancję. Zakres prac:

1) Modyfikacje aplikacji

Tabela tenant(id PK, client_id UNIQUE, api_license, api_url, api_key_enc, created_at).

Dodanie tenant_id (FK) we wszystkich tabelach z danymi + indeksy (tenant_id, …) w krytycznych tabelach.

W kodzie każde zapytanie zawsze filtrować po tenant_id; API używa odszyfrowanego klucza (Middleware ResolveTenant odczytuje token/JWT, ustawia request.tenant_id).

Usunąć statyczny .config; korzystać wyłącznie ze zmiennych środowiskowych:

DB_CONNECTION_STRING

APPLICATION_KEY (z panelu Apps)

DEVELOPER_LOGIN

Klucz API przychodzi zaszyfrowany w webhooku i jest zapisywany w tenant.api_key_enc.

2) Integracja ze sklepem

Instalacja: po zakupie aplikacji sklep wyśle webhook POST z:

client_id (ID sklepu)

application_id

api_license

(online) api_key i auth_type (key lub OAuth)

→ traktujemy jako żądanie utworzenia instancji, po zakończeniu zwracamy potwierdzenie webhookiem.

Dezaktywacja licencji – analogiczny webhook.

Autologin: po kliknięciu w panelu sklep wysyła webhook z prośbą o redirect + token; odpowiadamy adresem HTTPS + jednorazowym tokenem, klient trafia do UI zalogowany jako dany tenant.

Podpisy (obustronne, data w UTC):

$sign = hash(

'sha256',

$developerLogin.'|'.date('Y-m-d').'|'.$applicationKey

);

Plan działania

-Odbiór applicationKey i URL-i webhooków z panelu sklepu.

-Implementacja endpointów: nowa licencja, usunięcie licencji, autologin + generowanie i weryfikacja podpisów SHA-256.

-Deszyfrowanie api_key.

-Obsługa trial/pełnych aktywacji i dezaktywacji.

-Po instalacji wysłanie potwierdzenia zakończenia procesu.

Posiadam dokumentację i App tester, by na bieżąco weryfikować działanie.

Oczekiwany efekt

Aplikacja w pełni multitenantowa, gotowa do publikacji w sklepie (App tester nie zgłasza błędów; „Open in panel” loguje w UI pod właściwym tenantem)

Opublikowano
2025-07-03
Prawa autorskie
Przeniesienie praw autorskich
Umiejętności

Wysłane oferty (10)

no avatar
GMD
0 umów
2025-07-03
android
API
aplikacje mobilne
+ 52 więcej
Budżet
Do negocjacji
Prawa autorskie
Przeniesienie praw autorskich
Ważne przez
30 dni

Najnowsze zlecenia z kategorii