How JobPhotos protects your data
JobPhotos is designed as a multi-tenant service with separate internal management access and public customer gallery access. Security controls are applied across authentication, Jobber connectivity, storage, and media delivery.
Encrypted transport
Production access is served over HTTPS. Secure cookies are HTTP-only and configured to be sent only over encrypted connections.
Protected Jobber credentials
Jobber OAuth access and refresh tokens are protected at rest using ASP.NET Core Data Protection and are never stored as plain text in application records.
Least-privilege Jobber access
JobPhotos requests only the Jobber scopes needed to discover job media and maintain its app-managed Job links. OAuth access remains controlled by the Jobber administrator.
Tenant isolation
Application data is associated with a tenant, and authenticated management operations verify that the signed-in JobPhotos user has access to that tenant before returning or changing data.
Public gallery separation
Customer galleries use cryptographically random public identifiers rather than sequential database IDs or Jobber IDs. Public endpoints return only published media explicitly marked visible.
Verified Jobber webhooks
Incoming Jobber webhook payloads are authenticated using Jobber's HMAC signature before they are accepted for background processing.
Credential rotation and disconnects
JobPhotos stores newly rotated refresh tokens when Jobber refreshes a connection. APP_DISCONNECT events mark the integration inactive and clear the stored access and refresh credentials.
Media integrity and controlled serving
Ingested media retains source identifiers and SHA-256 hashes. Binary content is stored behind an object-storage abstraction and served through JobPhotos authorization/visibility checks rather than as arbitrary executable web content.
Operational security
JobPhotos separates the public web application from background synchronization work, validates access at the tenant boundary, and uses retryable/idempotent processing so one media failure does not require unsafe manual shortcuts. Secrets and storage credentials are expected to be supplied through secure deployment configuration rather than source control.
Responsible disclosure
If you believe you have found a security issue in JobPhotos, please report it privately to support@jobphotos.co. Please include enough detail for us to reproduce and investigate the issue and avoid accessing data that does not belong to you.
JobPhotos is operated by Gould Innovations, Inc.
JobPhotos does not claim a security certification or compliance attestation unless one is explicitly identified by name.