ssm.ro Docs
Introduction

System Architecture

Two deployment models — Shared (Heroku + S3) and dedicated Enterprise (AWS); actors, data flows and controls

The SSM.ro Ecosystem

The SSM.ro platform connects all the actors involved in an organization's workplace safety (SSM) management:

ActorPlatform roleActions on the platform
EmployerSuper UserManages the commercial account and organizations; drafts documents; receives notifications and reports
H.R.UserManages personnel documentation; integration via API
Internal SSM ServiceUserDrafts and monitors internal SSM documents
External SSM ServiceUserDrafts and monitors external SSM documents (service-provider companies)
Workplace SupervisorEmployeeReviews and signs documents; does not manage
EmployeeEmployeeReceives training, signs documents, receives notifications
Audit/Control— (read-only)Control access to documentation (read-only)
Beneficiary's Electronic ArchiveDaily export of signed documents via API
Electronic Signature ProviderExternal serviceUsed by the platform for remote electronic signing of digital documents

Deployment Models

SSM.ro is available in two deployment models with distinct technical architectures: Shared Model (SaaS) and Enterprise Model (Dedicated).

Detailed comparison

The complete comparison of the two models (infrastructure, authentication, data isolation, SLA) is on the canonical Deployment Models page. Below are the technical architecture details for each model.


Technical Architecture — Shared Model (SaaS)

Shared Model (SaaS)

This section describes the multi-tenant architecture on Heroku + AWS S3.

Client & Edge Layer

Users (browser/mobile)
    │ HTTPS only

DNS (public resolver)


Heroku Router — TLS termination
    Certificate: Let's Encrypt (automatic renewal)
    TLS 1.2+, HSTS active

Application Platform (Heroku)

ComponentDetails
Web dynosWeb application, autoscaling; authentication: email + password; optional TOTP 2FA (code from an authenticator app or sent by email); per-organization OIDC SSO (optional or exclusive)
Worker DynoAsynchronous jobs: signing orchestration, notifications, daily archive export
Heroku PostgresMain database; TLS in transit, encryption at rest; continuous PITR + daily snapshots (30-day retention); hosts customer activity logs (3 months)
Heroku RedisCache + asynchronous job queue; TLS in transit; private within the Heroku network

AWS Services (Shared Model)

The Shared Model uses AWS microservices for processing, storage and logging, within a shared infrastructure:

ServiceRole
AWS S3 — PrimaryDocument content storage; versioning enabled; SSE; Block-public-access ON; lifecycle delete markers after 100 days
AWS S3 — CRR ReplicaCross-region replica; backup/DR only; no application reads/writes it directly
AWS API GatewayProxy for Lambda microservices; authentication, throttling, logging
AWS LambdaStateless microservice functions (IAM-scoped)
AWS CloudWatch LogsSigning audit log (append-only, encrypted, 5-year retention)

Trusted External Providers

ProviderRole
PostmarkTransactional email (notifications, OTP, password reset, system alerts); HTTPS API, dedicated server token
Electronic Signature ProviderQualified electronic signature provider (eIDAS QTSP); typically receives only the document hash and returns the digital signature; certain providers require the full document to be transmitted for signing; HTTPS authentication via mTLS or API token
New RelicLive logs + APM; alerts on error rates; SaaS
SentryRuntime exception monitoring; alert email; SaaS
OIDC IdP (per organization)Optional or exclusive SSO, per organization; external, managed by the customer

Build & Release Pipeline

GitHub (main branch, mandatory PR review)
    │ webhook on merge

Heroku Build (slug compile, buildpack)


Heroku Release (rolling restart of web + worker dynos)


Versioned releases with one-click rollback

Technical Architecture — Enterprise Model (Dedicated)

Enterprise Model (Dedicated)

This section describes the architecture with dedicated AWS infrastructure per customer.

General Characteristics

  • Dedicated AWS infrastructure per customer — servers and resources are not shared with other customers
  • Customer's own domain clientdomain.ext (e.g. ssm-companie.ro) — not a subdomain on *.appssm.ro; the installation may host one or more organizations on subdomains, with separate data
  • Full white-label — own logo, platform contact details, customized email messages, document headers; the platform appears under the customer's visual identity
  • SSO via SAML — a single configuration for the customer's primary domain; email/password authentication remains available for external accounts; access to organizations is managed internally through roles
  • 99.9% SLA guaranteed monthly availability; maintenance windows negotiated contractually

AWS Services (Enterprise Model)

The Enterprise Model may include, per contractual specifications:

ServiceRole
AWS S3Document content storage (primary + CRR replica)
AWS ECSContainers for the application and asynchronous jobs
AWS API GatewayAPI routes; request authentication/authorization; throttling
AWS LambdaStateless processing functions; IAM-scoped
AWS SESTransactional email (notifications, OTP, system alerts)
AWS CloudWatch LogsSigning audit log (5-year retention; append-only; encrypted)

Data Flows — Shared Model

#Flow
1Employees ↔ SSM.ro Application: authentication, document viewing, signing
2Administrators ↔ SSM.ro Application: authentication, data entry, document upload
3Application ↔ Heroku Postgres: users, employees, document metadata, activity logs (3 months)
4Application ↔ AWS S3 (primary): document content (upload, retrieval)
5Application → Electronic Signature Provider: typically only the document hash; full document if the provider requires it to be transmitted in full
6Electronic Signature Provider → Application: digital signature returned
7Application → Postmark: transactional emails (notifications, OTP, system alerts)
8Application → Tenant's external archive: daily export of documents to the destination chosen by the tenant
9S3 (primary) → S3 (CRR Replica): managed replication for backup/DR
10Postgres → Heroku Backups: continuous PITR + daily snapshots, 30-day retention
11Application → New Relic / Sentry: live application logs and error events
12Application → AWS CloudWatch Logs: audit event generated on every electronic signing

Signing Flow

Standard case (hash-based, privacy-preserving):

  1. The document is hashed locally within the application
  2. Only the hash is sent to the electronic signature provider via HTTPS (mTLS or API token)
  3. The provider returns the digital signature (the signed hash)
  4. The signature is embedded into the PDF document on the platform

Case where the provider requires the full document:

Certain electronic signature providers require the full document (not just the hash) to be transmitted in order to perform the signing. In this case, the document content is transmitted to that provider and leaves the platform.


Cross-Cutting Controls

These controls apply to both models:

  • All external traffic: HTTPS/TLS 1.2+ — certificates with automatic renewal
  • Access to AWS services: least-privilege IAM credentials; secrets are not included in the source code
  • Encryption at rest: database, cache, S3 (primary + replica)
  • Backup & DR: database PITR + daily snapshots; AWS S3 versioning + cross-region replication; release rollback