برنامه نویسی

🔐 ابزار تست اجازه – ساخت ، اعتبارسنجی و مجوز امن با مجوز.

این یک ارسال برای مجوز است. چالش مجوز: مجوزها دوباره تعریف شده اند

آنچه من ساختم

جعبه ابزار تست اجازه یک ابزار CLI است که با TypeScript ساخته شده است که به تیم ها امکان می دهد معتبربا شبیه سازی کردنوت تست منطق کنترل دسترسی ریز دانه آنها با استفاده از permit.io.

✅ از هر دو پشتیبانی می کند موارد آزمایش دستی از طریق JSON وت تولید تست پویا با استفاده از شما SCHEMA LIVE PERMIT.IOبشر

✅ برای خطوط لوله CI یا تیم های آگاه امنیتی که می خواهند مناسب باشد “قبل از شکستن تولید ، سیاست های آنها را آزمایش کنید.”

✅ اوه – و در ترمینال شما نیز زیبا به نظر می رسد. 🎨

شما قوانین را می نویسید. این CLI اطمینان می دهد که آنها دنبال می شوند.

نسخه آزمایشی

$ npm start

  ____                            ____ _               _    
 |  _ \ ___ _ __ _ __ ___        / ___| |__   ___  ___| | __
 | |_) / _ \ '__| '_ ` _ \ _____| |   | '_ \ / _ \/ __| |/ /
 |  __/  __/ |  | | | | | |_____| |___| | | |  __/ (__|   < 
 |_|   \___|_|  |_| |_| |_|      \____|_| |_|\___|\___|_|\_\

Running tests from config: test-cases/perm-config.json

📝 Permission Test Report:
========================================
1. Viewer can read a post
   ➤ User: viewer
   ➤ Resource: post
   ➤ Action: read
   ➤ Expected: allow, Actual: allow
   ➤ ✅ PASS

2. Editor cannot delete a post
   ➤ User: editor
   ➤ Resource: post
   ➤ Action: delete
   ➤ Expected: deny, Actual: deny
   ➤ ✅ PASS

✔️  2/2 tests passed.
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

perm-config.json:

{
  "tests": [
    {
      "user": "admin",
      "resource": "post",
      "action": "delete",
      "expected": "allow"
    },
    {
      "user": "editor",
      "resource": "post",
      "action": "delete",
      "expected": "deny"
    }
  ]
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مثال خروجی:

...
Check delete for viewer
   ➤ User: Sam Smith
   ➤ Resource: Document_number_1
   ➤ Action: delete
   ➤ Expected: allow, Actual: deny
   ➤ ❌ FAIL
...
Summary:
✔ Passed: 4
✘ Failed: 4
Total: 8
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

نصب جهانی CLI:

npm install -g .
perm-check --config path/to/perm-config.json
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

repo پروژه

جعبه ابزار تست اجازه یک ابزار CLI سریع و سریع است که به توسعه دهندگان کمک می کند تا به طور خودکار قوانین دسترسی (RBAC/ABAC) را که در مجوز تنظیم شده است ، آزمایش کند.

✅ ساخته شده با عملکرد ، اتوماسیون و ادغام CI/CD در ذهن – نیازی به UI نیست.


📦 ویژگی ها

  • تست های اجازه سفارشی – موارد تست صریح را برای کاربران ، اقدامات و نتایج مورد انتظار تعریف کنید.
  • 🚀 درون نگری طرحواره زنده -تست های مجوز تولید خودکار بر اساس طرح خط مشی شما.
  • 🧠 آزمایش پوشش نقش – به طور پویا هر نقش را در برابر هر عمل در هر منبع آزمایش کنید.
  • 💥 CI/CD دوستانه – برای جلوگیری از رگرسیون سیاست به راحتی در خطوط لوله ادغام شوید.
  • 🛠 درجه یک -تجربه کلی ، سریع و سریع ، کاملاً در TypeScript نوشته شده است.

📸 تولید نسخه ی نمایشی

$ npm start
  ____                            ____ _               _    
 |  _ \ ___ _ __ _ __ ___        / ___| |__   ___  ___| | __
 

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

Readme شما را از طریق راه اندازی ، استفاده ، .env پیکربندی ، واکشی طرحواره زنده ، و ایجاد موارد آزمون خود.

حتی می توانید CLI را در سطح جهانی با استفاده از آن نصب کنید npm install -g . دویدن perm-check از هر کجا

سفر من

وقتی شروع کردم ، هدف من این بود که نه فقط از مجوز استفاده کنید. برای auth، اما به آثار من را آزمون و اعتماد کنیدبشر

نکات برجسته:

  • با استفاده از CLI ساخته شده است commander با chalk برای ux تمیز
  • پشتیبانی اضافه شده برای:
    • .json تست های فایل پیکربندی (عالی برای کنترل نسخه)
    • بازرسی طرحواره زنده از طریق @permit.io/sdk (کاربران پویا/اقدامات/منابع)
  • یک گزارش آزمایشی ترمینال قابل خواندن و رنگارنگ ایجاد کرد
  • همه چیز را در یک CLI قابل نصب در سطح جهانی بسته بندی کرده است

چالش ها و دروس:

  • یاد گرفت که چگونه مجوز. io api & sdk اقدامات/منابع را افشا می کند
  • مقدار “عدم موفقیت سریع” در آزمایش کنترل دسترسی را کشف کرد

با استفاده از مجوز. برای مجوز

این CLI با permit.io از دو طریق اصلی:

  1. تست استاتیک:

    موارد تست بار از a .json پیکربندی و بررسی allow/deny در برابر PDP PROLIT.IO (نقطه تصمیم گیری سیاست) از طریق استراحت.

  2. آزمایش طرحواره پویا:

    از SDK برای واکشی همه تعریف شده استفاده کنید usersبا resourcesوت actions در پروژه Permit.io شما. سپس چک های مجوز را در سراسر صفحه شبیه سازی کنید.

📦 پتانسیل آینده
این پروژه فقط یک ابزار نیست – این پایه و اساس یک کتابخانه اعتبار سنجی مجوز است که می تواند:

  • به عنوان یک بسته NPM منتشر شود
  • ادغام در خطوط لوله CI (به عنوان مثال ، اقدامات GitHub)
  • پوشش مجوز را تجسم کنید

🙌 تیم یا انفرادی
این یک پروژه انفرادی بود.

با تشکر فراوان از Premit.io و dev.to برای سازماندهی این چالش و ارائه مستندات و ابزار عالی.
این تجربه هم پاداش دهنده و هم توانمند بود – این نه تنها درک من از گردش کار مجوز مدرن را عمیق تر کرد بلکه به من الهام بخش بود تا چیزی را که شاید برای جامعه توسعه دهنده مفید باشد ، بسازم.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا