- Create k8s/staging/backoffice-deployment.yaml with env vars:
GW_URL=https://cms.se.kbs1.ir (injected into appsettings at startup)
BLAZOR_ENVIRONMENT=Staging
- Update CI/CD to apply K8s manifests on deploy (like CMS does)
- This makes configuration persistent across CI/CD deployments
appsettings*.json files were cached by the service worker, causing
stale GwUrl (cms.kbs1.ir) to persist in the browser even after the
server files were updated. Now appsettings files are always fetched
fresh from the server, where the entrypoint injects the correct GW_URL.
AppTokenProvider now checks token expiry before returning it.
Expired tokens are removed from localStorage and not sent.
This fixes 401 errors on anonymous endpoints (login/OTP) caused by
the gRPC channel attaching an old expired Bearer token to every request.
CMS validates the token even on unauthenticated endpoints and rejects
expired ones with 401.
The blazor-environment header is stripped by the Blazor WASM service
worker cache, causing Blazor to fall back to Production environment
and load appsettings.Production.json (GwUrl=https://cms.kbs1.ir).
Fix: use sed in docker-entrypoint.sh to replace GwUrl in ALL
appsettings*.json files at container startup with the GW_URL env var.
Default GW_URL=https://cms.se.kbs1.ir for staging deployment.
BackOffice WASM app defaulted to Production environment because
nginx didn't set the blazor-environment response header. This caused
the app to load appsettings.Production.json (GwUrl=https://cms.kbs1.ir)
instead of appsettings.Staging.json (GwUrl=https://cms.se.kbs1.ir),
resulting in 401 gRPC errors on the login page.
- Add docker-entrypoint.sh that generates nginx config with blazor-environment header
- Default BLAZOR_ENVIRONMENT=Staging (configurable via K8s env var)
- This ensures the WASM app loads the correct staging configuration
- NuGet.config: nuget.org for standard packages, local nupkg for proto
- Dockerfile: COPY nupkg/ before restore
- CI: build proto from CMS source before Docker build
- Remove manual amount input field
- Add package selector dropdown (shows name + price)
- Pre-select base package, show price in alert
- Validate package selection before submit
- Send package_id to CMS, proto NuGet 0.0.192
- WithdrawalRequests: اضافه شدن PackageName به مدل و CSV
- ManualPayments: اضافه شدن ستون پکیج به CSV
- ConfigureService: اصلاح using و DI برای UserWalletHistory
- WalletManagementPage: اصلاح تمام رفرنسهای UserWalletChangeLog
- NuGet: v0.0.189
F2: ChangeNetworkParent UI
- Add ChangeParentDialog with parent ID, leg, reason fields
- Add 'تغییر والد' button to UserNetworkInfo operations
T4.13: PackageFeature checkbox matrix
- Update NuGet to v0.0.188
- Add ClubFeature checkbox list to CreateDialog and UpdateDialog
- Load features via ConfigClient.GetClubFeaturesAsync
- Sync selected FeatureIds to proto request on save
- جایگزینی MudNumericField پکیج با MudSelect dropdown (لود از سرور)
- حذف فیلد مدت زمان (DurationMonths) — عضویت باشگاه زمانی نیست
- ارسال ForceActivation=true در request (bypass order validation)
- اضافه کردن PackageContract client injection
- Proto NuGet بروزرسانی به 0.0.184
- ActivateClubDialog: replaced numeric UserId input with UserAutoComplete
- ClubMembers: added UserAutoComplete filter in toolbar, wired to proto user_id
- WalletManagementPage: display user name + ID instead of just UserId
- Updated proto NuGet to 0.0.183 (user_name field)
- DiscountProductsAutoComplete: new autocomplete component for discount
products with search/debounce (mirrors ProductsAutoComplete pattern)
- AddStockDialog: replace manual product ID input with smart autocomplete
- When 'regular product' selected → shows ProductsAutoComplete
- When 'discount product' selected → shows DiscountProductsAutoComplete
- Admin never has to type product IDs manually
- Product type selector controls which autocomplete is shown
- Validates product selection before submit
- Changed Protobuf imports from BackOffice.BFF to CMSMicroservice for User, UserAddress, UserOrder, UserRole components and services.
- Updated appsettings for direct connection to CMS, removing BFF references.
- Adjusted logic in services to accommodate new Protobuf structure and fields.
- Moved documentation to totalDoc directory.
- Dockerfile: استفاده از Nexus Docker (194.5.195.53:32082)
- NuGet.config: استفاده از Nexus NuGet با HTTP و allowInsecureConnections
- workflow: حذف kubectl dependency، اضافه کردن 32082 به insecure-registries