Remove platform tenancy from SXCHNGE customer BFF (#34)

This commit is contained in:
Stephan D committed 2026-09-12 14:00:14 +02:00
1 parent 7062672a87
commit 981e84a4b4
244 files changed
+651 -17130

No files matched your search

+5 -102
View File
@@ -1,108 +1,11 @@
package mservice
import "git.sendico.io/tech/sxchnge/bff/pkg/merrors"
type Type = string
const (
Accounts Type = "accounts" // Represents user accounts in the system
Verification Type = "verification" // Represents verification code flows
Amplitude Type = "amplitude" // Represents analytics integration with Amplitude
Discovery Type = "discovery" // Represents service discovery registry
Site Type = "site" // Represents public site endpoints
Changes Type = "changes" // Tracks changes made to resources
Clients Type = "clients" // Represents client information
ChainGateway Type = "chain_gateway" // Represents chain gateway microservice
MntxGateway Type = "mcards_gateway" // Represents Monetix gateway microservice
AuroraGateway Type = "aurora_gateway" // Represents Aurora card gateway microservice
AsterBankGateway Type = "asterbank_gateway" // Represents AsterBank local/dev bank payout emulator
MBankGateway Type = "mbank_gateway" // Represents mBank real-money bank payout gateway
PaymentGateway Type = "payment_gateway" // Represents payment gateway microservice
FXOracle Type = "fx_oracle" // Represents FX oracle microservice
FXIngestor Type = "fx_ingestor" // Represents FX ingestor microservice
Treasury Type = "treasury" // Represents Treasury microservice
OrgMoneyFlowStats Type = "org_money_flow_stats" // Represents organization money flow statistics
FeePlans Type = "fee_plans" // Represents fee plans microservice
BillingDocuments Type = "billing_documents" // Represents billing documents microservice
BillingFees Type = "billing_fees" // Represents billing fees microservice
AMLSources Type = "aml_sources" // Represents Backoffice AML data-source management
CardBlacklist Type = "card_blacklist" // Represents backoffice card-blacklist management
ComplianceAML Type = "compliance_aml" // Represents AML screening microservice
ComplianceKYC Type = "compliance_kyc" // Represents KYC verification microservice
CompliancePolicy Type = "compliance_policy" // Represents policy enforcement microservice
ComplianceAssessment Type = "compliance_assessment" // Represents durable compliance assessment coordination
CardBlacklistIngestor Type = "card_blacklist_ingestor" // Represents automated card-blacklist ingestion
Limits Type = "limits" // Represents limit reservation and usage enforcement microservice
FilterProjects Type = "filter_projects" // Represents comments on tasks or other resources
Invitations Type = "invitations" // Represents invitations sent to users
Invoices Type = "invoices" // Represents invoices
Logo Type = "logo" // Represents logos for organizations or projects
Ledger Type = "ledger" // Represents ledger microservice
LedgerAccounts Type = "ledger_accounts" // Represents ledger accounts microservice
// LedgerBalances and LedgerEntries gate the resources derived from an
// organization-owned ledger account. The edge Ledger API authorizes them in
// two steps: the account must be visible to the caller (see edge/product
// internal/ledgervisibility), and reading its balance or journal entries
// then requires the matching permission below. Owners of a personal account
// are exempt from the second step.
LedgerBalances Type = "ledger_balances" // Represents ledger account balances microservice
LedgerEntries Type = "ledger_journal_entries" // Represents ledger journal entries microservice
LedgerOutbox Type = "ledger_outbox" // Represents ledger outbox microservice
LedgerParties Type = "ledger_parties" // Represents ledger account owner parties microservice
LedgerPlines Type = "ledger_posting_lines" // Represents ledger journal posting lines microservice
PaymentOrchestrator Type = "payment_orchestrator" // Represents payment orchestration microservice
PaymentQuotation Type = "payment_quotation" // Represents payment quotation microservice
InboundDepositProcessor Type = "crypto_deposits" // Represents inbound crypto deposit processing microservice
ReceivingRoutes Type = "receiving_routes" // Represents inbound receiving route resolution
ChainAssets Type = "chain_assets" // Represents managed chain assets
ChainWallets Type = "chain_wallets" // Represents managed chain wallets
ChainWalletBalances Type = "chain_wallet_balances" // Represents managed chain wallet balances
ChainTransfers Type = "chain_transfers" // Represents chain transfers
ChainDeposits Type = "chain_deposits" // Represents chain deposits
Callbacks Type = "callbacks" // Represents webhook callback subscriptions
ChSettle Type = "chsettle_gateway" // Represents chimera settlement gateway
Notifications Type = "notifications" // Represents notifications sent to users
Organizations Type = "organizations" // Represents organizations in the system
Payments Type = "payments" // Represents payments service
Transactions Type = "transactions" // Represents transaction reporting and investigations
PaymentRoutes Type = "payment_routes" // Represents payment routing definitions
PaymentMethods Type = "payment_methods" // Represents payment methods service
Permissions Type = "permissions" // Represents permissiosns service
Policies Type = "policies" // Represents access control policies
PolicyAssignements Type = "policy_assignments" // Represents policy assignments database
Recipients Type = "recipients" // Represents payment recipients
OrgRecipients Type = "org_recipients" // Represents organization-scoped shared recipients (policy resource type)
RefreshTokens Type = "refresh_tokens" // Represents refresh tokens for authentication
Roles Type = "roles" // Represents roles in access control
SignupProvisioning Type = "signup_provisioning" // Represents in-flight signup provisioning records
Storage Type = "storage" // Represents statuses of tasks or projects
TgSettle Type = "tgsettle_gateway" // Represents tg settlement gateway
TronGateway Type = "tron_gateway" // Represents tron gateway microservice
Tenants Type = "tenants" // Represents tenants managed in the system
VerificationTokens Type = "verification_tokens" //Represents verification tokens managed in the system
Wallets Type = "wallets" // Represents workflows for tasks or projects
WalletProvisioning Type = "wallet_provisioning" // Represents durable wallet and receiving-route provisioning state
WalletRoutes Type = "wallet_routes" // Represents authoritative chain wallet gateway routing
RotatedWallets Type = "rotated_wallets" // Represents backoffice rotated-wallet review and disposition access
Workflows Type = "workflows" // Represents workflows for tasks or projects
Accounts Type = "accounts" // Represents user accounts in the system
Site Type = "site" // Represents public site endpoints
Clients Type = "clients" // Represents client information
RefreshTokens Type = "refresh_tokens" // Represents refresh tokens for authentication
VerificationTokens Type = "verification_tokens" //Represents verification tokens managed in the system
)
const (
DocumentsReport Type = "documents_report" // Represents employee closing reports
DocumentsPayout Type = "documents_payout" // Represents report-bound RUB payout rows
DocumentsPayoutAttempt Type = "documents_payout_attempt" // Represents immutable payout execution attempts
DocumentsPayoutBatch Type = "documents_payout_batch" // Represents imported payout batches
)
func StringToSType(s string) (Type, error) {
switch s {
case Accounts, Verification, Amplitude, Site, Changes, Clients, ChainGateway, ChainWallets, WalletProvisioning, WalletRoutes, ChainWalletBalances,
ChainTransfers, ChainDeposits, Callbacks, MntxGateway, AuroraGateway, AsterBankGateway, MBankGateway, PaymentGateway, FXOracle, FXIngestor, Treasury, OrgMoneyFlowStats, FeePlans, BillingDocuments, DocumentsReport, DocumentsPayout, DocumentsPayoutAttempt, DocumentsPayoutBatch, BillingFees, AMLSources, CardBlacklist, ComplianceAML, ComplianceKYC, CompliancePolicy, ComplianceAssessment, CardBlacklistIngestor, Limits, FilterProjects, Invitations, Invoices, Logo, Ledger,
LedgerAccounts, LedgerBalances, LedgerEntries, LedgerOutbox, LedgerParties, LedgerPlines, Notifications,
Organizations, Payments, Transactions, PaymentRoutes, PaymentOrchestrator, InboundDepositProcessor, ReceivingRoutes, PaymentMethods, Permissions, Policies, PolicyAssignements,
Recipients, RefreshTokens, Roles, SignupProvisioning, Storage, Tenants, Workflows, Discovery, ChSettle, TgSettle, TronGateway, RotatedWallets:
return s, nil
default:
return "", merrors.InvalidArgument("invalid service type", s)
}
}
-40
View File
@@ -1,40 +0,0 @@
package mservice
import "testing"
func TestAMLSourcesResourceTypeIsRecognized(t *testing.T) {
got, err := StringToSType(AMLSources)
if err != nil {
t.Fatalf("AMLSources resource type was rejected: %v", err)
}
if got != AMLSources {
t.Fatalf("AMLSources resource type mismatch: got=%q want=%q", got, AMLSources)
}
}
func TestCardBlacklistIngestorServiceTypeIsRecognized(t *testing.T) {
got, err := StringToSType(CardBlacklistIngestor)
if err != nil {
t.Fatalf("card blacklist ingestor service type was rejected: %v", err)
}
if got != CardBlacklistIngestor {
t.Fatalf("card blacklist ingestor service type mismatch: got=%q want=%q", got, CardBlacklistIngestor)
}
}
func TestDocumentsCRUDResourceTypesAreRecognized(t *testing.T) {
for _, resource := range []Type{
DocumentsReport,
DocumentsPayout,
DocumentsPayoutAttempt,
DocumentsPayoutBatch,
} {
got, err := StringToSType(resource)
if err != nil {
t.Fatalf("documents resource type %q was rejected: %v", resource, err)
}
if got != resource {
t.Fatalf("documents resource type mismatch: got=%q want=%q", got, resource)
}
}
}