PHPackages                             atwx/silverstripe-gate-manager - 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. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. atwx/silverstripe-gate-manager

ActiveSilverstripe-vendormodule[Authentication &amp; Authorization](/categories/authentication)

atwx/silverstripe-gate-manager
==============================

A Silverstripe module to allow you to log into any of your Silverstripe sites from one place.

1.0(3mo ago)015↓50%BSD-3-ClausePHPCI passing

Since Feb 5Pushed 3mo agoCompare

[ Source](https://github.com/atwx/silverstripe-gate-manager)[ Packagist](https://packagist.org/packages/atwx/silverstripe-gate-manager)[ RSS](/packages/atwx-silverstripe-gate-manager/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (8)Versions (2)Used By (0)

Silverstripe Gate Manager
=========================

[](#silverstripe-gate-manager)

A Silverstripe CMS module that allows you to manage and log into multiple Silverstripe sites from a central location using secure JWT-based authentication.

Overview
--------

[](#overview)

Silverstripe Gate Manager provides a centralized dashboard for managing multiple Silverstripe installations. It generates RSA key pairs for each managed site and creates secure JWT tokens that enable seamless, passwordless login to any of your registered sites.

To log into another Silverstripe site, you should install and configure the [Silverstripe Gate Client](https://github.com/atwx/silverstripe-gate-client) module on it.

Installation
------------

[](#installation)

Install via Composer:

```
composer require atwx/silverstripe-gate-manager
```

After installation, run:

```
vendor/bin/sake dev/build flush=all
```

Configuration
-------------

[](#configuration)

### Manager Site (This Module)

[](#manager-site-this-module)

No additional configuration required. The module automatically:

- Generates RSA key pairs for each managed site
- Creates JWT tokens with configurable expiration
- Provides secure login URLs

#### Optional Configuration

[](#optional-configuration)

You can customize cryptography settings:

```
Atwx\SilverGateManager\Services\CryptographyService:
  # JWT configuration
  jwt_algorithm: 'RS256'      # Supported: RS256, RS384, RS512
  jwt_expiration_seconds: 60  # Token validity period
```

### Client Sites

[](#client-sites)

On each site you want to manage, install the SilverGate Client module:

```
composer require atwx/silverstripe-gate-client
```

Then configure it with the public key from the manager:

1. In the SilverGate Manager admin, navigate to "SilverGate Manager"
2. Create or edit a managed site
3. Go to the "Help" tab
4. Copy the provided YAML configuration
5. Add it to your client site's `app/_config/config.yml`

Example client configuration:

```
Atwx\SilverGateClient\Services\TokenService:
  public_key: |
    -----BEGIN PUBLIC KEY-----
    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...
    -----END PUBLIC KEY-----
```

Usage
-----

[](#usage)

### Adding a Managed Site

[](#adding-a-managed-site)

1. Log into your Silverstripe admin
2. Navigate to "SilverGate Manager" in the admin menu
3. Click "Add Managed Site"
4. Enter the domain name (e.g., `example.com`)
5. Save - a key pair is automatically generated
6. Copy the configuration from the "Help" tab to your client site

### Logging Into a Managed Site

[](#logging-into-a-managed-site)

**From the Admin Interface:**

1. Navigate to "SilverGate Manager"
2. Find the site you want to access
3. Click the "Login" button next to the site

**From the Edit Form:**

1. Open the managed site record
2. Click the "Login" button in the actions area

The system will redirect you to the client site with a secure JWT token, automatically logging you in.

### Regenerating Key Pairs

[](#regenerating-key-pairs)

If a key pair is compromised or needs to be rotated:

1. Open the managed site record
2. Click "Regenerate Key Pair" in the actions area
3. Confirm the action
4. Update the public key configuration on the client site

⚠️ **Warning**: Regenerating a key pair will invalidate the previous keys. Update the client site configuration immediately.

Permissions
-----------

[](#permissions)

The module provides three permission levels:

PermissionDescriptionGrants Access To`SILVERGATE_VIEW_SITES`View managed sitesRead-only access to site list`SILVERGATE_EDIT_SITES`Create/Edit sitesCreate, edit, delete sites; regenerate keys`SILVERGATE_LOGIN`Login to sitesUse login functionality to access managed sitesAssign permissions in **Security &gt; Groups** to control user access.

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance82

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

 Bus Factor1

Top contributor holds 93.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

94d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/64d979993815fa2d2ea95b3fd72b4f43e95a631ce569f4f1c0330786971b5fc2?d=identicon)[adiwidjaja](/maintainers/adiwidjaja)

![](https://www.gravatar.com/avatar/93923ef0465973629a030354b26149f859fabc350602114f3520bd37c0f6b195?d=identicon)[Zazama](/maintainers/Zazama)

![](https://www.gravatar.com/avatar/63d164bab71fc011430a89319c7e170995fa494d7d122feaed5a370f39c89d12?d=identicon)[HenrikBormann](/maintainers/HenrikBormann)

---

Top Contributors

[![Zazama](https://avatars.githubusercontent.com/u/7694808?v=4)](https://github.com/Zazama "Zazama (14 commits)")[![HenrikBormann](https://avatars.githubusercontent.com/u/88386045?v=4)](https://github.com/HenrikBormann "HenrikBormann (1 commits)")

---

Tags

silverstripecmsmoduleloginmanagementsitessilverstripe-gateatwx

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/atwx-silverstripe-gate-manager/health.svg)

```
[![Health](https://phpackages.com/badges/atwx-silverstripe-gate-manager/health.svg)](https://phpackages.com/packages/atwx-silverstripe-gate-manager)
```

###  Alternatives

[silverstripe/cms

The SilverStripe Content Management System

5163.4M1.3k](/packages/silverstripe-cms)[axyr/silverstripe-adminlogin

Use a custom login screen to log in to the admin section

165.8k](/packages/axyr-silverstripe-adminlogin)[silverstripe/mfa

Enable multi-factor authentication with fallback codes

10346.1k8](/packages/silverstripe-mfa)[silverstripe/contentreview

Flags pages for periodical author review (incl. reporting)

22264.3k4](/packages/silverstripe-contentreview)[bigfork/silverstripe-oauth-login

SilverStripe logins via OAuth2, using the PHP League's OAuth2 client

1794.7k2](/packages/bigfork-silverstripe-oauth-login)[froog/silvergraph

Generates data model visualisations from SilverSripe DataObjects, displaying database fields, relations and ancestry

425.7k](/packages/froog-silvergraph)

PHPackages © 2026

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