رفتن به محتوا
احراز هویت

احراز هویت

هر درخواستی که CLI می‌فرستد یک کلید API از پروژهٔ شما را با خود دارد. کلیدها را یک بار با status200 login ذخیره کنید، برای هر محیط یک زمینه، یا مانند اسکریپت‌ها آن‌ها را با پرچم‌ها یا متغیرهای محیطی به یک دستور بدهید. این صفحه هر روش را نشان می‌دهد، و این‌که وقتی چند روش هست، دستور کدام را به کار می‌برد.

پیش از شروع

به یک کلید API از پروژهٔ خود نیاز دارید. آن را در تنظیمات پروژه > پیشرفته > کلیدهای API با ساخت کلید API بسازید و دسترسی‌ای را که دستورهایتان نیاز دارند به آن بدهید: یک کلید API بسازید را ببینید. کلید همان کاری را می‌کند که مجوزهایش اجازه می‌دهند، پس کلیدی که فقط می‌تواند رکوردها را بخواند، می‌تواند آن‌ها را فهرست کند و بخواند، اما نمی‌تواند تغییرشان دهد.

در Status200 Cloud، کلیدهای API فقط تا وقتی کار می‌کنند که پروژه روی طرح Growth یا بالاتر باشد. پایین‌تر از آن، هر دستور با API error (402) و پیامی که نام طرح را می‌آورد پاسخ می‌دهد، تا وقتی پروژه ارتقا یابد؛ پس از آن همان کلید دوباره کار می‌کند. کلیدهای API و SCIM پایین‌تر از طرحشان را ببینید.

ورود

status200 login یک کلید API و نشانی Status200 شما را به‌عنوان یک زمینه ذخیره می‌کند و آن را زمینهٔ فعلی می‌کند:

Bash
status200 login <api-key> <instance-url> [--context-name <name>]
آرگومان یا گزینهچیست
<api-key>یک کلید API از پروژهٔ شما
<instance-url>نشانی Status200 شما: https://status200.ru، یا نشانی سرور خودتان، مانند https://status200.example.com
--context-name <name>نامی که زمینه با آن ذخیره می‌شود. پیش‌فرض: default

برای نمونه، زمینه‌ای به نام production:

Bash
status200 login <api-key> https://status200.ru --context-name production

پاسخ آن Logged in successfully. Context "production" is now active. است. اسلش پایان نشانی حذف می‌شود، و ورود دوباره با همان نام آن زمینه را جایگزین می‌کند.

نکته
login کلید را بدون پرسیدن از Status200 ذخیره می‌کند. برای دیدن این‌که کلید کار می‌کند، دستوری مانند status200 incident count را اجرا کنید.

زمینه‌ها

زمینه یک ورود ذخیره‌شده است: یک نام، یک نشانی و یک کلید API. برای هر پروژه یا محیط یکی ذخیره کنید، سپس یکی را برای همهٔ دستورهای بعدی، یا برای یک دستور، انتخاب کنید.

  1. برای هر محیط یک زمینه ذخیره کنید

    Bash
    status200 login <production-api-key> https://status200.ru --context-name production
    status200 login <staging-api-key> https://status200.example.com --context-name staging

    هر ورود زمینهٔ خودش را زمینهٔ فعلی می‌کند، پس اکنون staging زمینهٔ فعلی است.

  2. آن‌ها را فهرست کنید

    Bash
    status200 context list
    ┌───┬────────────┬───────────────────────────────┐
    │   │ Name       │ URL                           │
    ├───┼────────────┼───────────────────────────────┤
    │   │ production │ https://status200.ru          │
    ├───┼────────────┼───────────────────────────────┤
    │ * │ staging    │ https://status200.example.com │
    └───┴────────────┴───────────────────────────────┘

    نشانهٔ * زمینهٔ فعلی را مشخص می‌کند. کلیدهای API هرگز فهرست نمی‌شوند.

  3. به زمینهٔ دیگری بروید

    Bash
    status200 context use production

    پاسخ آن Switched to context "production". است و دستورهای بعدی از آن استفاده می‌کنند.

  4. برای یک دستور از یک زمینه استفاده کنید

    Bash
    status200 incident list --context staging

    زمینهٔ فعلی همان‌طور که بود می‌ماند.

دستورچه می‌کند
status200 context listزمینه‌های ذخیره‌شده را فهرست می‌کند؛ * زمینهٔ فعلی را مشخص می‌کند. با -o json، برای هر زمینه name، apiUrl و isCurrent، و هرگز کلیدش را
status200 context use <name>یک زمینهٔ ذخیره‌شده را زمینهٔ فعلی می‌کند
status200 context currentنام، URL و کلید API زمینهٔ فعلی را نشان می‌دهد، با پنهان بودن همهٔ نویسه‌های کلید جز چهار نویسهٔ اول و چهار نویسهٔ آخر
status200 context delete <name>یک زمینهٔ ذخیره‌شده را حذف می‌کند. اگر زمینهٔ فعلی بود، نخستین زمینهٔ باقی‌مانده زمینهٔ فعلی می‌شود

دستور کدام اعتبارنامه‌ها را به کار می‌برد

دستور به یک کلید API و یک URL نیاز دارد. هر کدام از این دو را از نخستین جایی در این فهرست برمی‌دارد که آن را داشته باشد:

flowchart TB F["۱. پرچم‌های روی دستور:<br/>‎--api-key و ‎--url"] --> E["۲. متغیرهای محیطی:<br/>STATUS200_API_KEY<br/>و STATUS200_URL"] E --> N["۳. زمینه‌ای که با<br/>‎--context نام برده شد"] N --> C["۴. زمینهٔ فعلی"] C --> X["هیچ‌جا پیدا نشد:<br/>دستور متوقف می‌شود"]

دستور کلید API و URL خود را کجا پیدا می‌کند

پس می‌توانید آن‌ها را با هم ترکیب کنید: برای نمونه، کلید API از یک متغیر محیطی همراه با URL زمینهٔ فعلی. متغیرهای محیطی برای اسکریپت‌ها و جاب‌های CI، که زمینهٔ ذخیره‌شده‌ای ندارند، مناسب‌اند:

Linux

Bash
export STATUS200_API_KEY=<api-key>
export STATUS200_URL=https://status200.ru
status200 incident list

macOS

Bash
export STATUS200_API_KEY=<api-key>
export STATUS200_URL=https://status200.ru
status200 incident list

Windows

PowerShell
$env:STATUS200_API_KEY = "<api-key>"
$env:STATUS200_URL = "https://status200.ru"
status200 incident list

برای یک دستور، پرچم‌ها بر همه‌چیز مقدم‌اند:

Bash
status200 --api-key <api-key> --url https://status200.ru incident list
هشدار

کلیدی که به‌صورت پرچم داده شود در تاریخچهٔ پوستهٔ شما می‌ماند، و کاربران دیگر آن ماشین می‌توانند آن را در فهرست فرایندها ببینند. روی ماشین مشترک، به‌جای آن از یک زمینه یا یک متغیر محیطی استفاده کنید.

ببینید CLI از چه چیزی استفاده خواهد کرد

status200 whoami نشانی URL و کلید API را که دستور بعدی به کار می‌برد، و زمینه‌ای را که از آن آمده‌اند، نشان می‌دهد:

Bash
status200 whoami
URL:     https://status200.ru
API Key: 4f1c****0a13
Context: production

فقط چهار نویسهٔ اول و چهار نویسهٔ آخر کلید نشان داده می‌شوند. سطر Context فقط وقتی ظاهر می‌شود که URL و کلید مقادیر خود آن زمینه باشند، نه مقادیری که یک پرچم یا یک متغیر محیطی جایگزینشان کرده است. whoami تنظیمات شما را بدون فراخوانی Status200 می‌خواند: نشان می‌دهد دستور چه چیزی خواهد فرستاد، نه این‌که Status200 آن را می‌پذیرد یا نه. وقتی هیچ چیزی ذخیره یا تنظیم نشده باشد، پاسخ می‌دهد:

Not authenticated. Run `status200 login` to authenticate.

فایل پیکربندی

status200 login زمینه‌ها را در ~/.oneuptime/config.json، در پوشهٔ خانگی شما، ذخیره می‌کند (در Windows، %USERPROFILE%\.oneuptime\config.json). CLI آن را طوری می‌سازد که فقط کاربر شما بتواند آن را بخواند و بنویسد (حالت 0600):

~/.oneuptime/config.jsonJSON
{
  "currentContext": "production",
  "contexts": {
    "production": {
      "name": "production",
      "apiUrl": "https://status200.ru",
      "apiKey": "<api-key>"
    },
    "staging": {
      "name": "staging",
      "apiUrl": "https://status200.example.com",
      "apiKey": "<api-key>"
    }
  }
}

این فایل کلیدهای API را همان‌طور که هستند نگه می‌دارد: آن را از پوشه‌های مشترک، پشتیبان‌ها و مخزن‌ها دور نگه دارید. برای خروج از یک زمینه، آن را با status200 context delete <name> حذف کنید؛ برای خروج از همهٔ آن‌ها، فایل را حذف کنید. کلیدی که ممکن است فاش شده باشد تا وقتی آن را در Status200، در تنظیمات پروژه > پیشرفته > کلیدهای API، حذف نکنید معتبر می‌ماند.

قالب‌های خروجی و اندازهٔ فهرست‌ها اینجا ذخیره نمی‌شوند: -o و --limit را به هر دستور بدهید.

عیب‌یابی

پیام «No credentials found»

Authentication error: No credentials found. یعنی هیچ پرچم، متغیر محیطی یا زمینهٔ ذخیره‌شده‌ای کلید API و URL دستور را به آن نداده است. status200 login را اجرا کنید، یا هر دو STATUS200_API_KEY و STATUS200_URL را تنظیم کنید. دستور با کد 2 خارج می‌شود.

پیام «API error (400): Invalid API Key»

کلید، کلید API Status200 نیست، منقضی شده، یا بازنشانی شده است. آن را دوباره از صفحه‌اش در تنظیمات پروژه > پیشرفته > کلیدهای API کپی کنید، جایی که تاریخ انقضا آن هم هست، و با همان نام زمینه دوباره وارد شوید. دستور با کد 2 خارج می‌شود.

پیام «API error (402): API keys need the Growth plan»

در Status200 Cloud، پروژه پایین‌تر از طرح Growth است، پس کلیدهای API آن دیگر کار نمی‌کنند. پروژه را ارتقا دهید تا همان کلید دوباره کار کند: در CLI چیزی برای تغییر نیست.

پیام «API error (422): You do not have permissions»

مجوزهای کلید به آنچه دستور می‌خواهد نمی‌رسند. در صفحهٔ کلید در تنظیمات پروژه > پیشرفته > کلیدهای API یک نقش یا یک مجوز به آن بدهید: پیام، مجوزهایی را که درخواست را راه می‌دهند نام می‌برد.

پیام «Context "staging" does not exist»

هیچ زمینه‌ای با آن نام ذخیره نشده است. status200 context list نام‌های موجود را نشان می‌دهد.

نشانی یا کلیدی که whoami نشان می‌دهد با زمینه فرق دارد

یک متغیر محیطی یا یک پرچم مقدار زمینه را جایگزین می‌کند. env | grep ONEUPTIME متغیرهای تنظیم‌شده را نشان می‌دهد، و unset STATUS200_API_KEY STATUS200_URL شما را به زمینه‌هایتان برمی‌گرداند.

درخواست به آن نشانی ناموفق بود

Error: Request failed to https://... یعنی CLI نتوانست در آن نشانی به Status200 برسد. URL را با status200 whoami بررسی کنید: همان نشانی‌ای است که Status200 را در آن باز می‌کنید، با https://، مانند https://status200.ru.

گام‌های بعدی