mirror of
https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools.git
synced 2026-06-17 23:09:35 +00:00
docs(ops): beta gates checklist, Railway bind, Actions env setup; dependabot dealix; SECURITY policy; verification log
Made-with: Cursor
This commit is contained in:
parent
f79c69ff25
commit
58ee025b45
10
.github/dependabot.yml
vendored
Normal file
10
.github/dependabot.yml
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: pip
|
||||
directory: /dealix
|
||||
schedule:
|
||||
interval: weekly
|
||||
open-pull-requests-limit: 5
|
||||
labels:
|
||||
- dependencies
|
||||
- dealix
|
||||
20
SECURITY.md
Normal file
20
SECURITY.md
Normal file
@ -0,0 +1,20 @@
|
||||
# Security policy
|
||||
|
||||
## Reporting a vulnerability
|
||||
|
||||
Please **do not** open a public GitHub issue for security reports.
|
||||
|
||||
1. Open a **private security advisory** for this repository (GitHub → **Security** → **Advisories** → **Report a vulnerability**), or
|
||||
2. Contact the repository maintainers through a private channel you already use for this project.
|
||||
|
||||
Include:
|
||||
|
||||
- A short description of the issue and affected components (paths or features).
|
||||
- Steps to reproduce (proof-of-concept) if safe to share.
|
||||
- Whether you believe the issue is actively exploitable in production.
|
||||
|
||||
We will aim to acknowledge receipt within a reasonable timeframe and coordinate remediation and disclosure.
|
||||
|
||||
## Secrets
|
||||
|
||||
Never commit real API keys, tokens, `DATABASE_URL`, or Moyasar keys. Use Railway variables and GitHub Actions secrets. See `dealix/docs/SECURITY_SECRET_ROTATION_CHECKLIST.md` if a secret may have been exposed.
|
||||
40
dealix/docs/BETA_PRIVATE_GATES_CHECKLIST.md
Normal file
40
dealix/docs/BETA_PRIVATE_GATES_CHECKLIST.md
Normal file
@ -0,0 +1,40 @@
|
||||
# بوابات إغلاق Paid Private Beta — قائمة مرجعية
|
||||
|
||||
استخدم هذه القائمة قبل أول عميل إنتاج أو إرسال حي. التفاصيل في الملفات المرتبطة.
|
||||
|
||||
## أمن وأسرار
|
||||
|
||||
- [ ] لا مفاتيح في الكود أو المحادثات؛ كل القيم في Railway / GitHub Secrets فقط.
|
||||
- [ ] بعد أي تسريب: [`SECURITY_SECRET_ROTATION_CHECKLIST.md`](SECURITY_SECRET_ROTATION_CHECKLIST.md).
|
||||
- [ ] `API_KEYS` مفعّل على الإنتاج/staging المقفل — [`api/security/api_key.py`](../api/security/api_key.py).
|
||||
|
||||
## تقنية ونشر
|
||||
|
||||
- [ ] فرع النشر `ai-company` (أو السياسة المعتمدة) — [`docs/ops/GITHUB_AI_COMPANY_TRACK.md`](ops/GITHUB_AI_COMPANY_TRACK.md).
|
||||
- [ ] Railway: Root `dealix`، `DATABASE_URL`، `APP_SECRET_KEY`, `APP_URL`, `CORS_ORIGINS` — [`docs/ops/RAILWAY_AI_COMPANY_BIND.md`](ops/RAILWAY_AI_COMPANY_BIND.md).
|
||||
- [ ] `smoke_staging` ناجح — [`LAUNCH_DAY_VERIFICATION_LOG.md`](LAUNCH_DAY_VERIFICATION_LOG.md).
|
||||
|
||||
## قانون وخصوصية (PDPL)
|
||||
|
||||
- [ ] شروط + خصوصية منشورة.
|
||||
- [ ] DPA pilot جاهز أو موقّع — [`DPA_PILOT_TEMPLATE.md`](DPA_PILOT_TEMPLATE.md).
|
||||
- [ ] PDPL: [`SECURITY_PDPL_CHECKLIST.md`](SECURITY_PDPL_CHECKLIST.md)، [`PRIVACY_PDPL_READINESS.md`](PRIVACY_PDPL_READINESS.md)، [`DATA_MAP.md`](DATA_MAP.md).
|
||||
|
||||
## فوترة
|
||||
|
||||
- [ ] Moyasar **sandbox** للبيتا حتى الموافقة على live — [`BILLING_RUNBOOK.md`](BILLING_RUNBOOK.md).
|
||||
- [ ] `MOYASAR_WEBHOOK_SECRET` مضبوط عند تفعيل الويبهوك.
|
||||
|
||||
## واتساب
|
||||
|
||||
- [ ] `WHATSAPP_ALLOW_LIVE_SEND=false` ما لم يُوافَق مع opt-in — [`PRIVATE_BETA_RUNBOOK.md`](PRIVATE_BETA_RUNBOOK.md)، [`WHATSAPP_OPERATOR_FLOW.md`](WHATSAPP_OPERATOR_FLOW.md).
|
||||
|
||||
## تشغيل وتجاري
|
||||
|
||||
- [ ] SOP يومي — [`docs/ops/SOP_REVENUE_ENGINE_DAILY.md`](ops/SOP_REVENUE_ENGINE_DAILY.md).
|
||||
- [ ] إغلاق أول عملاء — [`docs/business/CLOSE_FIRST_CUSTOMERS_14D.md`](business/CLOSE_FIRST_CUSTOMERS_14D.md).
|
||||
|
||||
## GitHub Actions (اختياري لكن موصى به)
|
||||
|
||||
- [ ] أسرار `STAGING_BASE_URL` / `STAGING_API_KEY` — [`docs/ops/GITHUB_ACTIONS_ENV_SETUP.md`](ops/GITHUB_ACTIONS_ENV_SETUP.md).
|
||||
- [ ] لاحقاً `DEALIX_API_BASE` / `DEALIX_API_KEY` لآلة الإيراد اليومية.
|
||||
@ -5,7 +5,9 @@
|
||||
**بعد أي تسريب لمفتاح:** [`SECURITY_SECRET_ROTATION_CHECKLIST.md`](SECURITY_SECRET_ROTATION_CHECKLIST.md).
|
||||
**تسجيل نتائج التشغيل:** [`LAUNCH_DAY_VERIFICATION_LOG.md`](LAUNCH_DAY_VERIFICATION_LOG.md).
|
||||
**SOP يومي للإيراد:** [`ops/SOP_REVENUE_ENGINE_DAILY.md`](ops/SOP_REVENUE_ENGINE_DAILY.md).
|
||||
**تتبع الإطلاق العام:** [`PUBLIC_LAUNCH_GO_NO_GO_TRACKER.md`](PUBLIC_LAUNCH_GO_NO_GO_TRACKER.md).
|
||||
**تتبع الإطلاق العام:** [`PUBLIC_LAUNCH_GO_NO_GO_TRACKER.md`](PUBLIC_LAUNCH_GO_NO_GO_TRACKER.md).
|
||||
**بوابات البيتا (قائمة واحدة):** [`BETA_PRIVATE_GATES_CHECKLIST.md`](BETA_PRIVATE_GATES_CHECKLIST.md).
|
||||
**أسرار Actions:** [`ops/GITHUB_ACTIONS_ENV_SETUP.md`](ops/GITHUB_ACTIONS_ENV_SETUP.md).
|
||||
|
||||
## 0) قبل 24–48 ساعة
|
||||
|
||||
|
||||
@ -6,11 +6,17 @@
|
||||
|
||||
| الخطوة | الأمر | النتيجة | التاريخ |
|
||||
|--------|--------|---------|---------|
|
||||
| compileall | `python -m compileall api auto_client_acquisition integrations db core -q` | OK | 2026-05-01 |
|
||||
| compileall | `python -m compileall api auto_client_acquisition db` | OK | 2026-05-01 |
|
||||
| pytest | `python -m pytest -q --no-cov` | 526 passed, 6 skipped | 2026-05-01 |
|
||||
| print_routes | `python scripts/print_routes.py` | ROUTE_CHECK_OK no duplicate method+path | 2026-05-01 |
|
||||
| smoke_inprocess | `python scripts/smoke_inprocess.py` | SMOKE_INPROCESS_OK | 2026-05-01 |
|
||||
|
||||
## Git / CI (فرع `ai-company`)
|
||||
|
||||
| الخطوة | الإجراء | النتيجة | التاريخ |
|
||||
|--------|---------|---------|---------|
|
||||
| push | فرع `ai-company` مرفوع إلى `origin` مع `dealix/` و`.github/workflows/dealix-*.yml` | OK — راجع Actions **Dealix API CI** على GitHub | 2026-05-01 |
|
||||
|
||||
## Staging (يتطلب `STAGING_BASE_URL`)
|
||||
|
||||
| الخطوة | الأمر | النتيجة | التاريخ |
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
# Private Beta — دليل تشغيل Dealix
|
||||
|
||||
**يوم التدشين (فهرس ساعة بساعة):** [`LAUNCH_DAY_RUNBOOK_AR.md`](LAUNCH_DAY_RUNBOOK_AR.md).
|
||||
**يوم التدشين (فهرس ساعة بساعة):** [`LAUNCH_DAY_RUNBOOK_AR.md`](LAUNCH_DAY_RUNBOOK_AR.md).
|
||||
**قائمة بوابات موحّدة:** [`BETA_PRIVATE_GATES_CHECKLIST.md`](BETA_PRIVATE_GATES_CHECKLIST.md).
|
||||
|
||||
## الجمهور
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
# نشر Staging — Dealix API
|
||||
|
||||
مسار GitHub الموصى لخط «AI Company» والفرع `ai-company`: [`docs/ops/GITHUB_AI_COMPANY_TRACK.md`](ops/GITHUB_AI_COMPANY_TRACK.md).
|
||||
مسار GitHub الموصى لخط «AI Company» والفرع `ai-company`: [`docs/ops/GITHUB_AI_COMPANY_TRACK.md`](ops/GITHUB_AI_COMPANY_TRACK.md).
|
||||
ربط Railway خطوة بخطوة: [`docs/ops/RAILWAY_AI_COMPANY_BIND.md`](ops/RAILWAY_AI_COMPANY_BIND.md).
|
||||
|
||||
## منصة موصى بها
|
||||
|
||||
|
||||
28
dealix/docs/ops/GITHUB_ACTIONS_ENV_SETUP.md
Normal file
28
dealix/docs/ops/GITHUB_ACTIONS_ENV_SETUP.md
Normal file
@ -0,0 +1,28 @@
|
||||
# أسرار GitHub Actions — Dealix
|
||||
|
||||
**المسار في GitHub:** Repository → **Settings** → **Secrets and variables** → **Actions** → **New repository secret**.
|
||||
|
||||
الريبو: [VoXc2/system-prompts-and-models-of-ai-tools](https://github.com/VoXc2/system-prompts-and-models-of-ai-tools/settings/secrets/actions).
|
||||
|
||||
## دخان Staging (يدوي)
|
||||
|
||||
| السر | الوصف |
|
||||
|------|--------|
|
||||
| `STAGING_BASE_URL` | أصل HTTPS للتطبيق المنشور، بدون شرطة مائلة أخيرة (مثلاً `https://xxx.up.railway.app`) |
|
||||
| `STAGING_API_KEY` | اختياري؛ إذا فرض التطبيق `X-API-Key` على الطلبات |
|
||||
|
||||
Workflow: [`.github/workflows/dealix-staging-smoke.yml`](../../../.github/workflows/dealix-staging-smoke.yml) — من تبويب **Actions** اختر **Dealix staging smoke** → **Run workflow**.
|
||||
|
||||
## Daily Revenue Machine
|
||||
|
||||
| السر | الوصف |
|
||||
|------|--------|
|
||||
| `DEALIX_API_BASE` | أصل الـ API (مثل `https://host` بدون `/` زائدة) |
|
||||
| `DEALIX_API_KEY` | مفتاح يُرسل كـ `Authorization: Bearer …` |
|
||||
|
||||
Workflow: [`.github/workflows/dealix-daily-revenue-machine.yml`](../../../.github/workflows/dealix-daily-revenue-machine.yml).
|
||||
**جدولة cron:** تعمل من **الفرع الافتراضي** للريبو (غالباً `main`)؛ راجع تعليق الملف.
|
||||
|
||||
## CI الأساسي
|
||||
|
||||
**Dealix API CI** لا يحتاج أسرار للاختبارات الافتراضية (مفاتيح وهمية داخل YAML). لا تضع مفاتيح إنتاج في CI.
|
||||
@ -34,3 +34,11 @@ GitHub **لا** يشغّل workflows من `dealix/.github/workflows/` كمصدر
|
||||
## الريبو العام
|
||||
|
||||
[https://github.com/VoXc2/system-prompts-and-models-of-ai-tools](https://github.com/VoXc2/system-prompts-and-models-of-ai-tools)
|
||||
|
||||
## Railway (خطوات اللوحة)
|
||||
|
||||
[`RAILWAY_AI_COMPANY_BIND.md`](RAILWAY_AI_COMPANY_BIND.md)
|
||||
|
||||
## أسرار GitHub Actions
|
||||
|
||||
[`GITHUB_ACTIONS_ENV_SETUP.md`](GITHUB_ACTIONS_ENV_SETUP.md)
|
||||
|
||||
39
dealix/docs/ops/RAILWAY_AI_COMPANY_BIND.md
Normal file
39
dealix/docs/ops/RAILWAY_AI_COMPANY_BIND.md
Normal file
@ -0,0 +1,39 @@
|
||||
# ربط Railway — مسار AI Company (`ai-company`)
|
||||
|
||||
نفّذ في [لوحة Railway](https://railway.app) بعد أن يكون الفرع [`ai-company`](https://github.com/VoXc2/system-prompts-and-models-of-ai-tools/tree/ai-company) مرفوعاً على GitHub.
|
||||
|
||||
## 1) المشروع والخدمة
|
||||
|
||||
1. **New Project** → **Deploy from GitHub** → اختر `VoXc2/system-prompts-and-models-of-ai-tools`.
|
||||
2. أنشئ خدمة **Web** (أو عدّل الخدمة الحالية) لتشغيل Dealix API.
|
||||
|
||||
## 2) إعدادات النشر (إلزامي)
|
||||
|
||||
| الحقل | القيمة |
|
||||
|--------|--------|
|
||||
| **Branch** | `ai-company` |
|
||||
| **Root Directory** | `dealix` |
|
||||
| **Start Command** | `uvicorn api.main:app --host 0.0.0.0 --port ${PORT:-8000}` |
|
||||
|
||||
مرجع: [`STAGING_DEPLOYMENT.md`](../STAGING_DEPLOYMENT.md).
|
||||
|
||||
## 3) قاعدة البيانات
|
||||
|
||||
1. أضف **PostgreSQL** من Railway أو استخدم `DATABASE_URL` خارجي.
|
||||
2. اربط متغير **`DATABASE_URL`** بخدمة التطبيق (غالباً يُحقن تلقائياً عند الربط).
|
||||
|
||||
## 4) متغيرات البيئة
|
||||
|
||||
- انسخ **الأسماء** من [`.env.staging.example`](../../.env.staging.example) (staging) أو [`.env.example`](../../.env.example) (production لاحقاً).
|
||||
- لا تُرفع `.env` إلى Git.
|
||||
- تأكد من: `APP_SECRET_KEY`, `APP_URL`, `APP_ENV`, `CORS_ORIGINS`, `MOYASAR_*`، و`DAILY_EMAIL_LIMIT` (وليس `EMAIL_DAILY_LIMIT`)، و`WHATSAPP_ALLOW_LIVE_SEND=false` للبيتا حتى الموافقة.
|
||||
|
||||
## 5) التحقق بعد النشر
|
||||
|
||||
1. المتصفح: `https://<your-host>/health` → 200.
|
||||
2. محلياً: `STAGING_BASE_URL=https://<host>` ثم `python scripts/smoke_staging.py` من مجلد `dealix`.
|
||||
3. GitHub Actions: شغّل يدوياً **Dealix staging smoke** بعد ضبط أسرار `STAGING_BASE_URL` / `STAGING_API_KEY` — انظر [`GITHUB_ACTIONS_ENV_SETUP.md`](GITHUB_ACTIONS_ENV_SETUP.md).
|
||||
|
||||
## 6) مسار Git الكامل
|
||||
|
||||
[`GITHUB_AI_COMPANY_TRACK.md`](GITHUB_AI_COMPANY_TRACK.md)
|
||||
Loading…
Reference in New Issue
Block a user