From de713b6e82094fa30c5a264e36d770e2f2ac8da0 Mon Sep 17 00:00:00 2001 From: DocTator Date: Thu, 1 May 2025 06:34:03 -0400 Subject: [PATCH] Auto-commit from giteapush.sh at 2025-05-01 06:34:03 --- genesishostingmd/access/account-creation.md | 20 + genesishostingmd/access/account-deletion.md | 13 + genesishostingmd/access/least-priv.md | 20 + genesishostingmd/access/user-roles.md | 18 + .../backups/backup-disaster-recovery.md | 26 + genesishostingmd/backups/backup-integrity.md | 23 + genesishostingmd/backups/backup-policy.md | 29 + .../backups/restore-instructions.md | 32 + genesishostingmd/clients/abuse.md | 27 + .../clients/account-suspension.md | 22 + genesishostingmd/clients/aup.md | 27 + .../clients/refunds-cancellations.md | 24 + .../company/company-code-of-conduct.md | 20 + .../company/company-mission-statement.md | 12 + genesishostingmd/company/company-tos.md | 25 + genesishostingmd/company/dmca.md | 25 + genesishostingmd/company/privacy-policy.md | 26 + genesishostingmd/infra/genesis-shield.md | 24 + .../infra/infra-maintenance-windows.md | 25 + .../infra/infra-monitoring-setup.md | 25 + .../infra/server-naming-convention.md | 19 + genesishostingmd/infra/zfs-strategy.md | 23 + genesishostingmd/provisioning/checklist.md | 23 + .../provisioning/post-deploy-verification.md | 22 + .../provisioning/whmcs-integration.md | 23 + .../security/incident-response.md | 25 + .../security/logging-monitoring.md | 24 + .../security/security-encryption-standards.md | 23 + genesishostingmd/security/security-policy.md | 23 + genesishostingmd/services/azuracast-policy.md | 32 + .../services/directadmin-policy.md | 27 + .../services/domain-management-policy.md | 22 + genesishostingmd/services/ssl-certs.md | 23 + genesishostingmd/services/teamtalk-policy.md | 26 + infra_morale.log | 1 + miscellaneous/cron_backup.log | 3703 +++++++++++++++++ miscellaneous/dbcheck.log | 12 + 37 files changed, 4514 insertions(+) create mode 100644 genesishostingmd/access/account-creation.md create mode 100644 genesishostingmd/access/account-deletion.md create mode 100644 genesishostingmd/access/least-priv.md create mode 100644 genesishostingmd/access/user-roles.md create mode 100644 genesishostingmd/backups/backup-disaster-recovery.md create mode 100644 genesishostingmd/backups/backup-integrity.md create mode 100644 genesishostingmd/backups/backup-policy.md create mode 100644 genesishostingmd/backups/restore-instructions.md create mode 100644 genesishostingmd/clients/abuse.md create mode 100644 genesishostingmd/clients/account-suspension.md create mode 100644 genesishostingmd/clients/aup.md create mode 100644 genesishostingmd/clients/refunds-cancellations.md create mode 100644 genesishostingmd/company/company-code-of-conduct.md create mode 100644 genesishostingmd/company/company-mission-statement.md create mode 100644 genesishostingmd/company/company-tos.md create mode 100644 genesishostingmd/company/dmca.md create mode 100644 genesishostingmd/company/privacy-policy.md create mode 100644 genesishostingmd/infra/genesis-shield.md create mode 100644 genesishostingmd/infra/infra-maintenance-windows.md create mode 100644 genesishostingmd/infra/infra-monitoring-setup.md create mode 100644 genesishostingmd/infra/server-naming-convention.md create mode 100644 genesishostingmd/infra/zfs-strategy.md create mode 100644 genesishostingmd/provisioning/checklist.md create mode 100644 genesishostingmd/provisioning/post-deploy-verification.md create mode 100644 genesishostingmd/provisioning/whmcs-integration.md create mode 100644 genesishostingmd/security/incident-response.md create mode 100644 genesishostingmd/security/logging-monitoring.md create mode 100644 genesishostingmd/security/security-encryption-standards.md create mode 100644 genesishostingmd/security/security-policy.md create mode 100644 genesishostingmd/services/azuracast-policy.md create mode 100644 genesishostingmd/services/directadmin-policy.md create mode 100644 genesishostingmd/services/domain-management-policy.md create mode 100644 genesishostingmd/services/ssl-certs.md create mode 100644 genesishostingmd/services/teamtalk-policy.md create mode 100644 infra_morale.log diff --git a/genesishostingmd/access/account-creation.md b/genesishostingmd/access/account-creation.md new file mode 100644 index 0000000..12fd857 --- /dev/null +++ b/genesishostingmd/access/account-creation.md @@ -0,0 +1,20 @@ +# Account Creation Policy + +## Customer Accounts + +- Created automatically via WHMCS upon signup +- Email verification is required before service activation +- Strong passwords (minimum 10 characters) are enforced +- 2FA is recommended and required for admin-facing services + +## Staff/Admin Accounts + +- Created manually by Super Admin only +- Must use SSH keys for server access +- Access logs are enabled and monitored +- Each staff account must be linked to an internal email + +## Account Naming Convention + +- Customers: `client_{username}` +- Admins: `admin.{firstname}` diff --git a/genesishostingmd/access/account-deletion.md b/genesishostingmd/access/account-deletion.md new file mode 100644 index 0000000..71fd0df --- /dev/null +++ b/genesishostingmd/access/account-deletion.md @@ -0,0 +1,13 @@ +# Account Deletion Policy + +## Customer Accounts + +- Users may request account deletion via WHMCS support ticket +- Data is retained for 30 days post-termination (unless legally required) +- Backups including user data are purged after 30 days + +## Internal Accounts + +- Deactivated immediately upon staff departure or role change +- SSH keys, DirectAdmin access, and database credentials revoked +- Logs associated with the account are retained for audit purposes diff --git a/genesishostingmd/access/least-priv.md b/genesishostingmd/access/least-priv.md new file mode 100644 index 0000000..00f85ac --- /dev/null +++ b/genesishostingmd/access/least-priv.md @@ -0,0 +1,20 @@ +# Least Privilege Policy + +Genesis Hosting enforces least privilege access for all systems. + +## Principles + +- Users are given the minimum level of access necessary to perform their work +- Admin tools are isolated by function (e.g., billing vs. system access) +- Escalation of privileges must be requested, documented, and time-bound + +## Tools in Use + +- WHMCS permissions are restricted by group +- SSH access is limited using `AllowUsers` and firewalled IPs +- TeamTalk server admins are rotated and audited monthly + +## Review Cycle + +- Access roles are reviewed quarterly +- Logs of access changes are stored and rotated every 90 days diff --git a/genesishostingmd/access/user-roles.md b/genesishostingmd/access/user-roles.md new file mode 100644 index 0000000..0f485f3 --- /dev/null +++ b/genesishostingmd/access/user-roles.md @@ -0,0 +1,18 @@ +# User Roles + +Genesis Hosting Technologies uses Role-Based Access Control (RBAC) to ensure that users only have access to what they need. + +## Role Definitions + +| Role | Description | Examples | +|----------------|----------------------------------------------------------|----------------------------------| +| Customer | End users with access to services they’ve purchased | DirectAdmin clients, Streamers | +| Support Staff | Limited admin functions for resolving client issues | Helpdesk, WHMCS support agents | +| Administrator | Full access to provision, maintain, and modify services | Infrastructure admins | +| Super Admin | Root-level access to all systems | Owner/Lead Engineer | + +## Guidelines + +- Roles are assigned during onboarding. +- Access levels are reviewed quarterly. +- No one should hold higher access than required for their duties. diff --git a/genesishostingmd/backups/backup-disaster-recovery.md b/genesishostingmd/backups/backup-disaster-recovery.md new file mode 100644 index 0000000..18b8d67 --- /dev/null +++ b/genesishostingmd/backups/backup-disaster-recovery.md @@ -0,0 +1,26 @@ +# Disaster Recovery Plan + +Genesis Hosting is prepared to recover core systems from catastrophic failure. + +## Recovery Objectives + +- **RPO (Recovery Point Objective)**: 24 hours +- **RTO (Recovery Time Objective)**: 4 hours for customer services + +## Full Recovery Flow + +1. Triage the affected systems +2. Identify last successful backup or snapshot +3. Restore individual services: + - DNS + - WHMCS + - DirectAdmin + - AzuraCast + - TeamTalk +4. Run post-restore validation scripts +5. Notify customers of incident and resolution + +## DR Testing + +- Simulated quarterly +- Logs retained in `/var/log/genesisdr.log` diff --git a/genesishostingmd/backups/backup-integrity.md b/genesishostingmd/backups/backup-integrity.md new file mode 100644 index 0000000..ced96f2 --- /dev/null +++ b/genesishostingmd/backups/backup-integrity.md @@ -0,0 +1,23 @@ +# Backup Integrity + +We verify all backups regularly to ensure they are complete, uncorrupted, and restorable. + +## Weekly Tasks + +- ZFS scrubs for all pools +- Hash checks (SHA-256) for tarballs and dumps +- rsync `--checksum` verification for remote mirrors + +## Alerts + +- Email/Mastodon alert if: + - ZFS reports checksum errors + - Scheduled backup is missing + - Remote sync fails or lags > 24h + +## Tools Used + +- `zfs scrub` +- `sha256sum` + custom validation script +- rclone sync logs +- Telegram bot and Genesis Shield notifications diff --git a/genesishostingmd/backups/backup-policy.md b/genesishostingmd/backups/backup-policy.md new file mode 100644 index 0000000..6bd0de0 --- /dev/null +++ b/genesishostingmd/backups/backup-policy.md @@ -0,0 +1,29 @@ +# Backup Policy + +Genesis Hosting Technologies maintains regular backups to ensure customer data and internal infrastructure are recoverable in the event of failure, corruption, or disaster. + +## Backup Schedule + +| System | Frequency | Retention | Method | +|----------------|-----------|-----------|------------------| +| DirectAdmin | Daily | 7 Days | rsync + tarball | +| WHMCS | Daily | 14 Days | Encrypted dump | +| AzuraCast | Daily | 7 Days | Docker volume snapshot + config export | +| TeamTalk | Daily | 7 Days | XML + config archive | +| Full VMs | Weekly | 4 Weeks | ZFS snapshots or Proxmox backups | +| Offsite Backups| Weekly | 4 Weeks | Rsync to remote ZFS or object storage | + +## Retention Policy + +- Daily: 7 days +- Weekly: 4 weeks +- Monthly: Optional, for specific business data + +## Encryption + +- Backups are encrypted at rest (AES-256) +- Transfers to remote locations use SSH or TLS + +## Notes + +- No backup occurs on client plans marked "opt-out" diff --git a/genesishostingmd/backups/restore-instructions.md b/genesishostingmd/backups/restore-instructions.md new file mode 100644 index 0000000..7738466 --- /dev/null +++ b/genesishostingmd/backups/restore-instructions.md @@ -0,0 +1,32 @@ +# Restore Instructions + +The following steps outline how to restore data for each supported service. + +## DirectAdmin + +1. Access DA panel as admin +2. Go to Admin Backup/Transfer +3. Select user and backup date +4. Click "Restore" + +## WHMCS + +1. SSH into WHMCS server +2. Restore from encrypted MySQL dump +3. Restart `php-fpm` and `nginx` + +## AzuraCast + +1. Stop all Docker containers +2. Replace `station_data` and `config` volumes +3. Restart stack via `docker-compose up -d` + +## TeamTalk + +1. Replace configuration file (`tt5srv.xml`) +2. Restart TeamTalk server + +## VM-Level Restore (ZFS) + +1. `zfs rollback poolname/dataset@snapshotname` +2. Verify service health and logs diff --git a/genesishostingmd/clients/abuse.md b/genesishostingmd/clients/abuse.md new file mode 100644 index 0000000..b23e16e --- /dev/null +++ b/genesishostingmd/clients/abuse.md @@ -0,0 +1,27 @@ +# Abuse Handling Policy + +We take reports of abuse seriously and aim to resolve them quickly. + +## How to Report Abuse + +Send an email to abuse@genesishostingtechnologies.com with: + +- Description of the abuse +- IP or domain involved +- Any relevant logs or screenshots + +## Internal Response Process + +1. Triage within 12 hours +2. Investigate logs and usage +3. Contact the client with 24h to respond +4. Temporary suspension may be issued to prevent further harm + +## DMCA Takedowns + +- We comply with valid DMCA requests +- The client will be notified and given 48h to address or refute + +## Escalation + +Repeat offenders may be permanently banned. diff --git a/genesishostingmd/clients/account-suspension.md b/genesishostingmd/clients/account-suspension.md new file mode 100644 index 0000000..59ebb04 --- /dev/null +++ b/genesishostingmd/clients/account-suspension.md @@ -0,0 +1,22 @@ +# Account Suspension Policy + +Accounts may be suspended for violations of our Acceptable Use Policy, overdue invoices, or abuse complaints. + +## Common Reasons + +- Non-payment (after 5-day grace period) +- Resource abuse or denial-of-service behavior +- Hosting prohibited content +- Violating community guidelines on TeamTalk + +## Suspension Procedure + +- Warning issued via WHMCS ticket and email +- If no resolution within 24–48h, service is suspended +- Admin note added to client profile for audit tracking + +## Reinstatement + +- Suspension is lifted upon payment or resolution +- $5 reactivation fee may apply (for non-payment suspensions) +- Services are not reinstated if terminated due to serious AUP violation diff --git a/genesishostingmd/clients/aup.md b/genesishostingmd/clients/aup.md new file mode 100644 index 0000000..0f3a263 --- /dev/null +++ b/genesishostingmd/clients/aup.md @@ -0,0 +1,27 @@ +# Acceptable Use Policy (AUP) + +This policy outlines the acceptable use of services provided by Genesis Hosting Technologies. + +## Prohibited Activities + +Clients may not use our services to: + +- Host or distribute malware, phishing sites, or spyware +- Send unsolicited email (spam), whether direct or relayed +- Host copyrighted content without permission (DMCA applies) +- Promote hate speech, harassment, or targeted abuse +- Overuse system resources in a way that affects others + +## Special Notes + +- Streaming via AzuraCast must comply with DMCA and public broadcast standards +- TeamTalk users must not harass, dox, or spam other users +- VPNs, proxies, and anonymizing services are not allowed without prior approval + +## Enforcement + +Violations will result in one or more of the following: + +- Warning via email or WHMCS ticket +- Service suspension +- Permanent termination without refund (in egregious cases) diff --git a/genesishostingmd/clients/refunds-cancellations.md b/genesishostingmd/clients/refunds-cancellations.md new file mode 100644 index 0000000..016d8e4 --- /dev/null +++ b/genesishostingmd/clients/refunds-cancellations.md @@ -0,0 +1,24 @@ +# Refunds & Cancellations + +Genesis Hosting Technologies offers a clear refund and cancellation policy. + +## Cancellation + +- Clients may cancel via WHMCS at any time +- Cancellation before next billing date avoids future charges +- No prorated refunds for unused time unless due to service failure + +## Refunds + +- Full refund within 7 days of initial purchase (DirectAdmin, AzuraCast, TeamTalk) +- Domain registrations, SSL certificates, and add-ons are non-refundable +- No refunds issued for abuse-related suspensions or policy violations + +## Exceptions + +- If we fail to deliver a service or suffer extended downtime (>24h), credit may be issued +- All refund requests are reviewed manually by support + +## How to Request + +Submit a WHMCS ticket with reason for refund diff --git a/genesishostingmd/company/company-code-of-conduct.md b/genesishostingmd/company/company-code-of-conduct.md new file mode 100644 index 0000000..5c2ca65 --- /dev/null +++ b/genesishostingmd/company/company-code-of-conduct.md @@ -0,0 +1,20 @@ +# Code of Conduct + +We maintain a respectful, safe, and inclusive environment for both staff and clients. + +## Expectations + +- Treat all clients and team members with professionalism and courtesy +- Communicate clearly and constructively — even during escalations +- Uphold privacy, security, and transparency at every level +- Follow internal and customer-facing policies at all times + +## Zero Tolerance + +We do not tolerate: + +- Harassment or abuse (verbal, written, or otherwise) +- Discrimination based on identity, ability, or belief +- Intentional sabotage of infrastructure or service integrity + +Violations may result in immediate termination of access or service. diff --git a/genesishostingmd/company/company-mission-statement.md b/genesishostingmd/company/company-mission-statement.md new file mode 100644 index 0000000..8ad1643 --- /dev/null +++ b/genesishostingmd/company/company-mission-statement.md @@ -0,0 +1,12 @@ +# Mission Statement + +At Genesis Hosting Technologies, our mission is to provide secure, reliable, and transparent hosting services with a personal touch. + +We believe that even the smallest teams deserve enterprise-grade infrastructure — without enterprise-grade headaches. + +Our goal is to deliver: + +- Fast, stable hosting environments +- Fair pricing with no upsell games +- Transparent policies and proactive support +- A commitment to data ownership and user privacy diff --git a/genesishostingmd/company/company-tos.md b/genesishostingmd/company/company-tos.md new file mode 100644 index 0000000..2cddbcb --- /dev/null +++ b/genesishostingmd/company/company-tos.md @@ -0,0 +1,25 @@ +# Terms of Service (TOS) + +By using services from Genesis Hosting Technologies, you agree to the following terms: + +## Service Provision + +- Services are delivered as-is, with best-effort uptime and technical support +- Users must abide by our Acceptable Use Policy (AUP) +- Access may be suspended for abuse, non-payment, or security issues + +## Billing & Renewals + +- All services are billed monthly or annually +- Automatic renewal is enabled by default +- Invoices are due within 5 days of issue unless otherwise agreed + +## Termination + +- You may cancel at any time via WHMCS +- We reserve the right to suspend or terminate accounts that violate our policies + +## Liability + +- We are not liable for data loss, service interruptions, or indirect damages +- Backups are provided as a best-effort courtesy unless contractually guaranteed diff --git a/genesishostingmd/company/dmca.md b/genesishostingmd/company/dmca.md new file mode 100644 index 0000000..b6a4097 --- /dev/null +++ b/genesishostingmd/company/dmca.md @@ -0,0 +1,25 @@ +# DMCA Policy + +Genesis Hosting Technologies complies with the Digital Millennium Copyright Act (DMCA). + +## Filing a Takedown Notice + +Email dmca@genesishostingtechnologies.com with: + +- Your contact information +- Description of the copyrighted work +- URL or IP address of the infringing content +- A statement of good faith belief +- A statement of accuracy and authority + +## What Happens Next + +- We review and respond within 48 hours +- The client is notified and given a chance to respond +- If no valid counter-notice is filed, content may be removed or suspended + +## Filing a Counter Notice + +Clients who believe their content was wrongly removed may submit a counter notice with similar contact and justification information. + +We will not tolerate repeated infringement and may terminate accounts accordingly. diff --git a/genesishostingmd/company/privacy-policy.md b/genesishostingmd/company/privacy-policy.md new file mode 100644 index 0000000..380aee0 --- /dev/null +++ b/genesishostingmd/company/privacy-policy.md @@ -0,0 +1,26 @@ +# Privacy Policy + +We respect your privacy and protect your data. + +## What We Collect + +- Account information: name, email, billing address +- Service usage data: IPs, access logs, system metrics +- Communications: support tickets and emails + +## How We Use It + +- Service provisioning and support +- Abuse prevention and system integrity +- Internal analytics (not shared or sold) + +## Data Sharing + +- We do not sell user data +- We may share limited data with trusted providers (e.g., payment processors) +- Law enforcement requests must include valid legal process + +## Data Retention + +- User data is retained as long as the account is active +- Backups are purged per the Backup Policy diff --git a/genesishostingmd/infra/genesis-shield.md b/genesishostingmd/infra/genesis-shield.md new file mode 100644 index 0000000..853f6d9 --- /dev/null +++ b/genesishostingmd/infra/genesis-shield.md @@ -0,0 +1,24 @@ +# Genesis Shield – Security & Threat Monitoring + +Genesis Shield is our custom-built alert and ban system, integrated across our infrastructure. + +## Features + +- Aggregates Fail2Ban logs across all VMs +- Bans pushed in real-time via Mastodon DM and Telegram +- Scripts track: + - Repeated SSH failures + - API abuse + - Web panel brute force attempts + +## Interfaces + +- Terminal dashboard for live bans/unbans +- Role-based control (root/admin only) +- Daily threat summary via Mastodon bot + +## Roadmap + +- WHMCS integration for abuse tickets +- Live threat map by country/IP +- REST API for admin toolkit diff --git a/genesishostingmd/infra/infra-maintenance-windows.md b/genesishostingmd/infra/infra-maintenance-windows.md new file mode 100644 index 0000000..0f48e77 --- /dev/null +++ b/genesishostingmd/infra/infra-maintenance-windows.md @@ -0,0 +1,25 @@ +# Maintenance Window Policy + +To maintain consistency and reduce customer impact, we adhere to a strict maintenance schedule. + +## Standard Window + +- **Every Sunday, 7 PM – 9 PM Eastern** +- Non-emergency changes must occur during this window + +## What’s Allowed + +- OS & kernel updates +- Docker/image upgrades +- ZFS snapshots & cleanup +- Rolling restarts of containers + +## Emergencies + +- Critical security patches can bypass the window +- All emergency changes must be logged and reviewed + +## Notifications + +- Posted on Mastodon at least 1 hour before the window begins +- Clients notified via WHMCS if it will affect their service diff --git a/genesishostingmd/infra/infra-monitoring-setup.md b/genesishostingmd/infra/infra-monitoring-setup.md new file mode 100644 index 0000000..e0f6c16 --- /dev/null +++ b/genesishostingmd/infra/infra-monitoring-setup.md @@ -0,0 +1,25 @@ +# Monitoring Setup + +We use a layered monitoring approach to ensure full visibility and rapid response. + +## Stack + +- **Prometheus** for metrics collection +- **Grafana** for visualization dashboards +- **Fail2Ban** for intrusion attempts +- **Genesis Shield** for aggregated alerts (Telegram + Mastodon) + +## What We Monitor + +| System | Metric Examples | +|----------------|--------------------------------------------| +| PostgreSQL | Replication lag, disk usage, active queries | +| Web Servers | HTTP response time, TLS errors | +| MinIO / Assets | Cache hit ratio, sync status | +| Docker Hosts | Container uptime, memory pressure | + +## Alerting + +- Telegram: Real-time infra alerts +- Mastodon bot: Daily summaries and status posts +- Fallback email alerts for critical failures diff --git a/genesishostingmd/infra/server-naming-convention.md b/genesishostingmd/infra/server-naming-convention.md new file mode 100644 index 0000000..0097b1c --- /dev/null +++ b/genesishostingmd/infra/server-naming-convention.md @@ -0,0 +1,19 @@ +# Server Naming Convention + +To reduce confusion and improve clarity, we follow a clear and themed naming structure. + +## Naming Style + +Examples: + +- `krang.internal` – Master backend server +- `replica.db3.sshjunkie.com` – Staging PostgreSQL replica +- `shredderv2` – ZFS backup server +- `anthony` – Ansible control node +- `nexus` – Main ZFS pool server for assets + +## Guidelines + +- Avoid generic names (`server1`, `host123`) +- Use themed names (e.g., TMNT characters for core infrastructure) +- Include environment tags where needed (`-test`, `-prod`) diff --git a/genesishostingmd/infra/zfs-strategy.md b/genesishostingmd/infra/zfs-strategy.md new file mode 100644 index 0000000..a69a1fa --- /dev/null +++ b/genesishostingmd/infra/zfs-strategy.md @@ -0,0 +1,23 @@ +# ZFS Strategy + +ZFS is used across Genesis Hosting Technologies for performance, integrity, and snapshot-based backup operations. + +## Pool Layout + +- RAIDZ1 or mirrored vdevs depending on use case +- Dataset naming: `genesisassets-secure`, `genesisshows-secure`, etc. +- Dedicated pools for: + - Mastodon media + - Client backups + - Internal scripts and logs + +## Snapshots + +- Hourly: last 24 hours +- Daily: last 7 days +- Weekly: last 4 weeks + +## Send/Receive + +- Used for offsite replication to Servarica and backup nodes +- Verified using checksums and `zfs receive -F` diff --git a/genesishostingmd/provisioning/checklist.md b/genesishostingmd/provisioning/checklist.md new file mode 100644 index 0000000..13741d3 --- /dev/null +++ b/genesishostingmd/provisioning/checklist.md @@ -0,0 +1,23 @@ +# Provisioning Checklist + +This checklist is followed every time a new service is deployed. + +## Pre-Provisioning + +- [ ] Verify order and payment in WHMCS +- [ ] Confirm product mapping is correct +- [ ] Check available server resources + +## Provisioning + +- [ ] Trigger appropriate script/module +- [ ] Log provisioning result +- [ ] Assign DNS entries if applicable +- [ ] Generate Let’s Encrypt SSL if public-facing + +## Post-Provisioning + +- [ ] Send welcome email via WHMCS +- [ ] Confirm monitoring alert is active +- [ ] Test login credentials and endpoints +- [ ] Label service with client ID in Grafana/Prometheus diff --git a/genesishostingmd/provisioning/post-deploy-verification.md b/genesishostingmd/provisioning/post-deploy-verification.md new file mode 100644 index 0000000..d46f727 --- /dev/null +++ b/genesishostingmd/provisioning/post-deploy-verification.md @@ -0,0 +1,22 @@ +# Post-Deployment Verification + +All services go through a post-deploy QA check to ensure they're live and stable. + +## Verification Tasks + +- [ ] Service reachable from public IP or internal route +- [ ] DNS resolves correctly (for domains/subdomains) +- [ ] SSL certificate is active and trusted +- [ ] Admin login works as expected +- [ ] Usage quotas correctly applied (disk, users, bandwidth) + +## Monitoring + +- [ ] Add to Prometheus for service-specific metrics +- [ ] Set alert thresholds (e.g., disk > 80%) +- [ ] Confirm Telegram/Mastodon alert webhook is functional + +## Documentation + +- [ ] Log final status in WHMCS admin notes +- [ ] Store internal service details in `genesis-inventory.yaml` diff --git a/genesishostingmd/provisioning/whmcs-integration.md b/genesishostingmd/provisioning/whmcs-integration.md new file mode 100644 index 0000000..3f5663d --- /dev/null +++ b/genesishostingmd/provisioning/whmcs-integration.md @@ -0,0 +1,23 @@ +# WHMCS Integration + +WHMCS handles client billing, service provisioning, and support workflows. + +## Services Integrated + +| Service | Method | +|--------------|---------------------------------| +| DirectAdmin | Built-in WHMCS module | +| AzuraCast | Custom provisioning script | +| TeamTalk | API + XML user patching scripts | + +## Auto-Provisioning Steps + +1. Client signs up and completes payment +2. WHMCS triggers product-specific hook +3. Script/module provisions the service +4. Welcome email is sent with credentials + +## Logging & Troubleshooting + +- Logs stored at `/var/log/whmcs-hooks.log` +- Errors generate internal ticket automatically if provisioning fails diff --git a/genesishostingmd/security/incident-response.md b/genesishostingmd/security/incident-response.md new file mode 100644 index 0000000..29f7ce5 --- /dev/null +++ b/genesishostingmd/security/incident-response.md @@ -0,0 +1,25 @@ +# Incident Response Policy + +This document defines how we detect, respond to, and report security incidents. + +## Response Workflow + +1. Detection via monitoring, alert, or client report +2. Triage severity and affected systems +3. Contain and isolate threat (e.g., suspend access) +4. Notify stakeholders if client-impacting +5. Perform root cause analysis +6. Patch, re-secure, and document the event + +## Timelines + +- Initial triage: within 2 hours +- Client notification (if impacted): within 24 hours +- Final report delivered internally within 72 hours + +## Tools Used + +- Fail2Ban +- Genesis Shield alerting +- Zabbix/Prometheus incident flags +- Manual log reviews (forensic-level) diff --git a/genesishostingmd/security/logging-monitoring.md b/genesishostingmd/security/logging-monitoring.md new file mode 100644 index 0000000..c305627 --- /dev/null +++ b/genesishostingmd/security/logging-monitoring.md @@ -0,0 +1,24 @@ +# Logging & Monitoring Policy + +We collect and monitor system activity to detect threats, enforce accountability, and assist in incident resolution. + +## Log Types + +- SSH login attempts +- WHMCS access logs +- AzuraCast and TeamTalk server logs +- PostgreSQL query and connection logs +- Fail2Ban logs (ban/unban events) + +## Monitoring Tools + +- Prometheus for metrics +- Grafana dashboards for visual alerts +- Genesis Shield (Telegram + Mastodon alerting) +- Manual log review every 7 days + +## Retention + +- General logs: 30 days +- Security-related logs: 90 days minimum +- Logs archived to encrypted ZFS volume diff --git a/genesishostingmd/security/security-encryption-standards.md b/genesishostingmd/security/security-encryption-standards.md new file mode 100644 index 0000000..6d9139c --- /dev/null +++ b/genesishostingmd/security/security-encryption-standards.md @@ -0,0 +1,23 @@ +# Encryption Standards + +Encryption is applied to all data in transit and at rest across Genesis Hosting Technologies infrastructure. + +## In Transit + +- HTTPS via TLS 1.3 (minimum TLS 1.2 for legacy fallback) +- SFTP for all file transfers +- SSH for all administrative access +- rclone with TLS for object storage replication + +## At Rest + +- ZFS encryption on backup pools +- PostgreSQL encryption at the database or filesystem level +- WHMCS and DirectAdmin credentials hashed and salted +- Backups encrypted with AES-256 before remote transfer + +## Key Management + +- SSH keys rotated every 6 months +- Let's Encrypt certs auto-renew every 90 days +- Master encryption keys stored offline and version-controlled diff --git a/genesishostingmd/security/security-policy.md b/genesishostingmd/security/security-policy.md new file mode 100644 index 0000000..7ed282f --- /dev/null +++ b/genesishostingmd/security/security-policy.md @@ -0,0 +1,23 @@ +# Security Policy + +Genesis Hosting Technologies enforces strict security practices across all infrastructure and services to protect client data and maintain service integrity. + +## Core Principles + +- Least privilege for all users and services +- Regular audits and patching +- Encrypted communication and storage +- Real-time monitoring and alerting + +## Enforcement Areas + +- 2FA required for all admin portals +- SSH access limited to key-based logins +- Centralized log collection and review +- All critical assets monitored via Genesis Shield + +## Review Cycle + +- Policies reviewed quarterly +- Logs retained for 30–90 days depending on system +- Incidents reviewed post-mortem with improvements logged diff --git a/genesishostingmd/services/azuracast-policy.md b/genesishostingmd/services/azuracast-policy.md new file mode 100644 index 0000000..3bf3fc4 --- /dev/null +++ b/genesishostingmd/services/azuracast-policy.md @@ -0,0 +1,32 @@ +# AzuraCast Streaming Policy + +## Features + +- Custom stream URLs (via relay or direct) +- Icecast or SHOUTcast available +- AutoDJ + scheduled playlists +- Web-based file upload + schedule + +## Plans & Limits + +| Plan | Storage | Listeners | Bitrate | +|----------|---------|-----------|---------| +| StreamLite | 2 GB | 25 | 128 kbps| +| StreamPro | 10 GB | 100 | 192 kbps| +| StreamMax | 50 GB | 250 | 320 kbps| + +## Fair Usage Policy + +- No nonstop streaming of static loops to inflate uptime +- Long-form live shows should rotate metadata periodically +- Content must not violate copyright laws + +## Backups + +- Daily backups of config + playlists +- Client media backup is optional (paid add-on) + +## Support + +- Stream diagnostics available in client panel +- WHMCS ticket support for outages or playlist issues diff --git a/genesishostingmd/services/directadmin-policy.md b/genesishostingmd/services/directadmin-policy.md new file mode 100644 index 0000000..7d238b2 --- /dev/null +++ b/genesishostingmd/services/directadmin-policy.md @@ -0,0 +1,27 @@ +# DirectAdmin Hosting Policy + +## Features + +- FTP, webmail, MySQL, file manager, and site statistics +- Optional Let's Encrypt SSL enabled by default +- Nightly site + database backups (7-day retention) + +## Plans & Limits + +| Plan | Disk | Bandwidth | Domains | Email Accounts | +|------------|------|-----------|---------|----------------| +| Starter | 5 GB | 100 GB | 1 | 5 | +| Standard | 20 GB| 500 GB | 5 | 25 | +| Unlimited | 100 GB| ∞ | ∞ | ∞ | + +## Abuse Prevention + +- Email rate limits applied to prevent outbound spam +- CPU usage and inode caps enforced +- Suspicious files scanned automatically + +## Support + +- Available via WHMCS ticket system +- Response within 12 business hours + diff --git a/genesishostingmd/services/domain-management-policy.md b/genesishostingmd/services/domain-management-policy.md new file mode 100644 index 0000000..088a009 --- /dev/null +++ b/genesishostingmd/services/domain-management-policy.md @@ -0,0 +1,22 @@ +# Domain Management Policy + +## Registration + +- Domains registered through our WHMCS interface are managed via third-party registrar API +- Registration typically completes within 5 minutes +- WHOIS privacy included by default (where available) + +## Renewals + +- Auto-renew is enabled by default +- Reminders sent 30, 7, and 1 day before expiration + +## Transfers + +- Domains can be transferred in or out with EPP code +- Support required if domain is locked or expired + +## DNS + +- Free DNS hosting included +- Custom DNS records managed through DirectAdmin or WHMCS panel diff --git a/genesishostingmd/services/ssl-certs.md b/genesishostingmd/services/ssl-certs.md new file mode 100644 index 0000000..f6e275c --- /dev/null +++ b/genesishostingmd/services/ssl-certs.md @@ -0,0 +1,23 @@ +# SSL Certificate Policy + +## Free Certificates + +- Let’s Encrypt certificates issued automatically +- Applies to DirectAdmin, AzuraCast, and custom subdomains +- Auto-renews every 60 days with 30-day buffer + +## Premium SSL + +- Custom SSL certs (e.g., EV/OV) available for purchase +- Requires manual install via WHMCS ticket + +## Certificate Management + +- Certbot used for automation +- Custom certs must be supplied in `.crt` + `.key` format +- Broken SSL installs may be reverted to Let’s Encrypt fallback + +## Support + +- Certificate issues resolved within 24h of report +- DNS challenges supported for wildcard certs diff --git a/genesishostingmd/services/teamtalk-policy.md b/genesishostingmd/services/teamtalk-policy.md new file mode 100644 index 0000000..4d2e3ff --- /dev/null +++ b/genesishostingmd/services/teamtalk-policy.md @@ -0,0 +1,26 @@ +# TeamTalk Hosting Policy + +## Features + +- Private and public servers +- Voice chat, file sharing, push-to-talk +- Admin access with room/channel management + +## Plans & Limits + +| Plan | Users | Bitrate Limit | Admin Access | +|--------------|-------|---------------|--------------| +| Basic Chat | 10 | 64 kbps | Yes | +| Pro Voice | 50 | 128 kbps | Yes | +| Broadcast+ | 100 | 256 kbps | Yes | + +## Rules + +- No harassment, spamming, or automated bots without permission +- Abuse may result in temp suspension or permanent ban +- Admins are responsible for moderating their own servers + +## Configuration + +- Clients may request config changes via WHMCS ticket +- Backups of XML configs stored nightly diff --git a/infra_morale.log b/infra_morale.log new file mode 100644 index 0000000..24f27b1 --- /dev/null +++ b/infra_morale.log @@ -0,0 +1 @@ +/bin/sh: 1: /home/doc/genesis-tools/infra_morale/fake_status_bot.rb: Permission denied diff --git a/miscellaneous/cron_backup.log b/miscellaneous/cron_backup.log index dff1c6d..9472b26 100644 --- a/miscellaneous/cron_backup.log +++ b/miscellaneous/cron_backup.log @@ -615548,3 +615548,3706 @@ Uploads to thevault successful. Uploading to ClusterControl controller at doc@clustercontrol.sshjunkie.com:/home/doc/backups Uploads to ClusterControl successful. DONE. Log: /tmp/pgbackup_verify/verify_log_20250501_050001.txt +📂 Ensuring remote path exists... +=== [Thu May 1 06:00:01 AM EDT 2025] Dumping mastodon_production from cluster.db2.genesishostingtechnologies.com === +Creating test database verify_mastodon_production_3971 +Restoring to verify_mastodon_production_3971 +SET +SET +SET +SET +SET + set_config +------------ + +(1 row) + +SET +SET +SET +SET +CREATE FUNCTION +ALTER FUNCTION +SET +SET +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE MATERIALIZED VIEW +ALTER MATERIALIZED VIEW +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE MATERIALIZED VIEW +ALTER MATERIALIZED VIEW +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE MATERIALIZED VIEW +ALTER MATERIALIZED VIEW +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +📸 Creating snapshot: /mnt/backup/images/genesis-tools/2025-05-01_06-00 +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE VIEW +ALTER VIEW +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +COPY 0 +COPY 376 +COPY 1 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 6278 +COPY 0 +COPY 0 +COPY 0 +COPY 6964 +COPY 18 +COPY 10 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 2 +COPY 0 +COPY 3 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 12280 +COPY 0 +COPY 1428 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 12 +COPY 5822 +COPY 0 +COPY 0 +COPY 6 +COPY 934 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 31 +COPY 8 +🔗 Updating 'latest' symlink... +COPY 7930 +COPY 14544 +COPY 0 +COPY 0 +COPY 0 +COPY 1 +COPY 832 +COPY 0 +COPY 32 +COPY 24 +COPY 2709 +COPY 1 +COPY 65 +COPY 1 +COPY 0 +COPY 3893 +COPY 4189 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 11 +COPY 0 +COPY 529 +COPY 18 +COPY 15 +COPY 0 +COPY 4 +COPY 0 +COPY 407 +COPY 6782 +🧹 Pruning snapshots older than 7 days... +COPY 13143 +COPY 0 +✅ KodakMoment complete. +COPY 29478 +COPY 32296 +COPY 2 +COPY 6 +COPY 12033 +COPY 0 +COPY 7168 +COPY 0 +COPY 5 +COPY 4 +COPY 7 +COPY 3 +COPY 5 +COPY 0 +COPY 0 + setval +-------- + 1 +(1 row) + + setval +-------- + 474 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 37602 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 7095 +(1 row) + + setval +-------- + 10 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 35 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 12391 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1515 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 77 +(1 row) + + setval +-------- + 5946 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1027 +(1 row) + + setval +-------- + 1034 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 127 +(1 row) + + setval +-------- + 40 +(1 row) + + setval +-------- + 8089 +(1 row) + + setval +-------- + 14938 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 33 +(1 row) + + setval +-------- + 948 +(1 row) + + setval +-------- + 43 +(1 row) + + setval +-------- + 145 +(1 row) + + setval +-------- + 88 +(1 row) + + setval +-------- + 2727 +(1 row) + + setval +-------- + 33 +(1 row) + + setval +-------- + 161 +(1 row) + + setval +-------- + 33 +(1 row) + + setval +-------- + 831 +(1 row) + + setval +-------- + 4026 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 11 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 132 +(1 row) + + setval +-------- + 15 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 5 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 498 +(1 row) + + setval +-------- + 7003 +(1 row) + + setval +-------- + 13399 +(1 row) + + setval +-------- + 782 +(1 row) + + setval +-------- + 10392 +(1 row) + + setval +-------- + 2 +(1 row) + + setval +-------- + 117406 +(1 row) + + setval +-------- + 12126 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 7290 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 5 +(1 row) + + setval +-------- + 3 +(1 row) + + setval +-------- + 7 +(1 row) + + setval +-------- + 37 +(1 row) + + setval +-------- + 37 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +REFRESH MATERIALIZED VIEW +REFRESH MATERIALIZED VIEW +REFRESH MATERIALIZED VIEW +Row count for 'users' table in verify_mastodon_production_3971: 7 +[PASS] Row count OK for 'users' table in mastodon_production. +[PASS] Checksum verified for mastodon_production. + List of relations + Schema | Name | Type | Owner +--------+-------------------------------------------+-------+---------- + public | account_aliases | table | mastodon + public | account_conversations | table | mastodon + public | account_deletion_requests | table | mastodon + public | account_domain_blocks | table | mastodon + public | account_migrations | table | mastodon + public | account_moderation_notes | table | mastodon + public | account_notes | table | mastodon + public | account_pins | table | mastodon + public | account_relationship_severance_events | table | mastodon + public | account_stats | table | mastodon + public | account_statuses_cleanup_policies | table | mastodon + public | account_warning_presets | table | mastodon + public | account_warnings | table | mastodon + public | accounts | table | mastodon + public | accounts_tags | table | mastodon + public | admin_action_logs | table | mastodon + public | announcement_mutes | table | mastodon + public | announcement_reactions | table | mastodon + public | announcements | table | mastodon + public | annual_report_statuses_per_account_counts | table | mastodon + public | appeals | table | mastodon + public | ar_internal_metadata | table | mastodon + public | backups | table | mastodon + public | blocks | table | mastodon + public | bookmarks | table | mastodon + public | bulk_import_rows | table | mastodon + public | bulk_imports | table | mastodon + public | canonical_email_blocks | table | mastodon + public | conversation_mutes | table | mastodon + public | conversations | table | mastodon + public | custom_emoji_categories | table | mastodon + public | custom_emojis | table | mastodon + public | custom_filter_keywords | table | mastodon + public | custom_filter_statuses | table | mastodon + public | custom_filters | table | mastodon + public | domain_allows | table | mastodon + public | domain_blocks | table | mastodon + public | email_domain_blocks | table | mastodon + public | favourites | table | mastodon + public | featured_tags | table | mastodon + public | follow_recommendation_mutes | table | mastodon + public | follow_recommendation_suppressions | table | mastodon + public | follow_requests | table | mastodon + public | follows | table | mastodon + public | generated_annual_reports | table | mastodon + public | identities | table | mastodon + public | imports | table | mastodon + public | invites | table | mastodon + public | ip_blocks | table | mastodon + public | list_accounts | table | mastodon + public | lists | table | mastodon + public | login_activities | table | mastodon + public | markers | table | mastodon + public | media_attachments | table | mastodon + public | mentions | table | mastodon + public | mutes | table | mastodon + public | notification_permissions | table | mastodon + public | notification_policies | table | mastodon + public | notification_requests | table | mastodon + public | notifications | table | mastodon + public | oauth_access_grants | table | mastodon + public | oauth_access_tokens | table | mastodon + public | oauth_applications | table | mastodon + public | pghero_space_stats | table | mastodon + public | poll_votes | table | mastodon + public | polls | table | mastodon + public | preview_card_providers | table | mastodon + public | preview_card_trends | table | mastodon + public | preview_cards | table | mastodon + public | preview_cards_statuses | table | mastodon + public | relationship_severance_events | table | mastodon + public | relays | table | mastodon + public | report_notes | table | mastodon + public | reports | table | mastodon + public | rules | table | mastodon + public | scheduled_statuses | table | mastodon + public | schema_migrations | table | mastodon + public | session_activations | table | mastodon + public | settings | table | mastodon + public | severed_relationships | table | mastodon + public | site_uploads | table | mastodon + public | software_updates | table | mastodon + public | status_edits | table | mastodon + public | status_pins | table | mastodon + public | status_stats | table | mastodon + public | status_trends | table | mastodon + public | statuses | table | mastodon + public | statuses_tags | table | mastodon + public | tag_follows | table | mastodon + public | tag_trends | table | mastodon + public | tags | table | mastodon + public | terms_of_services | table | mastodon + public | tombstones | table | mastodon + public | unavailable_domains | table | mastodon + public | user_invite_requests | table | mastodon + public | user_roles | table | mastodon + public | users | table | mastodon + public | web_push_subscriptions | table | mastodon + public | web_settings | table | mastodon + public | webauthn_credentials | table | mastodon + public | webhooks | table | mastodon +(101 rows) + +[PASS] mastodon_production: Dump and restore OK. +Cleaned up verify_mastodon_production_3971 + +=== [Thu May 1 06:00:11 AM EDT 2025] Dumping giteaprod from cluster.db2.genesishostingtechnologies.com === +Creating test database verify_giteaprod_29281 +Restoring to verify_giteaprod_29281 +SET +SET +SET +SET +SET + set_config +------------ + +(1 row) + +SET +SET +SET +SET +SET +SET +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +ALTER SEQUENCE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 3 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 0 +COPY 1 +COPY 0 +COPY 0 +COPY 0 + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 3 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + + setval +-------- + 1 +(1 row) + +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +CREATE INDEX +GRANT +ALTER DEFAULT PRIVILEGES +ALTER DEFAULT PRIVILEGES +ERROR: relation "users" does not exist +LINE 1: SELECT count(*) FROM users; + ^ +Row count for 'users' table in verify_giteaprod_29281: +/home/doc/genesis-tools/miscellaneous/bash/dbv1.sh: line 71: [: : integer expression expected +[PASS] Row count OK for 'users' table in giteaprod. +[PASS] Checksum verified for giteaprod. + List of relations + Schema | Name | Type | Owner +--------+---------------------------+-------+----------- + public | access | table | giteauser + public | access_token | table | giteauser + public | action | table | giteauser + public | action_artifact | table | giteauser + public | action_run | table | giteauser + public | action_run_index | table | giteauser + public | action_run_job | table | giteauser + public | action_runner | table | giteauser + public | action_runner_token | table | giteauser + public | action_schedule | table | giteauser + public | action_schedule_spec | table | giteauser + public | action_task | table | giteauser + public | action_task_output | table | giteauser + public | action_task_step | table | giteauser + public | action_tasks_version | table | giteauser + public | action_variable | table | giteauser + public | app_state | table | giteauser + public | attachment | table | giteauser + public | auth_token | table | giteauser + public | badge | table | giteauser + public | branch | table | giteauser + public | collaboration | table | giteauser + public | comment | table | giteauser + public | commit_status | table | giteauser + public | commit_status_index | table | giteauser + public | commit_status_summary | table | giteauser + public | dbfs_data | table | giteauser + public | dbfs_meta | table | giteauser + public | deploy_key | table | giteauser + public | email_address | table | giteauser + public | email_hash | table | giteauser + public | external_login_user | table | giteauser + public | follow | table | giteauser + public | gpg_key | table | giteauser + public | gpg_key_import | table | giteauser + public | hook_task | table | giteauser + public | issue | table | giteauser + public | issue_assignees | table | giteauser + public | issue_content_history | table | giteauser + public | issue_dependency | table | giteauser + public | issue_index | table | giteauser + public | issue_label | table | giteauser + public | issue_user | table | giteauser + public | issue_watch | table | giteauser + public | label | table | giteauser + public | language_stat | table | giteauser + public | lfs_lock | table | giteauser + public | lfs_meta_object | table | giteauser + public | login_source | table | giteauser + public | milestone | table | giteauser + public | mirror | table | giteauser + public | notice | table | giteauser + public | notification | table | giteauser + public | oauth2_application | table | giteauser + public | oauth2_authorization_code | table | giteauser + public | oauth2_grant | table | giteauser + public | org_user | table | giteauser + public | package | table | giteauser + public | package_blob | table | giteauser + public | package_blob_upload | table | giteauser + public | package_cleanup_rule | table | giteauser + public | package_file | table | giteauser + public | package_property | table | giteauser + public | package_version | table | giteauser + public | project | table | giteauser + public | project_board | table | giteauser + public | project_issue | table | giteauser + public | protected_branch | table | giteauser + public | protected_tag | table | giteauser + public | public_key | table | giteauser + public | pull_auto_merge | table | giteauser + public | pull_request | table | giteauser + public | push_mirror | table | giteauser + public | reaction | table | giteauser + public | release | table | giteauser + public | renamed_branch | table | giteauser + public | repo_archiver | table | giteauser + public | repo_indexer_status | table | giteauser + public | repo_license | table | giteauser + public | repo_redirect | table | giteauser + public | repo_topic | table | giteauser + public | repo_transfer | table | giteauser + public | repo_unit | table | giteauser + public | repository | table | giteauser + public | review | table | giteauser + public | review_state | table | giteauser + public | secret | table | giteauser + public | session | table | giteauser + public | star | table | giteauser + public | stopwatch | table | giteauser + public | system_setting | table | giteauser + public | task | table | giteauser + public | team | table | giteauser + public | team_invite | table | giteauser + public | team_repo | table | giteauser + public | team_unit | table | giteauser + public | team_user | table | giteauser + public | topic | table | giteauser + public | tracked_time | table | giteauser + public | two_factor | table | giteauser + public | upload | table | giteauser + public | user | table | giteauser + public | user_badge | table | giteauser + public | user_blocking | table | giteauser + public | user_open_id | table | giteauser + public | user_redirect | table | giteauser + public | user_setting | table | giteauser + public | version | table | giteauser + public | watch | table | giteauser + public | webauthn_credential | table | giteauser + public | webhook | table | giteauser +(111 rows) + +[PASS] giteaprod: Dump and restore OK. +Cleaned up verify_giteaprod_29281 + +=== [Thu May 1 06:00:23 AM EDT 2025] Dumping hostingtootdb from cluster.db2.genesishostingtechnologies.com === +Creating test database verify_hostingtootdb_22880 +Restoring to verify_hostingtootdb_22880 +SET +SET +SET +SET +SET + set_config +------------ + +(1 row) + +SET +SET +SET +SET +SET +SET +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +COPY 0 +COPY 1 +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +GRANT +ERROR: relation "users" does not exist +LINE 1: SELECT count(*) FROM users; + ^ +Row count for 'users' table in verify_hostingtootdb_22880: +/home/doc/genesis-tools/miscellaneous/bash/dbv1.sh: line 71: [: : integer expression expected +[PASS] Row count OK for 'users' table in hostingtootdb. +[PASS] Checksum verified for hostingtootdb. + List of relations + Schema | Name | Type | Owner +--------+------+-------+----------------- + public | toot | table | hostingtootuser + public | user | table | hostingtootuser +(2 rows) + +[PASS] hostingtootdb: Dump and restore OK. +Cleaned up verify_hostingtootdb_22880 + +=== [Thu May 1 06:00:24 AM EDT 2025] Dumping radiotootdb from cluster.db2.genesishostingtechnologies.com === +Creating test database verify_radiotootdb_7245 +Restoring to verify_radiotootdb_7245 +SET +SET +SET +SET +SET + set_config +------------ + +(1 row) + +SET +SET +SET +SET +SET +SET +CREATE TABLE +ALTER TABLE +CREATE TABLE +ALTER TABLE +CREATE SEQUENCE +ALTER SEQUENCE +CREATE TABLE +ALTER TABLE +COPY 0 +COPY 0 +COPY 1 + setval +-------- + 35 +(1 row) + +ALTER TABLE +ALTER TABLE +ALTER TABLE +ALTER TABLE +GRANT +ERROR: relation "users" does not exist +LINE 1: SELECT count(*) FROM users; + ^ +Row count for 'users' table in verify_radiotootdb_7245: +/home/doc/genesis-tools/miscellaneous/bash/dbv1.sh: line 71: [: : integer expression expected +[PASS] Row count OK for 'users' table in radiotootdb. +[PASS] Checksum verified for radiotootdb. + List of relations + Schema | Name | Type | Owner +--------+-----------------+-------+--------------- + public | alembic_version | table | radiotootuser + public | toot | table | radiotootuser + public | user | table | radiotootuser +(3 rows) + +[PASS] radiotootdb: Dump and restore OK. +Cleaned up verify_radiotootdb_7245 + +All dumps verified, sending to root@backup.sshjunkie.com:/mnt/backup/pgdumps +Uploads to thevault successful. +Uploading to ClusterControl controller at doc@clustercontrol.sshjunkie.com:/home/doc/backups +Uploads to ClusterControl successful. +DONE. Log: /tmp/pgbackup_verify/verify_log_20250501_060001.txt diff --git a/miscellaneous/dbcheck.log b/miscellaneous/dbcheck.log index 3a3f050..690218c 100644 --- a/miscellaneous/dbcheck.log +++ b/miscellaneous/dbcheck.log @@ -1119,3 +1119,15 @@ Failed to send Mastodon DM (attempt 3): {"error":"The access token is invalid"} Failed to send Mastodon DM (attempt 1): {"error":"The access token is invalid"} Failed to send Mastodon DM (attempt 2): {"error":"The access token is invalid"} Failed to send Mastodon DM (attempt 3): {"error":"The access token is invalid"} +✅ Genesis Radio Healthcheck 2025-05-01 06:00:11: All systems normal. +Failed to send Mastodon DM (attempt 1): {"error":"The access token is invalid"} +Failed to send Mastodon DM (attempt 2): {"error":"The access token is invalid"} +Failed to send Mastodon DM (attempt 3): {"error":"The access token is invalid"} +✅ Genesis Radio Healthcheck 2025-05-01 06:15:12: All systems normal. +Failed to send Mastodon DM (attempt 1): {"error":"The access token is invalid"} +Failed to send Mastodon DM (attempt 2): {"error":"The access token is invalid"} +Failed to send Mastodon DM (attempt 3): {"error":"The access token is invalid"} +✅ Genesis Radio Healthcheck 2025-05-01 06:30:13: All systems normal. +Failed to send Mastodon DM (attempt 1): {"error":"The access token is invalid"} +Failed to send Mastodon DM (attempt 2): {"error":"The access token is invalid"} +Failed to send Mastodon DM (attempt 3): {"error":"The access token is invalid"}