{
  "title": "لایه پیکربندی پلتفرم (Nons Configuration Layer)",
  "slug": "team/frontend/architecture/nons-configuration",
  "url": "/docs/team/frontend/architecture/nons-configuration",
  "frontmatter": {
    "layout": "doc",
    "title": "لایه پیکربندی پلتفرم (Nons Configuration)",
    "description": "مستندات تشریحی ساختار دایرکتوری .nons و فایل‌های تنظیمات پلتفرم Nons",
    "version": "1.0.0",
    "status": "PRIVATE",
    "author": "Antigravity",
    "owner": "xoxxel",
    "created_at": "2026-06-30",
    "updated_at": "2026-06-30",
    "tags": "",
    "reviewers": ""
  },
  "sections": [
    {
      "level": 1,
      "heading": "لایه پیکربندی پلتفرم (Nons Configuration Layer)",
      "content": "پوشه `.nons/` در دایرکتوری ریشه پروژه، مالک و مرجع انحصاری تمام تنظیمات، تم‌ها، منوها و اطلاعات ساختاری پلتفرم Nons است. این لایه به صورت فایل‌های YAML پیکربندی می‌شود تا از پیچیدگی‌های کدنویسی دور بوده و به راحتی توسط ابزارهای خودکار یا برنامه‌نویسان قابل ویرایش باشد.\n\n---"
    },
    {
      "level": 2,
      "heading": "ساختار دایرکتوری `.nons/`",
      "content": "```\n.nons/\n├── config.yaml          # تنظیمات اصلی پروژه و مشخصات کلی پلتفرم\n├── theme.yaml           # پوسته‌ها، پالت رنگ‌ها و نگاشت توکن‌های گرافیکی\n├── locale.yaml          # تنظیمات زبان و ترجمه‌های متون ثابت\n├── navigation.yaml      # منوها، سایدبارها و پیوند آن‌ها با دسترسی‌ها\n├── permissions.yaml     # تعاریف و قراردادهای دسترسی کاربری\n├── services/            # رجیستری سرویس‌های بک‌اند (تولیدشده توسط nons service add)\n│   ├── auth.json\n│   └── iam.json\n├── registry/           # Service Manifestها (تولیدشده توسط nons registry build)\n│   ├── auth.json\n│   └── iam.json\n└── generated/           # مصنوعات تولیدشده (تولیدشده توسط nons generate)\n    ├── types/\n    ├── api-client/\n    └── hooks/\n```\n\n---"
    },
    {
      "level": 2,
      "heading": "تشریح وظایف فایل‌های پیکربندی",
      "content": ""
    },
    {
      "level": 3,
      "heading": "۱. فایل `config.yaml`",
      "content": "این فایل مسئولیت نگهداری تنظیمات اساسی و کلان پروژه را بر عهده دارد.\n* **شامل:**\n  * مشخصات کلی و شناسه‌های پروژه (مانند نام، آیکون و دامنه).\n  * تنظیمات عمومی و متغیرهای اصلی پلتفرم Nons.\n  * فعال یا غیرفعال بودن قابلیت‌ها و زیرسیستم‌ها (مانند سیستم اودیت‌لاگ، چت یا گزارش‌گیری)."
    },
    {
      "level": 3,
      "heading": "۲. فایل `theme.yaml`",
      "content": "این فایل مسئول یکپارچه‌سازی ظاهر برنامه و از بین بردن هرگونه استایل‌های هاردکد شده (Hardcoded Styles) در کامپوننت‌ها است.\n* **شامل:**\n  * تعریف پالت‌های رنگی تم‌های روشن و تاریک.\n  * نگاشت توکن‌های سیستم طراحی (`Token Mapping`) نظیر فاصله‌ها، گوشه‌ها (`Border-Radius`) و فونت‌ها.\n  * پیکربندی سیستم ظاهری پروژه (`Design System Configuration`)."
    },
    {
      "level": 3,
      "heading": "۳. فایل `locale.yaml`",
      "content": "مدیریت زبان‌ها و ترجمه متون برای چندزبانگی فرانت‌بند از طریق این فایل انجام می‌شود.\n* **شامل:**\n  * تعیین زبان پیش‌فرض سیستم (مثلاً `fa` یا `en`).\n  * ترجمه تمام متون استاتیک و عمومی مورد استفاده در پنل‌ها (مانند دکمه‌ها، عنوانین صفحات، پیغام‌های موفقیت و خطا)."
    },
    {
      "level": 3,
      "heading": "۴. فایل `navigation.yaml`",
      "content": "منوها و نوار ابزارهای ناوبری به صورت ساختاریافته در این فایل تعریف می‌شوند.\n* **شامل:**\n  * تعریف درخت منوها (منوی کناری، هدر، منوی کاربری).\n  * مشخص کردن روت‌ها و مقاصد هر دکمه به صورت داینامیک.\n  * برقراری پیوند میان آیتم‌های ناوبری با سیستم سطوح دسترسی آینده."
    },
    {
      "level": 3,
      "heading": "۵. فایل `permissions.yaml`",
      "content": "این فایل وظیفه تعریف قراردادهای امنیتی و سطوح دسترسی بصری را در پلتفرم بر عهده دارد.\n* **شامل:**\n  * تعریف نقش‌ها (`Roles`) و دسترسی‌ها (`Permissions`) در قالب قراردادهای پلتفرم (`Permission Contracts`)."
    },
    {
      "level": 3,
      "heading": "۶. دایرکتوری `registry/`",
      "content": "این دایرکتوری توسط دستور `nons registry build <service>` پر می‌شود و شامل Service Manifestهای JSON است. هر Manifest از روی OpenAPI سرویس بک‌اند تولید شده و شامل:\n* فایل‌های Manifest سرویس‌ها (نظیر `auth.json`، `iam.json`)\n* عملیات (Operations) با متادیتا (auth, timeout, retry, cache)\n* تایپ‌های مورد نیاز و Security Schemeها"
    },
    {
      "level": 3,
      "heading": "۷. دایرکتوری `generated/`",
      "content": "این دایرکتوری توسط دستور `nons generate` پر می‌شود و شامل کدهای تایپ‌پذیر مصرف‌کننده API (Types, API Client, Hooks/Composables) است. همه چیز هم‌زمان و متناسب با فریم‌ورک پروژه (React، Vue، Flutter، ...) تولید می‌شود. ویرایش دستی فایل‌های این دایرکتوری ممنوع است."
    }
  ]
}