Deployment Freezes
Block deployments during specific time windows.
What is a Deployment Freeze?
Section titled “What is a Deployment Freeze?”A deployment freeze prevents deployments during configured time periods:
Common Use Cases
Section titled “Common Use Cases”| Use Case | Freeze Type | Example |
|---|---|---|
| Holiday freeze | One-time | Dec 20 - Jan 2 |
| Change freeze | One-time | During audit |
| Nightly maintenance | Recurring daily | 2 AM - 6 AM |
| Weekend freeze | Recurring weekly | Sat-Sun |
| Month-end freeze | Recurring monthly | Last 3 days |
Freeze Types
Section titled “Freeze Types”One-Time Freeze
Section titled “One-Time Freeze”Blocks deployments during a specific date range:
┌─────────────────────────────────────────────────────────────┐│ One-Time Freeze: Holiday Freeze 2024 │├─────────────────────────────────────────────────────────────┤│ ││ Start: December 20, 2024 00:00 ││ End: January 2, 2025 23:59 ││ ││ Status: ● Active (5 days remaining) ││ │└─────────────────────────────────────────────────────────────┘Recurring Freeze
Section titled “Recurring Freeze”Repeats on a schedule:
| Recurrence | Description | Example |
|---|---|---|
| Daily | Same time every day | 2 AM - 6 AM nightly |
| Weekly | Specific days each week | Weekends only |
| Monthly | Specific days each month | Last 3 days |
| Yearly | Same dates each year | Dec 20 - Jan 2 |
Creating a Freeze
Section titled “Creating a Freeze”Via Lens UI
Section titled “Via Lens UI”┌─────────────────────────────────────────────────────────────┐│ Create Deployment Freeze │├─────────────────────────────────────────────────────────────┤│ ││ Name * ││ [Holiday Freeze 2024 ] ││ ││ Description ││ [No deployments during holiday season ] ││ ││ ───────────────────────────────────────────────────────── ││ ││ Freeze Type: ││ ● One-Time ││ ○ Recurring ││ ││ Start Date/Time * ││ [2024-12-20] [00:00] ││ ││ End Date/Time * ││ [2025-01-02] [23:59] ││ ││ ───────────────────────────────────────────────────────── ││ ││ Scope (leave empty for global freeze): ││ Tenant: [All ▼] ││ Solution: [All ▼] ││ Environment: [Production ▼] ││ ││ ☑ Enabled ││ ││ [Cancel] [Create] ││ │└─────────────────────────────────────────────────────────────┘Via REST API
Section titled “Via REST API”Deployment freezes are managed through the /api/v1/deployment-freezes endpoint
(or the Lens UI). There is no mantisctl freeze subcommand.
# Create a one-time freeze scoped to an environmentcurl -X POST "$MANTIS_URL/api/v1/deployment-freezes" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "Holiday Freeze 2024", "environment_id": "<environment-id>", "start_time": "2024-12-20T00:00:00Z", "end_time": "2025-01-02T23:59:59Z" }'
# Create a recurring daily freezecurl -X POST "$MANTIS_URL/api/v1/deployment-freezes" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "Nightly Maintenance", "start_time": "2024-06-01T02:00:00Z", "end_time": "2024-06-01T06:00:00Z", "recurrence_type": "daily" }'Supported recurrence_type values are daily, weekly, monthly, and
yearly; omit the field for a one-time freeze.
Freeze Scope
Section titled “Freeze Scope”Global Freeze
Section titled “Global Freeze”Blocks all deployments across the system:
# No tenant_id/solution_id/environment_id = global freezecurl -X POST "$MANTIS_URL/api/v1/deployment-freezes" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "System Maintenance", "start_time": "2024-06-15T22:00:00Z", "end_time": "2024-06-16T06:00:00Z" }'Scoped Freeze
Section titled “Scoped Freeze”Target specific resources:
| Scope Level | Blocks |
|---|---|
| Tenant | All deployments for the tenant |
| Solution | All deployments of the solution |
| Environment | All deployments to the environment |
| Combined | Only matching combinations |
Scope a freeze by setting one or more of tenant_id, solution_id, and
environment_id on the create request:
// Production-only freeze{ "name": "Prod Freeze", "environment_id": "<env-id>", "start_time": "...", "end_time": "..." }
// Specific solution in production{ "name": "Portal Freeze", "solution_id": "<solution-id>", "environment_id": "<env-id>", "start_time": "...", "end_time": "..." }
// Tenant-specific freeze{ "name": "Acme Freeze", "tenant_id": "<tenant-id>", "start_time": "...", "end_time": "..." }Recurring Configuration
Section titled “Recurring Configuration”Daily Freeze
Section titled “Daily Freeze”┌─────────────────────────────────────────────────────────────┐│ Recurring Freeze: Daily │├─────────────────────────────────────────────────────────────┤│ ││ Time Window: ││ Start Time: [02:00] End Time: [06:00] ││ ││ ┌───────────────────────────────────────────────────────┐ ││ │ Freeze is active from 02:00 to 06:00 every day │ ││ └───────────────────────────────────────────────────────┘ ││ ││ Recurrence End Date (optional): ││ [2025-12-31] ││ │└─────────────────────────────────────────────────────────────┘Weekly Freeze
Section titled “Weekly Freeze”┌─────────────────────────────────────────────────────────────┐│ Recurring Freeze: Weekly │├─────────────────────────────────────────────────────────────┤│ ││ Days of Week: ││ ☐ Monday ☐ Tuesday ☐ Wednesday ☐ Thursday ││ ☐ Friday ☑ Saturday ☑ Sunday ││ ││ Time Window: ││ Start Time: [00:00] End Time: [23:59] ││ ││ ┌───────────────────────────────────────────────────────┐ ││ │ Freeze is active all day on Saturday and Sunday │ ││ └───────────────────────────────────────────────────────┘ ││ │└─────────────────────────────────────────────────────────────┘Monthly Freeze
Section titled “Monthly Freeze”┌─────────────────────────────────────────────────────────────┐│ Recurring Freeze: Monthly │├─────────────────────────────────────────────────────────────┤│ ││ Days of Month: ││ [29, 30, 31 ] ││ Last 3 days of each month ││ ││ Time Window: ││ Start Time: [00:00] End Time: [23:59] ││ ││ ┌───────────────────────────────────────────────────────┐ ││ │ Freeze is active on days 29, 30, 31 of each month │ ││ └───────────────────────────────────────────────────────┘ ││ │└─────────────────────────────────────────────────────────────┘Freeze List View
Section titled “Freeze List View”┌─────────────────────────────────────────────────────────────┐│ Deployment Freezes │├─────────────────────────────────────────────────────────────┤│ ││ [+ New Freeze] Filter: [All ▼] ││ ││ Active Freezes: ││ ┌─────────────────┬──────────────┬───────────┬──────────┐ ││ │ Name │ Scope │ Type │ Status │ ││ ├─────────────────┼──────────────┼───────────┼──────────┤ ││ │ Holiday 2024 │ Production │ One-time │ ● Active │ ││ │ Weekend Freeze │ Global │ Weekly │ ● Active │ ││ │ Nightly Maint. │ All │ Daily │ ○ Inactive│ ││ └─────────────────┴──────────────┴───────────┴──────────┘ ││ ││ Upcoming Freezes: ││ ┌─────────────────┬──────────────┬──────────────────────┐ ││ │ Name │ Scope │ Starts │ ││ ├─────────────────┼──────────────┼──────────────────────┤ ││ │ Q1 Audit Freeze │ All │ Jan 15, 2025 │ ││ └─────────────────┴──────────────┴──────────────────────┘ ││ │└─────────────────────────────────────────────────────────────┘Freeze Behavior
Section titled “Freeze Behavior”Deployment Blocked
Section titled “Deployment Blocked”When a freeze is active:
┌─────────────────────────────────────────────────────────────┐│ Deployment Blocked │├─────────────────────────────────────────────────────────────┤│ ││ ⚠ Cannot deploy: Active deployment freeze ││ ││ Freeze: Holiday Freeze 2024 ││ Scope: Production ││ End Time: January 2, 2025 23:59 ││ ││ ┌───────────────────────────────────────────────────────┐ ││ │ Deployments to Production are blocked until the │ ││ │ freeze ends. Contact admin for emergency override. │ ││ └───────────────────────────────────────────────────────┘ ││ ││ [View Freeze] [Request Override] ││ │└─────────────────────────────────────────────────────────────┘Scope Matching
Section titled “Scope Matching”A freeze blocks a deployment if ALL its non-null scopes match:
| Freeze Scope | Deployment Scope | Blocked? |
|---|---|---|
| Tenant: Acme | Tenant: Acme | Yes |
| Tenant: Acme | Tenant: Beta | No |
| Environment: Prod | Any to Prod | Yes |
| Solution: Portal, Env: Prod | Portal to Prod | Yes |
| Solution: Portal, Env: Prod | Portal to Staging | No |
Override System
Section titled “Override System”Requesting an Override
Section titled “Requesting an Override”For emergencies, request a freeze override:
┌─────────────────────────────────────────────────────────────┐│ Request Freeze Override │├─────────────────────────────────────────────────────────────┤│ ││ Freeze: Holiday Freeze 2024 ││ Deployment: customer-portal v1.4.1 to Production ││ ││ Reason for Override * ││ [Critical security patch - CVE-2024-XXXX requires ]││ [immediate deployment to fix authentication bypass ]││ ││ ┌───────────────────────────────────────────────────────┐ ││ │ Override requests are logged and audited. │ ││ │ Only users with override permission can proceed. │ ││ └───────────────────────────────────────────────────────┘ ││ ││ [Cancel] [Override] ││ │└─────────────────────────────────────────────────────────────┘Override Record
Section titled “Override Record”Overrides are permanently recorded:
┌─────────────────────────────────────────────────────────────┐│ Freeze Overrides: Holiday Freeze 2024 │├─────────────────────────────────────────────────────────────┤│ ││ ┌─────────────────┬────────────────┬──────────────────┐ ││ │ Deployment │ Overridden By │ Reason │ ││ ├─────────────────┼────────────────┼──────────────────┤ ││ │ portal v1.4.1 │ alice │ Security patch │ ││ │ auth v2.1.1 │ bob │ Critical bug fix │ ││ └─────────────────┴────────────────┴──────────────────┘ ││ │└─────────────────────────────────────────────────────────────┘Via REST API
Section titled “Via REST API”Freeze override is requested per deployment via the override_freeze and
override_reason fields on the create request (requires the
deployments:override_freeze permission, which can be granted to any role —
not exclusively admin). The mantisctl deployment create command does not
expose these flags.
curl -X POST "$MANTIS_URL/api/v1/deployments" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "solution_id": "<solution-id>", "environment_id": "<environment-id>", "override_freeze": true, "override_reason": "Critical security patch CVE-2024-XXXX" }'Managing Freezes
Section titled “Managing Freezes”List Freezes
Section titled “List Freezes”# List all freezes (paginated)curl "$MANTIS_URL/api/v1/deployment-freezes" \ -H "Authorization: Bearer $TOKEN"
# List only currently-active freezescurl "$MANTIS_URL/api/v1/deployment-freezes/active" \ -H "Authorization: Bearer $TOKEN"Update Freeze
Section titled “Update Freeze”# Extend a freeze (PUT with the fields to change, by freeze ID)curl -X PUT "$MANTIS_URL/api/v1/deployment-freezes/<freeze-id>" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "end_time": "2025-01-05T23:59:59Z" }'Delete Freeze
Section titled “Delete Freeze”# Delete a freeze (by freeze ID)curl -X DELETE "$MANTIS_URL/api/v1/deployment-freezes/<freeze-id>" \ -H "Authorization: Bearer $TOKEN"Checking Freeze Status
Section titled “Checking Freeze Status”Before Deployment
Section titled “Before Deployment”# Check whether a deployment would be blockedcurl "$MANTIS_URL/api/v1/deployment-freezes/check?solution_id=<solution-id>&environment_id=<environment-id>" \ -H "Authorization: Bearer $TOKEN"If a freeze is active for the target scope, creating a deployment is blocked
with a 409 (DEPLOYMENT_FROZEN) error; the deployment preview does NOT check active freezes (its warnings field only
reports offline/stale targets). Use GET /api/v1/deployment-freezes/check with the
relevant solution_id/environment_id to test whether a deployment would be blocked.
(There is no freeze_status field on the preview response.)
List Active Freezes
Section titled “List Active Freezes”# List all active freezescurl "$MANTIS_URL/api/v1/deployment-freezes/active" \ -H "Authorization: Bearer $TOKEN"Best Practices
Section titled “Best Practices”1. Plan Freezes in Advance
Section titled “1. Plan Freezes in Advance”Schedule freezes before they’re needed:
# Schedule a freeze 2 weeks earlycurl -X POST "$MANTIS_URL/api/v1/deployment-freezes" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "Q1 Audit", "start_time": "2025-01-15T00:00:00Z", "end_time": "2025-01-20T23:59:59Z" }'2. Use Appropriate Scope
Section titled “2. Use Appropriate Scope”Avoid global freezes when possible:
| Situation | Recommended Scope |
|---|---|
| Holiday season | Production only |
| Tenant audit | Specific tenant |
| Solution upgrade | Specific solution |
| System maintenance | Global (only when necessary) |
3. Document Override Policy
Section titled “3. Document Override Policy”Define when overrides are acceptable:
## Override Policy
Overrides are permitted for:- Security vulnerabilities (CVE)- Production-breaking bugs- Compliance requirements
Required for override:- Approval from on-call lead- Documented justification- Post-deployment verification4. Review Recurring Freezes
Section titled “4. Review Recurring Freezes”Periodically audit recurring freezes:
- Are they still needed?
- Is the schedule still appropriate?
- Should scope be adjusted?
5. Communicate Freezes
Section titled “5. Communicate Freezes”Notify teams of upcoming freezes:
Deployment Freeze Notice:- Holiday Freeze: Dec 20 - Jan 2- Scope: Production environment- Override: Contact on-call leadTroubleshooting
Section titled “Troubleshooting”Freeze Not Blocking
Section titled “Freeze Not Blocking”Cause: Scope doesn’t match deployment
Solution:
- Check freeze scope settings
- Verify environment/solution/tenant matches
- Confirm freeze is enabled
Recurring Freeze Not Activating
Section titled “Recurring Freeze Not Activating”Cause: Time zone or configuration issue
Solution:
- Verify time settings are in correct timezone
- Check days-of-week/month configuration
- Confirm recurrence end date hasn’t passed
Cannot Override Freeze
Section titled “Cannot Override Freeze”Cause: Insufficient permissions
Solution:
- Check if user has override permission
- Contact administrator for emergency access
- Request role upgrade if needed regularly
Next Steps
Section titled “Next Steps”- Tags - Organize resources
- Audit Logs - Track system changes
