After Framework

Enterprise-Grenzen

EnterpriseScope, RBAC, Audit, sichere Interop und Bootstrap-Modus.

Doku-Version: supercore main · Pakete 1.0.0

EnterpriseScopeLink zu diesem Abschnitt: EnterpriseScope

Organisationsbezogene Enterprise-Ports erfordern einen EnterpriseScope. Fehlt die organizationId, wird ein Fehler geworfen — nie werden alle Mandanten zurückgegeben.

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;
  }
}

Quelle supercore/packages/after_enterprise/lib/src/scope/enterprise_scope.dart (öffnet in neuem Tab)

ADR-002 (öffnet in neuem Tab)

RBAC und AuditLink zu diesem Abschnitt: RBAC und Audit

Vertikale Features prüfen PermissionSet.allows(...) vor jedem ändernden Aufruf. Produkte deklarieren ihre eigenen Berechtigungsstrings.

Jede ändernde Enterprise-Aktion muss einen AuditLogEntry an das Append-only-AuditLogRepository anhängen.

Sichere InteropLink zu diesem Abschnitt: Sichere Interop

Produktübergreifende Aufrufe laufen über AfterSecureInteropBridge: After-ID-Audience, Scopes, RBAC und Org-Mitgliedschaft, dann ein verpflichtender Audit-Eintrag.

  1. Prüfung der After-ID-Audience
  2. Scopes, RBAC und Organisationsmitgliedschaft, sofern eine Organisation vorhanden ist
  3. Verpflichtender Audit-Eintrag
  4. Optionale Datenminimierung per Endpunkt-Schema

ADR-006 (öffnet in neuem Tab)

Bootstrap-ModusLink zu diesem Abschnitt: Bootstrap-Modus

Im Produktionsmodus wirft ein fehlender Adapter beim Start einen Fehler, sodass Mock-Provider nicht unbemerkt in Produktion gelangen.

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,
}

Quelle supercore/packages/after_core/lib/src/bootstrap/after_bootstrap_mode.dart (öffnet in neuem Tab)

ADR-007 (öffnet in neuem Tab)

Enterprise-PortsLink zu diesem Abschnitt: Enterprise-Ports

Echte Backends ersetzen MockEnterpriseRepository im Composition Root. Die OS-Schicht erfährt nie den Namen des Anbieters.

  • 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(),
    ),
  ];
}

Quelle supercore/templates/super_app_enterprise/after_framework.dart (öffnet in neuem Tab)

Dies sind im supercore-Repository dokumentierte Architekturkontrollen. After Framework erhebt keinen Anspruch auf Zertifizierung oder regulatorische Konformität.