All checks were successful
BCards Multi-Tenant Deployment Pipeline / Run Tests (push) Successful in 10s
BCards Multi-Tenant Deployment Pipeline / PR Validation (push) Has been skipped
BCards Multi-Tenant Deployment Pipeline / Run Tests (pull_request) Successful in 5s
BCards Multi-Tenant Deployment Pipeline / PR Validation (pull_request) Successful in 1s
BCards Multi-Tenant Deployment Pipeline / Build and Push Image (push) Successful in 9m22s
BCards Multi-Tenant Deployment Pipeline / Build and Push Image (pull_request) Has been skipped
BCards Multi-Tenant Deployment Pipeline / Deploy bcards.site (pull_request) Has been skipped
BCards Multi-Tenant Deployment Pipeline / Deploy spicylinks.site (pull_request) Has been skipped
BCards Multi-Tenant Deployment Pipeline / Deploy luslinks.site (pull_request) Has been skipped
BCards Multi-Tenant Deployment Pipeline / Deploy to Release Swarm (ARM) (pull_request) Has been skipped
BCards Multi-Tenant Deployment Pipeline / Cleanup Old Resources (pull_request) Has been skipped
BCards Multi-Tenant Deployment Pipeline / Deploy bcards.site (push) Has been skipped
BCards Multi-Tenant Deployment Pipeline / Deploy spicylinks.site (push) Has been skipped
BCards Multi-Tenant Deployment Pipeline / Deploy luslinks.site (push) Has been skipped
BCards Multi-Tenant Deployment Pipeline / Deployment Summary (pull_request) Successful in 0s
BCards Multi-Tenant Deployment Pipeline / Deploy to Release Swarm (ARM) (push) Successful in 2m11s
BCards Multi-Tenant Deployment Pipeline / Cleanup Old Resources (push) Has been skipped
BCards Multi-Tenant Deployment Pipeline / Deployment Summary (push) Successful in 1s
49 lines
2.7 KiB
Markdown
49 lines
2.7 KiB
Markdown
# Napkin Runbook
|
|
|
|
## Curation Rules
|
|
- Re-prioritize on every read.
|
|
- Keep recurring, high-value notes only.
|
|
- Max 10 items per category.
|
|
- Each item includes date + "Do instead".
|
|
|
|
## Execution & Validation (Highest Priority)
|
|
1. **[2026-03-20] Use clean-build.sh after VS 2022 updates**
|
|
Do instead: run `./clean-build.sh` before debugging OAuth or NuGet issues.
|
|
|
|
2. **[2026-03-20] Google OAuth fails in Edge browser**
|
|
Do instead: test OAuth in Vivaldi or Chrome; clear browser data for localhost:49178.
|
|
|
|
## Razor View Editing
|
|
1. **[2026-03-20] replace_all corrupts @inject namespace if brand name appears in it**
|
|
Do instead: run replace_all BEFORE adding @inject, or use namespace-specific strings to avoid replacing C# namespace occurrences.
|
|
|
|
## Shell & Command Reliability
|
|
1. **[2026-03-20] Windows environment — use Unix shell syntax**
|
|
Do instead: use forward slashes and bash syntax (not PowerShell) in all shell commands.
|
|
|
|
## Domain Behavior Guardrails
|
|
1. **[2026-03-20] PageStatus enum has explicit numeric values**
|
|
Do instead: always reference by name (e.g., `PageStatus.Creating`), never by magic number. Values: Creating=6, PendingModeration=4, Rejected=5, Active=0, Inactive=3, Expired=1, PendingPayment=2.
|
|
|
|
2. **[2026-03-20] Preview tokens expire in 4 hours**
|
|
Do instead: generate fresh tokens via `POST /Admin/GeneratePreviewToken/{id}` before accessing non-Active pages.
|
|
|
|
3. **[2026-03-20] Non-Active pages require preview token for access**
|
|
Do instead: always append `?preview={token}` when testing Creating/PendingModeration/Rejected pages.
|
|
|
|
4. **[2026-03-20] Plans source of truth is appsettings.json ["Plans"] section**
|
|
Do instead: read plan limits/features from config, not README (README has outdated values). Plans: Trial(free,1p,3l), Basic(R$12.90,3p,8l), Professional(R$25.90,5p,20l,DECOY), Premium(R$29.90,15p,∞l,PDF), PremiumAffiliate(R$34.90,15p,∞l,links produto). Annual variants save 2 months.
|
|
|
|
5. **[2026-03-20] MaxLinks=-1 means unlimited (Premium and PremiumAffiliate)**
|
|
Do instead: check `if (maxLinks == -1) return true;` before comparing counts.
|
|
|
|
6. **[2026-03-20] Subscription model stores plan limits at time of purchase**
|
|
Do instead: read limits from Subscription entity (MaxLinks, AllowCustomThemes etc.), not from current plan config — they may diverge after plan changes.
|
|
|
|
## User Directives
|
|
1. **[2026-03-20] Project targets Brazilian/Spanish markets**
|
|
Do instead: use pt-BR or es as default locale in UI text; keep pricing in BRL (R$).
|
|
|
|
2. **[2026-03-20] appsettings.json contains live credentials committed to git**
|
|
Do instead: be aware that MongoDB, OAuth, SendGrid secrets are in the repo. Never log or expose them further. Do not add more secrets to appsettings.json.
|