diff --git a/wiki/clients/birth-biologic.md b/wiki/clients/birth-biologic.md new file mode 100644 index 0000000..3b6757d --- /dev/null +++ b/wiki/clients/birth-biologic.md @@ -0,0 +1,130 @@ +--- +type: client +name: birth-biologic +display_name: BirthBiologic +last_compiled: 2026-05-24 +compiled_by: DESKTOP-0O8A1RL/claude-main +sources: + - clients/birth-biologic/session-logs/2026-04-21-session.md +backlinks: + - projects/gururmm +--- + +# BirthBiologic + +## Profile + +- **Company type:** Corporate (exact industry not documented — biological/healthcare services implied by name and SharePoint site structure: Donor Services, Quality Department, Birth Biologic Activity Reports) +- **Contract type:** [unverified — MSP-managed implied; no explicit contract type documented] +- **Key contacts:** + - Annise — primary client contact for SharePoint migration; no last name or email documented + - sysadmin@birthbiologic.com — M365 shared admin account; M365 Business Premium license assigned 2026-04-21 +- **Billing rate:** [unverified] +- **Syncro ticket:** #109277420 (Datto Workplace to SharePoint Migration; assigned to Mike Swanson, user_id 1735; contact: Annise; due 2026-04-22) +- **Syncro customer ID:** [unverified — not documented in available session logs] + +## Infrastructure + +### Servers & Services + +| Host | IP | Role | OS | Notes | +|---|---|---|---|---| +| BB-SERVER | [unverified] | On-premise Windows server | Windows Server 2016 | GuruRMM agent installed 2026-04-21; used as command channel for Datto→SharePoint migration script execution | + +### Email & Identity + +- **M365 tenant:** birthbiologic.com (tenant ID: [unverified — "not yet looked up" as of 2026-04-21 session]) +- **License:** M365 Business Premium (SKU `cbdc14ab-d96c-4132-b7f4-1f3a3a819bb4`) assigned to sysadmin@birthbiologic.com; includes EMS (standalone EMS removed after upgrade) +- **MFA status:** [unverified] +- **ACG remediation tool consent status (as of 2026-04-21):** + - Security Investigator: consented + - Tenant Admin (`709e6eed-0711-4875-9c44-2d3518c47063`): consented + - Exchange Operator: NOT consented + - User Manager: NOT consented + - Defender Add-on: NOT consented +- **sysadmin SharePoint role:** sysadmin@birthbiologic.com confirmed as SharePoint admin (required for SPMT destination access) +- **Note:** sysadmin@birthbiologic.com did not have a SharePoint/M365 license prior to 2026-04-21. For SharePoint app-only access, use Tenant Admin app with `Sites.ReadWrite.All` (no user license required for app-only). + +### File Storage + +- **Pre-migration:** Datto Workplace (on-premise network file server, accessed from BB-SERVER) +- **Post-migration target:** Microsoft SharePoint (M365) +- **Migration tool:** Custom PowerShell script (`clients/birth-biologic/scripts/migrate-datto-to-sharepoint.ps1`) + SPMT for bulk folders + +### SharePoint Site Map + +| Datto Folder | SharePoint Site | Notes | +|---|---|---| +| Admin | birthbiologic.sharepoint.com/sites/Admin | Migrated via SPMT | +| Birth Biologic Activity Reports | birthbiologic.sharepoint.com/sites/Admin | Same site as Admin; SPMT preserves source folder name as subfolder | +| Donor Services | birthbiologic.sharepoint.com/sites/DonorServices | Migrated via SPMT | +| Quality Department | birthbiologic.sharepoint.com/sites/QualityDepartment | Migrated via SPMT | +| Supply Management | birthbiologic.sharepoint.com/sites/SupplyManagement | 160/160 files migrated via custom PS script (2026-04-21) | +| ITSvcs | EXCLUDED | ACG-owned folder; not client data | + +Site IDs are hardcoded in `$SITE_MAP` hashtable in the migration script. + +### Network + +- **ISP / WAN:** [unverified] +- **Firewall:** [unverified] +- **VPN:** [unverified] + +## GuruRMM + +- **Client name:** BirthBiologic +- **Client ID:** `da526b38-e832-4159-ab13-a3d94e9897a2` +- **Site name:** Main Office +- **Site code:** `BRIGHT-PEAK-5980` +- **Site ID:** `3b20ef97-c764-4ef8-9154-79c3d5b486f8` +- **Agent enrollment key:** `clients/birthbiologic/gururmm-site-main.sops.yaml` (vault) +- **Install landing page:** `https://rmm.azcomputerguru.com/install/BRIGHT-PEAK-5980` +- **MSI download:** `https://rmm.azcomputerguru.com/sites/3b20ef97-c764-4ef8-9154-79c3d5b486f8/installer` + +### Enrolled Agents + +| Agent | Host | OS | Agent ID | Notes | +|---|---|---|---|---| +| BB-SERVER | BB-SERVER | Windows Server 2016 | [unverified — not captured in session log] | Installed 2026-04-21; used as command channel throughout Datto→SP migration | + +## Access + +- **GuruRMM:** Dashboard → BirthBiologic → Main Office +- **M365 admin:** sysadmin@birthbiologic.com +- **Vault paths:** + - `clients/birthbiologic/gururmm-site-main.sops.yaml` — GuruRMM site enrollment key + - `msp-tools/computerguru-tenant-admin.sops.yaml` → `credentials.credential` — Tenant Admin app secret +- **Tenant Admin app:** client_id `709e6eed-0711-4875-9c44-2d3518c47063`; consent redirect URI must be `https://azcomputerguru.com` (NOT `https://rmm.azcomputerguru.com`) +- **Migration script:** `clients/birth-biologic/scripts/migrate-datto-to-sharepoint.ps1` + +## Patterns & Known Issues + +- **Windows Server 2016 TLS:** BB-SERVER defaults to TLS 1.0. PowerShell scripts must include `[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12` at the top or Graph API calls will fail. +- **GuruRMM command timeout on long-running processes:** The RMM command channel times out on operations running longer than ~300 seconds. An 8 MB PDF upload at ~77 KB/s exceeded this limit during the migration. Workaround: base64-encode file on server, capture stdout, decode and upload locally. +- **SharePoint 409 Conflict on retry:** If a chunked upload session is interrupted, a partial item remains in SharePoint. Subsequent upload sessions against the same path return 409 Conflict. Fix: DELETE the item before creating a new upload session. +- **SPMT requires sysadmin to be SharePoint admin:** SPMT destination access requires the running account to have SharePoint admin rights. Confirm before scheduling future SPMT runs. +- **Syncro comment rendering:** Use `
` for line breaks in Syncro comments. `