After Framework

حدود المؤسسات

EnterpriseScope، وRBAC، والتدقيق، والتشغيل البيني الآمن، ووضع الإقلاع.

إصدار التوثيق: supercore main · الحزم 1.0.0

EnterpriseScopeرابط إلى هذا القسم: EnterpriseScope

تتطلب المنافذ المؤسسية المقيّدة بالمؤسسة EnterpriseScope. وغياب organizationId يطلق استثناءً — فلا تُعاد أبدًا بيانات جميع المستأجرين.

dart
/// Fail-closed tenant + actor context for enterprise ports (ADR-002).
class EnterpriseScope {
  final String organizationId;
  final String actorId;
  final PermissionSet permissions;

  /// Throws if [organizationId] is missing/blank — never allow all-tenant lists.
  static String requireOrganizationId(String? organizationId) {
    final id = organizationId?.trim() ?? '';
    if (id.isEmpty) {
      throw StateError(
        'EnterpriseScope: organizationId is required (fail-closed tenancy).',
      );
    }
    return id;
  }
}

المصدر supercore/packages/after_enterprise/lib/src/scope/enterprise_scope.dart (يُفتح في علامة تبويب جديدة)

ADR-002 (يُفتح في علامة تبويب جديدة)

RBAC والتدقيقرابط إلى هذا القسم: RBAC والتدقيق

تتحقق الميزات الرأسية من PermissionSet.allows(...) قبل أي استدعاء يعدّل البيانات. وتصرّح المنتجات بسلاسل الأذونات الخاصة بها.

يجب أن يُلحِق كل إجراء مؤسسي معدِّل سجلًا من نوع AuditLogEntry بمستودع AuditLogRepository القائم على الإلحاق فقط.

التشغيل البيني الآمنرابط إلى هذا القسم: التشغيل البيني الآمن

تمرّ الاستدعاءات بين المنتجات عبر AfterSecureInteropBridge: جمهور After ID، والنطاقات، وRBAC، وعضوية المؤسسة، ثم إدخال تدقيق إلزامي.

  1. التحقق من جمهور After ID
  2. النطاقات وRBAC وعضوية المؤسسة عند وجود مؤسسة
  3. إدخال تدقيق إلزامي
  4. تقليل اختياري للبيانات وفق مخطط نقطة النهاية

ADR-006 (يُفتح في علامة تبويب جديدة)

وضع الإقلاعرابط إلى هذا القسم: وضع الإقلاع

في وضع الإنتاج، يطلق غياب أي محوّل استثناءً عند بدء التشغيل، فلا يمكن للمزوّدات الوهمية أن تصل إلى الإنتاج بصمت.

dart
/// Composition safety mode (ADR-007).
///
/// - [scaffold]: in-memory / mock adapters are allowed (templates, tests).
/// - [production]: missing real adapters must throw at startup.
enum AfterBootstrapMode {
  scaffold,
  production,
}

المصدر supercore/packages/after_core/lib/src/bootstrap/after_bootstrap_mode.dart (يُفتح في علامة تبويب جديدة)

ADR-007 (يُفتح في علامة تبويب جديدة)

المنافذ المؤسسيةرابط إلى هذا القسم: المنافذ المؤسسية

تحلّ الخوادم الخلفية الحقيقية محل MockEnterpriseRepository في جذر التركيب. ولا تعرف طبقة النظام اسم المورّد أبدًا.

  • EnterpriseScope
  • OrganizationRepository
  • RbacRepository
  • PermissionSet
  • WorkflowEngine
  • TaskRepository
  • CalendarRepository
  • DocumentRepository
  • EnterpriseAiAssistant
  • AuditLogRepository
  • OfflineSyncQueue
  • EnterpriseApiClient
  • MockEnterpriseRepository
  • EnterpriseProductRuntime
dart
static Future<List<Override>> ensureConfigured({
  EnterpriseRepository? enterpriseRepository,
}) async {
  PlatformConfig.current = superAppEnterpriseManifest;
  final prefs = await SharedPreferences.getInstance();
  return [
    ...AfterStandardOverrides.create(
      preferences: prefs,
      userAgent: '${superAppEnterpriseManifest.appName}/'
          '${superAppEnterpriseManifest.appId}',
    ),
    enterpriseRepositoryProvider.overrideWithValue(
      enterpriseRepository ?? MockEnterpriseRepository(),
    ),
  ];
}

المصدر supercore/templates/super_app_enterprise/after_framework.dart (يُفتح في علامة تبويب جديدة)

هذه ضوابط معمارية موثّقة في مستودع supercore. ولا يدّعي After Framework الحصول على أي شهادة أو تحقيق أي امتثال تنظيمي.