ssm.ro Docs
Security, Infrastructure & OperationsApplication Security

Secure SDLC

Secure development practices: PR review, SAST static analysis, staging testing, automated deploy

Secure Development Principles

The SSM.ro platform integrates security into every stage of the software development lifecycle (SDLC), not just as a final check.

Development Pipeline

1. Code written by developer (local)
       │ Optional local static SAST analysis

2. Pull Request created on GitHub
       │ Mandatory code review by another developer
       │ SAST static analysis + SCA dependency scanning in CI

3. Testing in Staging environment (internal, not publicly exposed)
       │ Functionality verified
       │ Relevant security scenarios verified

4. Merge into main branch (PR approved)


5. Automatic Build & Deploy to Heroku
       │ Rolling restart of dynos

6. Production monitoring (New Relic + Sentry)

Security Controls in the SDLC

StageControl
Source codeSAST static analysis — detects vulnerabilities in application code
DependenciesSCA dependency scanning — detects vulnerabilities in packages
Code reviewMandatory PR review — at least one other developer approves any change
Branch protectionNo direct merges into main — changes go through PR
StagingFull testing before production — staging does not receive real data
DeployAutomated GitHub → Heroku pipeline — no manual steps that could introduce errors
RollbackVersioned releases — one-click rollback to any previous release
MonitoringNew Relic + Sentry — immediate detection of production regressions

Built-in Framework Protections

The platform's web framework provides automatic protections:

  • Parameterized ORM — parameterized queries (SQL injection impossible via the ORM)
  • HTML auto-escaping — output is automatically escaped (XSS prevented automatically)
  • CSRF protection — CSRF token generated and validated on every state-changing request
  • Input validation — explicit allow-listing of user input
  • HTTP security headers — configured centrally: HSTS, X-Frame-Options, etc.

Separate Environments

  • Development — local on the developer's workstation; not exposed to the internet
  • Staging — internal, not publicly exposed; access restricted via HTTP Basic Auth; test data only
  • Productionappssm.ro; real data; HTTPS enforced; active monitoring

Production data is never copied to staging.

Secrets Management in Development

  • Production secrets are not accessible in development or staging
  • Each environment has its own set of Heroku config vars
  • Secrets are not included in .env files committed to the repository