AUTHENTICATION.md #1

  • //
  • guest/
  • russell_jackson/
  • sdp/
  • Server/
  • Unix/
  • p4/
  • common/
  • bin/
  • triggers/
  • AUTHENTICATION.md
  • Markdown
  • View
  • Commits
  • Open Download .zip Download (2 KB)

Trigger authentication configuration

Set configuration in the environment inherited by the server's trigger processes. Export it from the service startup environment; an export only in an administrator's interactive terminal will not change an already running server. Existing defaults are retained so an existing configured installation can migrate one setting at a time. The sample hosts/domains and RADIUS secret are examples and must be replaced for an actual deployment.

Variable Used by Default
SDP_AUTH_P4 RADIUS check, Incident check RADIUS check: /p4/common/bin/p4; Incident check: instance binary
SDP_AUTH_AD_HOSTS RADIUS check ldap://ad.company.com; whitespace-separated hosts
SDP_AUTH_AD_DOMAIN RADIUS check YOURDOMAIN\
SDP_AUTH_SERVICE_USERS RADIUS check /p4/common/bin/triggers/serviceusers.txt
SDP_AUTH_LOCAL_PASSWORDS RADIUS check /p4/common/bin/triggers/local.passwd
SDP_AUTH_RADIUS_SERVERS RADIUS check/test server1 server2 server3; whitespace-separated hosts
SDP_AUTH_RADIUS_SECRET RADIUS check/test your_shared_secret
SDP_AUTH_RADIUS_SECRET_FILE RADIUS check/test Unset; when set, takes precedence over the secret environment variable
SDP_AUTH_RADIUS_DICTIONARY RADIUS check/test Auth check: /p4/common/bin/triggers/dictionary; test: adjacent dictionary
SDP_AUTH_ERROR_LOG RADIUS check /p4/common/bin/triggers/rad_errors.log

A RADIUS secret file contains the shared secret as bytes, optionally ending with a newline. Restrict it to the service account (for example, mode 0600). The file avoids putting the secret in an environment variable. Local-password and service-user files retain their existing bypass semantics; this update does not change authentication policy.

Incident trigger instance

The existing changelist/user arguments remain valid. Set SDP_INSTANCE in the server environment or add --instance explicitly; the default remains 1.

submitform1_in change-submit //depot/somepath/... "/p4/common/bin/triggers/submit_form_1_in.py %changelist% %user% --instance blue"

The selected instance controls both p4master_run and the default instance P4 binary. SDP_AUTH_P4 can override that binary path. Offline tests mock every P4/LDAP/RADIUS operation; no credentials or live authentication services are exercised by the regression suite.

# Trigger authentication configuration

Set configuration in the environment inherited by the server's trigger processes. Export it from the service startup environment; an export only in an administrator's interactive terminal will not change an already running server. Existing defaults are retained so an existing configured installation can migrate one setting at a time. The sample hosts/domains and RADIUS secret are examples and must be replaced for an actual deployment.

| Variable | Used by | Default |
| --- | --- | --- |
| `SDP_AUTH_P4` | RADIUS check, Incident check | RADIUS check: `/p4/common/bin/p4`; Incident check: instance binary |
| `SDP_AUTH_AD_HOSTS` | RADIUS check | `ldap://ad.company.com`; whitespace-separated hosts |
| `SDP_AUTH_AD_DOMAIN` | RADIUS check | `YOURDOMAIN\` |
| `SDP_AUTH_SERVICE_USERS` | RADIUS check | `/p4/common/bin/triggers/serviceusers.txt` |
| `SDP_AUTH_LOCAL_PASSWORDS` | RADIUS check | `/p4/common/bin/triggers/local.passwd` |
| `SDP_AUTH_RADIUS_SERVERS` | RADIUS check/test | `server1 server2 server3`; whitespace-separated hosts |
| `SDP_AUTH_RADIUS_SECRET` | RADIUS check/test | `your_shared_secret` |
| `SDP_AUTH_RADIUS_SECRET_FILE` | RADIUS check/test | Unset; when set, takes precedence over the secret environment variable |
| `SDP_AUTH_RADIUS_DICTIONARY` | RADIUS check/test | Auth check: `/p4/common/bin/triggers/dictionary`; test: adjacent `dictionary` |
| `SDP_AUTH_ERROR_LOG` | RADIUS check | `/p4/common/bin/triggers/rad_errors.log` |

A RADIUS secret file contains the shared secret as bytes, optionally ending with a newline. Restrict it to the service account (for example, mode 0600). The file avoids putting the secret in an environment variable. Local-password and service-user files retain their existing bypass semantics; this update does not change authentication policy.

## Incident trigger instance

The existing changelist/user arguments remain valid. Set `SDP_INSTANCE` in the server environment or add `--instance` explicitly; the default remains `1`.

```text
submitform1_in change-submit //depot/somepath/... "/p4/common/bin/triggers/submit_form_1_in.py %changelist% %user% --instance blue"
```

The selected instance controls both `p4master_run` and the default instance P4 binary. `SDP_AUTH_P4` can override that binary path. Offline tests mock every P4/LDAP/RADIUS operation; no credentials or live authentication services are exercised by the regression suite.
# Change User Description Committed
#1 34004 Russell C. Jackson (Rusty) Improve SDP backup/recovery, Maintenance, logging and cloud operation.

Add owned checkpoint locks, recovery-aware retention, preserved database switches,
bounded cleanup and coordinated AWS/Azure snapshots. Fix service-user password
initialization, edge staging, standby promotion state parsing, proxy cache setup,
typed depot verification and historical-server configuration/error handling.
Remove unused OTP programs; keep Windows removed, server.locks cleanup and the
journal-count condition unchanged. Add no global shell strict modes.

Update operational documentation and add reproducible mkdirs.sh/mkdirs.cfg
container assurance. Validate Ubuntu 26.04 and UBI 8.10/9.8/10.2 across both Python
runtimes: 44 stages; 428 offline tests per runtime/OS, zero offline skips;
19 deployed-archive comparisons per combination. Three six-node topology runs
pass all 30 recovery/failure scenarios. P4D 2023.1 through 2026.1 on UBI 8/9
pass all 14 cells and 98 scenarios. Static, documentation and provenance checks
pass. Containers do not certify every fleet kernel, patch build or integration.

Tested source manifest SHA-256:
e1a23e17b8ced8c1148d9a250589977c6f6e98606bf2a81dc3ff5d7c909e3695
Deployed comparison archive SHA-256:
1bd23217356ee3808e040d39aea5be9519bda7c8f2b4924656a70aff8ad7293a