PHPackages                             azaharizaman/nexus-settings-management - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. azaharizaman/nexus-settings-management

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

azaharizaman/nexus-settings-management
======================================

Non-operational orchestrator for system-wide configuration management - defines interfaces for settings, feature flags, period, and audit operations

v0.1.0-alpha1(1mo ago)02↓100%MITPHPPHP ^8.3

Since May 5Pushed 1mo agoCompare

[ Source](https://github.com/azaharizaman/nexus-settings-management)[ Packagist](https://packagist.org/packages/azaharizaman/nexus-settings-management)[ RSS](/packages/azaharizaman-nexus-settings-management/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (4)Versions (2)Used By (0)

SettingsManagement Orchestrator
===============================

[](#settingsmanagement-orchestrator)

> Non-operational orchestrator for system-wide configuration management - coordinates Setting, FeatureFlags, Period, and Backoffice packages

Overview
--------

[](#overview)

The **SettingsManagement** orchestrator provides centralized management of settings, feature flags, fiscal periods, and organizational configurations across the Nexus ERP system. As a Layer-2 orchestrator, it coordinates workflows across multiple foundation packages while maintaining interface segregation.

Architecture
------------

[](#architecture)

This package follows the **Advanced Orchestrator Pattern** as defined in the main [`ARCHITECTURE.md`](../../ARCHITECTURE.md#4-the-advanced-orchestrator-pattern).

### Layer Positioning

[](#layer-positioning)

```
┌─────────────────────────────────────────────────────────┐
│                    Adapters (L3)                        │
│   Implements orchestrator interfaces using atomic pkgs   │
└─────────────────────────────────────────────────────────┘
                            ▲ implements
┌─────────────────────────────────────────────────────────┐
│               SettingsManagement (L2)                   │
│   - Defines own interfaces in Contracts/                │
│   - Depends only on: php, psr/log, psr/event-dispatcher│
│   - Coordinates multi-package configuration workflows   │
│   - Publishable as standalone composer package          │
└─────────────────────────────────────────────────────────┘
                            ▲ uses via interfaces
┌─────────────────────────────────────────────────────────┐
│                Atomic Packages (L1)                     │
│   - Setting, FeatureFlags, Period, Backoffice           │
│   - AuditLogger, Identity                               │
└─────────────────────────────────────────────────────────┘

```

Features
--------

[](#features)

### Settings Management

[](#settings-management)

- Single and bulk setting updates with validation
- Settings hierarchy resolution (application → tenant → user)
- Dependency and conflict detection
- Full audit logging

### Feature Flag Management

[](#feature-flag-management)

- Boolean, percentage, user-list, IP-based, and custom rule flags
- Gradual feature rollout with targeting rules
- Kill switch functionality
- High-performance evaluation with caching

### Fiscal Period Management

[](#fiscal-period-management)

- Fiscal calendar configuration
- Automatic period generation
- Period validation for various operation types
- Period closure coordination

### Configuration Synchronization

[](#configuration-synchronization)

- JSON-based export/import
- Configuration versioning and rollback
- Schema validation

Directory Structure
-------------------

[](#directory-structure)

```
src/
├── Contracts/                    # Own interfaces
│   ├── SettingsCoordinatorInterface.php
│   ├── FeatureFlagCoordinatorInterface.php
│   ├── FiscalPeriodCoordinatorInterface.php
│   ├── ConfigurationSyncCoordinatorInterface.php
│   └── Provider interfaces
│
├── Coordinators/                 # Traffic management
│   ├── SettingsCoordinator.php
│   ├── FeatureFlagCoordinator.php
│   ├── FiscalPeriodCoordinator.php
│   └── ConfigurationSyncCoordinator.php
│
├── DataProviders/                # Cross-package aggregation
│   ├── SettingsDataProvider.php
│   ├── FeatureFlagDataProvider.php
│   ├── FiscalPeriodDataProvider.php
│   └── ConfigurationDataProvider.php
│
├── DTOs/                         # Request/Response objects
│   ├── Settings/
│   ├── FeatureFlags/
│   ├── FiscalPeriod/
│   └── Configuration/
│
├── Rules/                        # Business validation
│   ├── SettingValueValidRule.php
│   ├── SettingDependencyRule.php
│   ├── SettingConflictRule.php
│   ├── FeatureFlagConflictRule.php
│   ├── FeatureFlagTargetingRule.php
│   ├── FiscalPeriodOverlapRule.php
│   ├── FiscalPeriodLockedRule.php
│   └── ConfigurationImportRule.php
│
├── Services/                     # Complex orchestration logic
│   ├── SettingsUpdateService.php
│   ├── FeatureFlagService.php
│   ├── FiscalPeriodService.php
│   ├── ConfigurationSyncService.php
│   └── ConfigurationCacheService.php
│
├── Workflows/                    # Stateful processes
│   ├── FeatureRollout/
│   └── PeriodClosure/
│
├── Listeners/                    # Event handlers
│   ├── OnSettingChanged.php
│   ├── OnFeatureFlagCreated.php
│   ├── OnFeatureFlagDisabled.php
│   ├── OnFiscalPeriodClosed.php
│   └── OnConfigurationImported.php
│
└── Exceptions/                   # Domain errors
    ├── SettingsManagementException.php
    ├── SettingNotFoundException.php
    ├── SettingValidationException.php
    ├── FeatureFlagException.php
    ├── FiscalPeriodException.php
    └── ConfigurationSyncException.php

```

Usage
-----

[](#usage)

### Settings Coordinator

[](#settings-coordinator)

```
use Nexus\SettingsManagement\Coordinators\SettingsCoordinator;
use Nexus\SettingsManagement\DTOs\Settings\SettingUpdateRequest;

// Update a single setting
$result = $settingsCoordinator->updateSetting(new SettingUpdateRequest(
    key: 'app.timezone',
    value: 'Asia/Kuala_Lumpur',
    tenantId: 'tenant-123',
    reason: 'Update timezone for new region',
));

// Bulk update settings
$result = $settingsCoordinator->bulkUpdateSettings(new BulkSettingUpdateRequest(
    settings: [
        'app.timezone' => 'Asia/Kuala_Lumpur',
        'app.locale' => 'en-MY',
    ],
    tenantId: 'tenant-123',
));
```

### Feature Flag Coordinator

[](#feature-flag-coordinator)

```
use Nexus\SettingsManagement\Coordinators\FeatureFlagCoordinator;
use Nexus\SettingsManagement\DTOs\FeatureFlags\FlagCreateRequest;
use Nexus\SettingsManagement\DTOs\FeatureFlags\FlagType;

// Create a feature flag
$result = $featureFlagCoordinator->createFlag(new FlagCreateRequest(
    key: 'new_dashboard',
    name: 'New Dashboard',
    description: 'Enable the new dashboard UI',
    type: FlagType::BOOLEAN,
    defaultValue: false,
    tenantId: 'tenant-123',
));

// Evaluate feature flags
$result = $featureFlagCoordinator->evaluateFlags(new FlagEvaluationRequest(
    tenantId: 'tenant-123',
    flagKeys: ['new_dashboard', 'beta_features'],
    userId: 'user-456',
));
```

### Fiscal Period Coordinator

[](#fiscal-period-coordinator)

```
use Nexus\SettingsManagement\Coordinators\FiscalPeriodCoordinator;
use Nexus\SettingsManagement\DTOs\FiscalPeriod\CalendarConfigRequest;
use Nexus\SettingsManagement\DTOs\FiscalPeriod\PeriodType;

// Configure fiscal calendar
$result = $fiscalPeriodCoordinator->configureCalendar(new CalendarConfigRequest(
    tenantId: 'tenant-123',
    fiscalYearStart: new \DateTime('2026-01-01'),
    periodType: PeriodType::MONTHLY,
    namingConvention: 'FY{{year}}-P{{period}}',
    yearEndClosing: true,
));
```

Dependencies
------------

[](#dependencies)

This package depends only on:

- PHP 8.3+
- `psr/log` (PSR-3 Logger)
- `psr/event-dispatcher` (PSR-14 Event Dispatcher)
- Atomic package interfaces (via adapters in Layer 3)

Integration with Other Orchestrators
------------------------------------

[](#integration-with-other-orchestrators)

OrchestratorValue ProvidedFinanceOperationsFiscal period configuration, validates period statusHumanResourceOperationsHR-specific settings, feature flags for HR modulesAccountingOperationsFiscal calendar, period status validationSalesOperationsSales-specific settings, feature flags for pricingProcurementOperationsProcurement settings, approval thresholdsSupplyChainOperationsInventory settings, warehouse configurationsCRMOperationsCRM-specific settings, pipeline configurationsComplianceOperationsCompliance settings, regulatory configurationsTesting
-------

[](#testing)

```
cd orchestrators/SettingsManagement
composer install

# Run unit tests
composer test

# Run with coverage
composer test-coverage
```

License
-------

[](#license)

MIT

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance93

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

 Bus Factor1

Top contributor holds 81.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

36d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/117408?v=4)[Azahari Zaman](/maintainers/azaharizaman)[@azaharizaman](https://github.com/azaharizaman)

---

Top Contributors

[![azaharizaman](https://avatars.githubusercontent.com/u/117408?v=4)](https://github.com/azaharizaman "azaharizaman (13 commits)")[![cursoragent](https://avatars.githubusercontent.com/u/199161495?v=4)](https://github.com/cursoragent "cursoragent (2 commits)")[![coderabbitai[bot]](https://avatars.githubusercontent.com/in/347564?v=4)](https://github.com/coderabbitai[bot] "coderabbitai[bot] (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/azaharizaman-nexus-settings-management/health.svg)

```
[![Health](https://phpackages.com/badges/azaharizaman-nexus-settings-management/health.svg)](https://phpackages.com/packages/azaharizaman-nexus-settings-management)
```

###  Alternatives

[symfony/symfony

The Symfony PHP framework

31.4k86.9M2.2k](/packages/symfony-symfony)[phpro/soap-client

A general purpose SoapClient library

8895.9M52](/packages/phpro-soap-client)[symfony/mailer

Helps sending emails

1.6k394.6M1.3k](/packages/symfony-mailer)[web-auth/webauthn-lib

FIDO2/Webauthn Support For PHP

1237.8M117](/packages/web-auth-webauthn-lib)[web-auth/webauthn-framework

FIDO2/Webauthn library for PHP and Symfony Bundle.

51090.8k2](/packages/web-auth-webauthn-framework)[ecotone/ecotone

Enterprise architecture layer for Laravel and Symfony — CQRS, Event Sourcing, Durable Workflows (Sagas, Orchestrators), Projections, and Outbox messaging via PHP attributes.

562565.8k41](/packages/ecotone-ecotone)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
