FOR DISCUSSION03 SEPTEMBER 2026

Prepared for Hassan Allam

Dedicated infrastructure
for hestate.

Your data environment, in accounts you own. This proposal sets out what you provide, where information is stored, and how Sakneen will operate the application.

Explore the requirements
YOU PROVIDE

One MongoDB cluster

Client-owned production database.

Atlas M20 or your own servers · replica set
YOU PROVIDE

One Google Cloud project

An empty project, with billing enabled.

Sakneen provisions the agreed resources
THE PROPOSED OPERATING MODEL
Hassan Allam ownsThe data environment

Database · files · warehouse · job state

Sakneen hosts & operatesThe application

APIs · background workers · releases

Client-owned storage does not mean client-hosted processing. The application accesses your systems through agreed, secured connections.

Proposal status

This is the intended setup, subject to implementation, migration and joint acceptance before production activation. Final scope, service levels and responsibilities will be recorded in the operating agreement.

01

THE STARTING POINT

What we need from you

Hassan Allam provides the accounts and access. Sakneen then configures the database and the agreed cloud resources. Regions, sizing and permissions are confirmed together before provisioning.

MongoDB cluster

Sakneen will configure the application database, users, collections and indexes within the access you approve. Choose either of the hosting options below; the shared requirements apply to both.

ItemProposed requirement
Database onlyMongoDB holds application records, file references and operational state. Offer PDFs, attachments and other file contents remain in Google Cloud Storage with either hosting option; they are not stored on the MongoDB servers.
VersionMongoDB 8.x as the proposed baseline; final version confirmed during compatibility validation.
TopologyA production replica set with at least three data-bearing nodes, supporting transactions and change streams. This applies to either hosting option.
AccessNamed setup access and a separate, least-privilege application identity. Sakneen will provide the access schedule.

Option A · MongoDB Atlas M20

Start at M20 for a validated low-traffic workload and grow with measured demand. MongoDB recommends M30 or higher for production generally; M20 is a lower-cost starting choice, not a capacity guarantee. Planned imports and large workload spikes may need capacity increased in advance.

ItemProposed requirement
Starting tierAtlas M20 is the proposed cost-conscious starting tier for a low-traffic, single-client deployment. On Google Cloud, Atlas lists 3.8 GB RAM and 20 GB default storage per node. Confirm the required storage against the migrated database and indexes before provisioning; these are not self-hosted server specifications.
Auto-scalingEnable compute and storage auto-scaling so Atlas can increase capacity as demand grows. Use M20 as the minimum compute tier and agree a maximum tier that permits growth to M30 or higher before launch. Enable downscaling where supported and where the stored data fits the smaller tier.
Capacity & costAgree storage sizing, scaling settings and budget alerts with Hassan Allam. Scaling changes the bill. Storage growth can require a higher tier and raise the configured maximum, so that maximum is not an absolute spending cap.

MongoDB production guidance · Atlas auto-scaling guidance · Atlas Google Cloud specifications

Option B · Your dedicated servers

MongoDB can run on Hassan Allam’s own infrastructure instead of Atlas. Sakneen connects the application to the agreed replica set and manages the application-level database configuration. These servers host MongoDB only; offer documents and attachments remain in Google Cloud Storage.

ItemProposed requirement
DeploymentUse Hassan Allam-owned dedicated servers or VMs running a three-node, data-bearing MongoDB replica set. Place nodes on separate physical hosts or independent failure domains; multiple VMs on one physical server do not protect against that server failing.
CPU per node2 dedicated vCPUs, reserved for MongoDB.
RAM per node8 GB reserved RAM.
SSD per node100 GB usable, expandable SSD dedicated to MongoDB data, indexes, journal and replication history. Allocate operating-system disks and backup storage separately.
Replica-set capacityThree nodes require 3 × 100 GB SSD allocations. Each holds a copy of the database, so this is not 300 GB of unique data capacity. Leave room on every node for indexes, operational overhead and growth.
Sizing & growthThese figures are a provisional starting allocation, not a measured minimum or a guarantee. Validate existing data, indexes, growth, disk performance, concurrent usage and background jobs before purchase or launch. Hassan Allam resizes servers and storage as needed; Atlas auto-scaling does not apply.
Operations ownerHassan Allam operates the servers and replica set, including server security, OS and MongoDB maintenance, monitoring, backups, restore testing, availability and capacity upgrades. These server operations are outside Sakneen’s scope.

MongoDB replica-set guidance

Google Cloud project

The client project holds the agreed data services. The application runtime and background workers remain hosted by Sakneen. This project is required with either MongoDB hosting option.

ItemProposed requirement
Ownership & billingOne project owned by Hassan Allam, with active billing. No buckets, datasets or queues need to be created in advance.
Resources in scopeCloud Storage, BigQuery, Cloud Tasks, Cloud Logging, Cloud Monitoring, and agreed identity and secret-management resources.
Offer-file storageOffer PDFs and attachments stay in Google Cloud Storage, not on the MongoDB server. Proposed planning allowance: 300 GB for 12 months of new offer files, comprising 240 GB calculated usage and 60 GB contingency. Logs, existing files and additional copies are separate. See Storage & retention below for assumptions and exclusions.
Provisioning accessPermissions to create and manage the agreed services and their access policies. Any elevated setup access is separately agreed.
Ongoing accessA named engineering contact and a separate runtime identity, each limited to its responsibilities. Sakneen will send the identity details securely.
Organisation policiesConfirm that approved external identities, required service agents, resource regions and network connections are permitted.

Storage & retention

For Hassan Allam, the proposed offer-file allowance should be sufficient for 12 months of retention at 1,000 offers per month and 20 MB per offer. The calculation below separates file storage, database capacity and logs so that one allocation is not mistaken for another.

ItemProposed requirement
Workload assumptionOne client producing 1,000 offers each month, with 20 MB of retained file content per offer. These are client-supplied planning inputs, not measured file averages. Calculations use decimal units: 1 GB = 1,000 MB.
Offer files · 12 months1,000 × 20 MB = 20 GB of new files per month; 12 months = 240 GB. A proposed 300 GB GCS planning allowance should cover 12 months at this rate, with 60 GB of contingency (25% above calculated usage). This is an offer-file allowance only, not a measured minimum or a combined files-and-logs allocation.
Application logs · 30 daysPropose a rolling 30-day retention period in Cloud Logging, separate from offer files and MongoDB SSD. The inspected shared environment used 30 days for its default log bucket. A single client’s log volume was not isolated, so no GB allowance or combined monthly total is claimed. Measure client-scoped ingestion and retained usage before finalising the log budget.
Provider audit logs · 400 daysGoogle Cloud’s protected _Required log bucket retains its mandatory audit records for 400 days. This provider-controlled period is separate from the proposed 30-day application-log policy and was also confirmed in the inspected environment.
MongoDB · separate capacityThe proposed 100 GB SSD per self-hosted node holds database records, indexes, journal and replication history—not offer-file contents. Each of the three nodes stores a database copy. This is a provisional starting allocation; no number of months is verified without measuring the starting database size and subsequent growth. Atlas storage is provisioned and monitored separately under Option A.
Additional storageExisting files imported at launch, regenerated or extra attachments beyond 20 MB per offer, retained object versions, soft-deleted objects, backup copies, activity archives and BigQuery data are outside the 240 GB calculation. Size these separately; the 60 GB contingency is not a guarantee that they will fit.

What the inspection established

The 3 September 2026 inspection checked shared-environment GCS storage metrics, project-wide Cloud Logging ingestion and log-bucket retention settings. It did not isolate Hassan Allam’s file sizes, logs or MongoDB growth, or verify GCS lifecycle settings. Shared usage is not a single-client forecast. The 12-month file policy and 300 GB allowance are proposed planning assumptions; the 30-day and 400-day log settings above were observed in the shared environment, not verified for a new client deployment.

How storage works after launch

  1. Starting the server does not fill its disks. Record the starting usage after any migration. GCS holds file objects separately from the database server; the 300 GB figure is a planning allowance, not a VM disk or a reserved bucket size. Storage usage grows as files are retained.
  2. When an offer is saved, the storage is split. Its PDF and attachments are stored in GCS. MongoDB holds the application records and references needed to find those files. A 20 MB offer file does not add 20 MB to each MongoDB node. Database records and operational state still grow independently, and database writes are replicated across the replica set.
  3. Logs have their own destination and lifetime. Agreed application and request logs are delivered to Cloud Logging. MongoDB server diagnostic logs and operating-system logs also need their own rotation and disk allowance on self-hosted servers; the offer-file calculation does not size them. Replication history inside MongoDB is not an application-log archive or a backup.
  4. Retention needs an agreed, implemented policy. A rolling 12-month offer-file policy targets approximately 240 GB of live files at the stated steady rate, only if older files are removed under an approved lifecycle process. Keeping every file instead adds another 240 GB each year. Expiry must be coordinated with application records; deleting a database record must not be assumed to delete its GCS object. Versions, soft deletion and backups may continue to use storage after a live file expires.
  5. Measure and adjust after launch. Sakneen will record the migrated baseline and review client-scoped file growth, log ingestion, database size, indexes and free disk during the first 30 days. Use those measurements to revise the allowance and assess MongoDB capacity before it becomes constrained; do not infer database growth from PDF sizes.
Proposed policy—not an active deletion rule.

Hassan Allam and Sakneen must approve the retention, recovery and deletion requirements before configuration. Updating this proposal does not change any live bucket, database or retention setting. Database records, business audit history and backups require their own agreed policy; they do not automatically expire after 12 months.

Google Cloud object lifecycle guidance · Google Cloud log retention guidance

Scoped access, from the start.

Provisioning access and day-to-day application access are separate. We will agree the necessary permissions; unrestricted organisation-wide access is not a prerequisite. Credentials will be exchanged through an approved secure channel.

02

YOUR DEDICATED DATA ENVIRONMENT

Where your data will live

The following are the target destinations after migration and acceptance. Both application records and the supporting operational stores are included in the isolation checks.

InformationClient-owned destination
Application records

Users, roles, leads, units, projects and organisation settings.

DATABASEYour MongoDB cluster
Operational application state

Background-job payloads and ledger, scheduled-job state, cache, locks, real-time coordination and conversation checkpoints.

DATABASEYour MongoDB cluster
Reporting and retained history

Reporting data and configured audit, activity and completed-job archives. Recent operational history may also remain in MongoDB.

WAREHOUSEYour BigQuery datasets
Files and documents

Media, generated PDFs, retained archive objects and controlled temporary processing files, as agreed for each workflow.

STORAGEYour Cloud Storage buckets
Background dispatch

Queue scheduling and task references. Application job payloads and execution history are held in the dedicated data stores above.

QUEUECloud Tasks in your project
Application and request logs

Delivered to your log bucket under the agreed retention policy. Routing, source exclusions and any other copies are verified before launch.

LOGGINGYour Cloud Logging bucket

Independent visibility, with a defined scope

Metrics for your own data services remain with your providers. Application metrics originate in Sakneen’s hosting environment. Client-facing dashboards or exports, alert recipients, uptime visibility and any retained operational copies will be agreed and validated before go-live.

Backups, temporary files and archived records follow the agreed region and retention policy. Document rendering, private-file delivery and all archive destinations are part of acceptance—not only the primary database.

03

TRANSPARENT BY DESIGN

What remains outside your accounts

Dedicated storage is one part of the service. The following processing, identity and operational boundaries will be documented explicitly; they are not a promise that all information stays exclusively inside your accounts.

APPLICATION PROCESSING

Sakneen-hosted application and workers

The application and background workers will run in a dedicated Sakneen-operated environment and process your data to deliver the product. The hosting region and approved network paths will be agreed. If your requirement also covers where processing occurs, we will confirm that before implementation.

SIGN-IN & IDENTITY

The existing Sakneen identity service

Users can continue signing in through Sakneen’s Auth0 identity service. Identity profiles, authentication records and relevant profile metadata remain with that service. Application user records, roles and permissions will reside in your dedicated database. Identity, access and account-lifecycle requirements are confirmed during setup.

PROVIDER AUDIT RECORDS

Mandatory Google Cloud audit retention

Google Cloud’s protected _Required bucket retains mandatory audit logs for 400 days in the project where those records originate. Its retention cannot be shortened. These records can include administrator identities, resource names and action metadata. They are separate from the application and request logs routed to your project.

Google Cloud retention policy
CONNECTIONS & CONFIGURATION

Controlled access to your systems

The application needs authorised access and configuration identifying your resources. We will agree where secrets are held, who can access them and how they are rotated or revoked. Managed or short-lived credentials will be used where supported; long-lived exported keys are not assumed to be necessary for every service.

EXTERNAL SERVICE PROVIDERS

Only the services agreed for your environment

Analytics, AI and AI tracing, messaging, CRM integrations, document processing, support and monitoring may involve additional providers. Before go-live, each enabled service, account, data category and retention arrangement will be approved. Shared analytics or tracing destinations will be disabled, replaced with client-owned accounts, or explicitly accepted.

Using a client-owned vendor account still involves processing by that vendor. Any such processing remains part of the agreed data-handling scope.

04

A CLEAR OPERATING MODEL

Who is responsible for what

Hassan Allam owns its infrastructure accounts and data. Sakneen owns the application and operates the resources agreed in scope. The proposed division below will be confirmed in the operating agreement.

HAINFRASTRUCTURE OWNER

Hassan Allam

  • Own the cloud and database accounts, billing relationships and provider support arrangements.
  • Approve quotas, capacity changes, network policies and access to client-owned resources.
  • Set retention, backup and recovery requirements, and nominate the responsible data-layer operator.
  • Approve data export and deletion requirements, with the necessary operational cooperation from Sakneen.
  • Maintain agreed access grants and coordinate credential rotation or revocation in advance.
  • For client-hosted MongoDB, operate the servers and replica set: server security, maintenance, monitoring, backups, restore testing, availability and capacity upgrades remain Hassan Allam’s responsibility.
S.APPLICATION OPERATOR

Sakneen

  • Maintain the application, APIs and product features, including the dedicated runtime and workers.
  • Configure application databases, users and indexes, and maintain the agreed Google Cloud resources and access policies. Client-hosted server operations are outside this scope.
  • Manage application releases and migrations, and provide application incident response under the agreed service levels.
  • Configure the agreed application log delivery, monitoring visibility and operational alerts.
  • Investigate issues within approved access and escalate when provider-account action is required.
AGREE TOGETHER BEFORE LAUNCH

Backup execution & restore testing

Recovery targets & incident escalation

Retention, export & deletion procedures

Capacity, costs & change approvals

A data-layer outage can affect the application. The operating agreement should identify a named owner and escalation route for each dependency.

05

FROM PROPOSAL TO PROVISIONING

Your setup checklist

Use this checklist to prepare the infrastructure handoff. Checkmarks are personal planning notes—not confirmation that infrastructure has been verified or the proposal accepted.

PREPARATION TRACKER

Ready when the foundations are.

0 / 8
x
01
02
03
04
05
06
07
08
Saved in this browser only. Your progress is not shared or submitted.

SAKNEEN DELIVERY & JOINT ACCEPTANCE

Before production activation

  1. 1
    Configure and isolate

    Validate every database, worker, queue, file, archive and conversation-state destination. Unavailable client data services must not trigger a fallback to shared Sakneen storage.

  2. 2
    Migrate and reconcile

    Reconcile records, files, retained history and pending jobs. Agree the migration window and rollback procedure.

  3. 3
    Verify end to end

    Test access denial, isolation, document delivery, log routing, monitoring, approved external services and restore compatibility.

  4. 4
    Accept and activate

    Confirm the operating agreement, named owners, incident contacts and acceptance results before enabling the dedicated production environment.

THE NEXT STEP

Align the requirements.
Then build with confidence.

Confirm your technical contact and the checklist above with your Sakneen contact. We will align the access schedule, agreed scope and provisioning plan before work begins.

Review the requirements