diff --git a/docs/billing-and-invoices/billing.md b/docs/billing-and-invoices/billing.md index 81b8a16..b0350d0 100644 --- a/docs/billing-and-invoices/billing.md +++ b/docs/billing-and-invoices/billing.md @@ -7,10 +7,14 @@ When you first sign up for Cron To Go, you select a plan and enter your credit c When your trial period is over, you will be charged according to your plan and billing period. -To change your billing or credit card information, plan, or to view your invoices history, go to your billing portal: +To change your organization's billing plan or credit card information, or to view your invoices history, Scroll go to your billing portal: 1. Click **Settings** in the dashboard menu. 2. Scroll to the billing section and click **Open your billing portal**. +In the billing portal, you can change your billing details (including credit card details), change or cancel your plan, and download your historical invoices. + +If you are billed for Cron To Go by a partner (e.g. Heroku, DigitalOcean, Build.io, Addons.io, etc.), the billing section may not show up in your organization section. You can change your billing settings through the relevant partner's website. + :::caution -During trial, please reach out to us to change your plan. If you change it in the billing portal, your credit card will be charged. -::: +If you'd like to change your plan during a trial, we ask that you please reach out to us via the live-chat button on the bottom-right corner of the screen and request that we modify it. Otherwise, your credit card may be automatically charged. +::: \ No newline at end of file diff --git a/docs/getting-started/addons-io-getting-started.md b/docs/getting-started/addons-io-getting-started.md new file mode 100644 index 0000000..07c3b58 --- /dev/null +++ b/docs/getting-started/addons-io-getting-started.md @@ -0,0 +1,62 @@ +--- +sidebar_label: 'Getting Started with Addons.io' +title: 'Getting Started with Addons.io' +sidebar_position: 4 +--- + +# Getting Started with Addons.io + +Cron To Go is available through Addons.io, a multi-platform add-on marketplace that works with various cloud providers and platforms. + +## Overview + +Addons.io provides a unified way to provision and manage add-ons across different cloud platforms. Cron To Go on Addons.io offers easy access to the Cron To Go dashboard with SSO, unified billing, and team management. + +### Key Benefits on Addons.io + +- **Easy Installation**: One-click installation through Addons.io marketplace +- **Single Sign-On (SSO)**: Access Cron To Go dashboard with your Addons.io account +- **Unified Billing**: All charges appear on your Addons.io bill +- **Team Management**: Manage access through Addons.io's team features +- **Multi-Platform Support**: Works with Heroku, DigitalOcean, AWS, and more + +## Provisioning + +### Using Addons.io Dashboard + +Addons.io is a web-based platform that manages add-ons through the dashboard interface. There is no CLI available for add-on management. + +1. Navigate to your app in the [Addons.io Dashboard](https://dashboard.addons.io) +2. Go to the **Add-ons** section +3. Search for "Cron To Go" +4. Click **Add Add-on** +5. Choose your plan and click **Provision** +6. Once provisioned, access Cron To Go through Addons.io with SSO + +## Accessing Cron To Go Dashboard + +Once provisioned, you can access the Cron To Go dashboard through Addons.io: + +### Via Addons.io Dashboard +1. Navigate to your app in the Addons.io Dashboard +2. Go to the **Add-ons** section +3. Click on the **Cron To Go** add-on +4. Click **Manage** or **Open Dashboard** to access Cron To Go with SSO + +## Next Steps + +Once you have access to the Cron To Go dashboard: + +1. **Create Your First Job**: Use the dashboard to create and schedule jobs +2. **Configure Environment Variables**: Set up any environment variables your jobs need +3. **Monitor Execution**: Use the dashboard to monitor job execution and view logs +4. **Explore Features**: Set up notifications, webhooks, and other advanced features + +For detailed information about job management, cron expressions, and advanced features, refer to the main documentation sections. + +## Support + +- **Addons.io Support**: For platform integration issues +- **Cron To Go Support**: For Cron To Go specific issues +- **Documentation**: [Cron To Go Docs](https://crontogo.com/docs) +- **Status**: [Cron To Go Status](https://status.crazyantlabs.com) \ No newline at end of file diff --git a/docs/getting-started/build-io-getting-started.md b/docs/getting-started/build-io-getting-started.md new file mode 100644 index 0000000..4489e00 --- /dev/null +++ b/docs/getting-started/build-io-getting-started.md @@ -0,0 +1,60 @@ +--- +sidebar_label: 'Getting Started with Build.io' +title: 'Getting Started with Build.io' +sidebar_position: 3 +--- + +# Getting Started with Build.io + +Cron To Go is available as a native Build.io add-on, providing seamless integration with Build.io's platform and tooling. + +## Overview + +Cron To Go on Build.io runs your scheduled jobs using one-off Dynos, which means you only pay for the time your jobs actually execute. This is more cost-effective than running always-on processes. + +### Key Benefits on Build.io + +- **Native Add-on**: Available through Build.io's add-on marketplace +- **CLI Integration**: Full support for Cron To Go CLI commands using the Build.io CLI Plugin +- **Environment Variables**: Automatic access to your app's config vars +- **Dyno Types**: Support for all Build.io dyno types (Hobby, Standard, Performance) +- **Logging**: Integration with Build.io's logging system + +## Provisioning + +### Using Build.io Dashboard + +1. Navigate to your app in the Build.io Dashboard +2. Click **Resources** +3. Click on **Add an addon** +4. Search for "Cron To Go" and click on it +5. Choose the plan you want +6. Follow the installation wizard to configure the add-on by providing the company name and the region where you want to deploy the Cron To Go instance. +7. When the add-on is installed, you can access the dashboard through the Build.io add-ons list + +## Accessing Cron To Go Dashboard + +Once provisioned, you can access the Cron To Go dashboard in several ways: + +### Via Build.io Dashboard +1. Navigate to your app in the Build.io Dashboard +2. Go to the **Resources** tab +3. Click on the **Cron To Go** add-on +4. Click **Go to Addon Dashboard** to access Cron To Go with SSO + +## Next Steps + +Once you have access to the Cron To Go dashboard: + +1. **Create Your First Job**: Use the dashboard to create and schedule jobs +3. **Monitor Execution**: Use the dashboard to monitor job execution and view logs +4. **Explore Features**: Set up notifications, webhooks, and other advanced features + +For detailed information about job management, cron expressions, and advanced features, refer to the main documentation sections. + +## Support + +- **Build.io Support**: For Build.io platform issues +- **Cron To Go Support**: For Cron To Go specific issues +- **Documentation**: [Cron To Go Documentation](https://crontogo.com/docs) +- **Status**: [Cron To Go Status](https://status.crazyantlabs.com) \ No newline at end of file diff --git a/docs/getting-started/dashboard.md b/docs/getting-started/dashboard.md deleted file mode 100644 index c551d17..0000000 --- a/docs/getting-started/dashboard.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -sidebar_label: 'Jobs' -title: 'Jobs Management' -sidebar_position: 10 ---- -Use the **Jobs** tab to add, edit, search or remove jobs. diff --git a/docs/getting-started/digitalocean-getting-started.md b/docs/getting-started/digitalocean-getting-started.md new file mode 100644 index 0000000..ad514e7 --- /dev/null +++ b/docs/getting-started/digitalocean-getting-started.md @@ -0,0 +1,62 @@ +--- +sidebar_label: 'Getting Started with DigitalOcean' +title: 'Getting Started with DigitalOcean' +sidebar_position: 4 +--- + +# Getting Started with DigitalOcean + +Cron To Go is available as a marketplace add-on, providing seamless integration with your DigitalOcean account. + +## Overview + +Cron To Go on DigitalOcean is available as a marketplace add-on, providing seamless integration with your DigitalOcean account. This means easy installation, unified billing, and single sign-on access to manage your scheduled jobs. + +### Key Benefits on DigitalOcean + +- **Easy Installation**: One-click installation through DigitalOcean Marketplace +- **Single Sign-On (SSO)**: Access Cron To Go dashboard with your DigitalOcean account +- **Unified Billing**: All charges appear on your DigitalOcean bill +- **Team Management**: Manage access through DigitalOcean's team features +- **Seamless Integration**: Access Cron To Go directly from your DigitalOcean dashboard + +## Provisioning + +### Using DigitalOcean Marketplace + +Cron To Go is available through the DigitalOcean Marketplace as an add-on. You can install it directly from the marketplace to your DigitalOcean account. + +1. Navigate to the [DigitalOcean Marketplace](https://marketplace.digitalocean.com) +2. Search for "Cron To Go" or browse the add-ons section +3. Click on the Cron To Go add-on page +4. Click **Add Cron To Go** +5. Follow the installation wizard to configure the add-on by providing the company name and the region where you want to deploy the Cron To Go instance. +6. Once installed, you can access Cron To Go through your DigitalOcean dashboard with SSO + +## Accessing Cron To Go Dashboard + +Once provisioned, you can access the Cron To Go dashboard through DigitalOcean: + +### Via DigitalOcean Dashboard +1. Navigate to your DigitalOcean account dashboard +2. Go to the **Marketplace** or **Add-ons** section +3. Find the Cron To Go add-on +4. Click **Manage** or **Open Dashboard** to access Cron To Go with SSO + +## Next Steps + +Once you have access to the Cron To Go dashboard: + +1. **Create Your First Job**: Use the dashboard to create and schedule jobs +2. **Configure Environment Variables**: Set up any environment variables your jobs need +3. **Monitor Execution**: Use the dashboard to monitor job execution and view logs +4. **Explore Features**: Set up notifications, webhooks, and other advanced features + +For detailed information about job management, cron expressions, and advanced features, refer to the main documentation sections. + +## Support + +- **DigitalOcean Support**: For DigitalOcean platform issues +- **Cron To Go Support**: For Cron To Go specific issues +- **Documentation**: [Cron To Go Documentation](https://crontogo.com/docs) +- **Status**: [Cron To Go Status](https://status.crazyantlabs.com) or [DigitalOcean Status](https://status.digitalocean.com) \ No newline at end of file diff --git a/docs/getting-started/heroku-getting-started.md b/docs/getting-started/heroku-getting-started.md new file mode 100644 index 0000000..58cfc83 --- /dev/null +++ b/docs/getting-started/heroku-getting-started.md @@ -0,0 +1,77 @@ +--- +sidebar_label: 'Getting Started with Heroku' +title: 'Getting Started with Heroku' +sidebar_position: 2 +--- + +# Getting Started with Heroku + +Cron To Go is available as a native Heroku add-on, providing seamless integration with Heroku's platform and tooling. + +## Overview + +Cron To Go on Heroku runs your scheduled jobs using one-off Dynos, which means you only pay for the time your jobs actually execute. This is more cost-effective than running always-on processes. + +### Key Benefits on Heroku + +- **Native Add-on**: Available through Heroku's add-on marketplace +- **CLI Integration**: Full support for Cron To Go CLI commands using the Heroku CLI Plugin +- **Environment Variables**: Automatic access to your app's config vars +- **Dyno Types**: Support for all Heroku Dyno types (Hobby, Standard, Performance) +- **Logging**: Integration with Heroku's logging system + +## Provisioning + +### Using Heroku CLI + +```bash +# Install Heroku CLI if you haven't already +curl https://cli-assets.heroku.com/install.sh | sh + +# Login to Heroku +heroku login + +# Add Cron To Go to your app +heroku addons:create crontogo -a + +# Verify the add-on was added +heroku addons:info crontogo -a +``` + +### Using Heroku Dashboard + +1. Navigate to the Cron To Go [Heroku Marketplace page](https://elements.heroku.com/addons/crontogo) +2. Click **Add Cron To Go** +3. When the add-on is installed, you can access the dashboard through the Heroku add-ons list + +## Accessing Cron To Go Dashboard + +Once provisioned, you can access the Cron To Go dashboard in several ways: + +### Via Heroku CLI +```bash +# Open the Cron To Go dashboard +heroku addons:open crontogo -a +``` + +### Via Heroku Dashboard +1. Navigate to your app in the Heroku Dashboard +2. Go to the **Resources** tab +3. Click on the **Cron To Go** add-on + +## Next Steps + +Once you have access to the Cron To Go dashboard: + +1. **Create Your First Job**: Use the dashboard to create and schedule jobs +3. **Monitor Execution**: Use the dashboard to monitor job execution and view logs +4. **Explore Features**: Set up notifications, webhooks, and other advanced features + +For detailed information about job management, cron expressions, and advanced features, refer to the main documentation sections. + +## Support + +- **Heroku Support**: For Heroku platform issues +- **Cron To Go Support**: For Cron To Go specific issues +- **Documentation**: [Cron To Go Documentation](https://crontogo.com/docs) +- **Status**: [Cron To Go Status](https://status.crazyantlabs.com) or [Heroku Status](https://status.heroku.com) \ No newline at end of file diff --git a/docs/getting-started/quick-start.md b/docs/getting-started/quick-start.md new file mode 100644 index 0000000..4112139 --- /dev/null +++ b/docs/getting-started/quick-start.md @@ -0,0 +1,127 @@ +--- +sidebar_label: 'Quick Start' +title: 'Quick Start Guide' +sidebar_position: 1 +--- + +# Quick Start Guide + +Get up and running with Cron To Go in minutes. This guide will help you provision Cron To Go and create your first scheduled job. + +## Step 1: Provision Cron To Go + +Choose your platform and follow the provisioning steps: + +### Heroku +1. Navigate to [Heroku Dashboard](https://dashboard.heroku.com) +2. Select your app and go to "Resources" +3. Search for "Cron To Go" and install +4. Access the dashboard through SSO (Single Sign-On) + +Or, using the Heroku CLI: + +```bash +# Install Cron To Go add-on on your app +heroku addons:create crontogo -a + +# Open the dashboard +heroku addons:open crontogo -a +``` + +### Build.io +1. Navigate to [Build.io Dashboard](https://build.io) +2. Select your app and go to "Resources" +3. Search for "Cron To Go" and install +4. Access the dashboard through SSO (Single Sign-On) + +Or, using the Heroku CLI: + +```bash +# Install Cron To Go add-on on your app +build addons:create crontogo -a + +# Open the dashboard +build addons:open crontogo -a +``` + +### DigitalOcean +1. Navigate to the Cron To Go [DigitalOcean Marketplace page](https://marketplace.digitalocean.com/add-ons/crontogo) +2. Click "Add Cron To Go" and follow the setup process +3. When the add-on is installed, you can access the dashboard through the DigitalOcean marketplace add-ons list + +### Addons.io +1. Navigate to the Cron To Go [Addons.io Marketplace page](https://addons.io/marketplace/addons/crontogo) +2. Click "Install addon" +3. When the add-on is installed, you can access the dashboard through the Addons.io add-ons list + +For detailed platform-specific instructions, see: +- [Getting Started on Heroku](getting-started/heroku-getting-started) +- [Getting Started on DigitalOcean](getting-started/digitalocean-getting-started) +- [Getting Started on Addons.io](getting-started/addons-io-getting-started) + +## Step 2: Access Your Dashboard + +Once provisioned, you can access your Cron To Go dashboard: + +- **Heroku**: Via `heroku addons:open crontogo` or through Heroku Dashboard +- **DigitalOcean**: Through your DigitalOcean app dashboard +- **Addons.io**: Through SSO from your Addons.io dashboard + +## Step 3: Create Your First Job + +1. **Click "Add Job"** in your dashboard +2. **Enter a nickname** (e.g., "Daily Backup") +3. **Set the schedule** using cron expression (e.g., `0 2 * * *` for daily at 2 AM) +4. **Enter your command** (e.g., `curl https://your-api.com/backup`) +5. **Click "Create Job"** + +## Step 4: Test Your Job + +1. **Click "Run Now"** to test your job immediately +2. **Check the logs** to see the execution results +3. **Verify the output** matches your expectations + +## Example Jobs + +### Database Backup +```bash +# PostgreSQL backup +pg_dump $DATABASE_URL > backup.sql + +# MySQL backup +mysqldump $DATABASE_URL > backup.sql +``` + +### HTTP Request +```bash +# API call +curl -X POST https://your-api.com/webhook + +# Health check +curl https://your-app.com/health +``` + +### Script Execution +```bash +# Python script +python scripts/generate_report.py + +# Node.js script +node scripts/send_notifications.js + +# Ruby script +ruby scripts/cleanup_data.rb +``` + +## Next Steps + +- **Learn about cron expressions**: [Cron Expressions Guide](../jobs/cron-expressions) +- **Explore use cases**: [Use Cases & Examples](../use-cases/database-operations) +- **Framework integration**: [Framework Integration](../frameworks/rails) +- **Advanced features**: [Advanced Features](../advanced/webhooks) + +## Need Help? + +- **Documentation**: Browse our comprehensive guides +- **FAQ**: Check [Frequently Asked Questions](../questions-and-answers/faq) +- **Support**: Contact us through your platform's support channels \ No newline at end of file diff --git a/docs/getting-started/trial-accounts.md b/docs/getting-started/trial-accounts.md deleted file mode 100644 index 7eee33f..0000000 --- a/docs/getting-started/trial-accounts.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -sidebar_label: 'Trial Accounts' -title: 'Trial Accounts' -sidebar_position: 1 ---- -When you start out with Cron To Go, you are provided a 7 day free trial. You will be asked to select a plan for your trial account and enter your name, organization details, and credit card information. - -Over the duration of the trial, the features included in the plan you signed up for will be available to you. If you wish to extend your trial or change the plan to a different one, please reach out to us via in-app chat found on the bottom-right corner of the screen. - -Once your 7 days trial has ended, your plan will be automatically converted to a paying one of which you selected. - -At any point during the trial, you may cancel your account by following these steps: - -1. Click **Settings** in the dashboard menu. -2. Scroll down to the billing section and click **Open your billing portal**. -3. On the billing portal page, click **Cancel Plan**. - - -For more pricing related questions and answers, visit Cron To Go's [pricing page](https://crontogo.com/pricing). diff --git a/docs/jobs/_category_.json b/docs/jobs/_category_.json new file mode 100644 index 0000000..ab3fd7e --- /dev/null +++ b/docs/jobs/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Manage Jobs", + "position": 2 +} diff --git a/docs/jobs/about-jobs.md b/docs/jobs/about-jobs.md new file mode 100644 index 0000000..b13ccc9 --- /dev/null +++ b/docs/jobs/about-jobs.md @@ -0,0 +1,27 @@ +--- +sidebar_label: 'About Jobs' +title: 'About Jobs' +sidebar_position: 1 +--- + +# About Jobs + +Jobs are the core entities in Cron To Go. They are the scheduled tasks that you create and manage. + +## Job Scheduling + +Cron To Go supports the following scheduling options: + +- **Cron Expression**: Use a cron expression to schedule a job (e.g. `0 2 * * *` for daily at 2 AM) +- **Time Interval**: Use a time interval to schedule a job (e.g. every 15 minutes, every 1 hour, every 1 day) + +## Target Types + +Cron To Go supports the following target types: + +- **Heroku Dyno**: Trigger a one-off Heroku Dyno on schedule +- **Build.io Dyno**: Trigger a one-off Build.io Dyno on schedule (coming soon) +- **Webhook Request**: Send a POST request to a HTTP endpoint on schedule (coming soon) +- **AWS Lambda Function**: Invoke an AWS Lambda function on schedule (coming soon) +- **DigitalOcean Function**: Invoke a DigitalOcean serverless function on schedule (coming soon) + diff --git a/docs/jobs/creating-jobs.md b/docs/jobs/creating-jobs.md new file mode 100644 index 0000000..fd20661 --- /dev/null +++ b/docs/jobs/creating-jobs.md @@ -0,0 +1,161 @@ +--- +sidebar_label: 'Creating Jobs' +title: 'Creating and Managing Jobs' +sidebar_position: 2 +--- + +# Creating and Managing Jobs + +This guide covers how to create and configure jobs in Cron To Go. + +## Creating Your First Job + +### Step 1: Access the Dashboard + +1. Navigate to Jobs in your Cron To Go dashboard +2. Click "Add Job" or the "+" button +3. Fill out the job configuration form + +### Step 2: Job Configuration + +#### Job Name +- Use descriptive names that include purpose and frequency +- Examples: "Daily Database Backup", "Weekly Report Generation" + +#### Schedule Configuration + +Choose between a cron expression or a rate expression that will be used to schedule the job. + +##### Cron Expression + +Common examples: +- `0 2 * * *` - Daily at 2 AM +- `0 * * * *` - Every hour +- `*/15 * * * *` - Every 15 minutes +- `0 9 * * 1-5` - Weekdays at 9 AM + +##### Rate Expression + +Common examples: +- `5 minutes` - Every 5 minutes +- `2 hours` - Every 2 hours +- `1 day` - Every day +- `1 week` - Every week + +##### Timezone + +Choose the timezone for the job. UTC is recommended for avoiding daylight savings time issues. + +- UTC (default) +- Common options: America/New_York, Europe/London, Asia/Tokyo + +#### Target Type Selection + +Choose from the following target types: + +- **Heroku Dyno**: Trigger a one-off Heroku Dyno on schedule + - Set Command to run your job + - Set the Application to run the command on + - Set Dyno Size to the size you want to use + - Set Timeout to the timeout you want to use +- **Build.io Dyno**: Trigger a one-off Build.io Dyno on schedule `(coming soon)` + - Set the Command to run your job + - Set the Application to run the command on + - Set Dyno Size to the size you want to use + - Set Timeout to the timeout you want to use +- **Webhook Request**: Send a POST request to a HTTP endpoint on schedule `(coming soon)` + - Set the URL to send the request to + - Choose the content type of the request + - Set the Payload to the body you want to send + - Set the Authorization header to the value you want to use + - Set the signing secret to the value you want to use +- **AWS Lambda Function**: Invoke an AWS Lambda function on schedule `(coming soon)` + - Set the Function ARN to the ARN of the AWS Lambda function you want to use + - Set the Payload to a JSON value you want to send + - Update your function's resource-based policy in your AWS account to allow Cron To Go to invoke the function +- **DigitalOcean Function**: Invoke a DigitalOcean serverless function on schedule `(coming soon)` + - Set the REST API URL of the DigitalOcean function you want to use + - Set the Authorization header of the function to the value you want to use + - Set the Payload to a JSON value you want to send + +#### Jitter + +- Adds random delay to prevent thundering herd problems +- Common values: 5 minutes, 15 minutes, 1 hour + +#### State +Indicate if the jobs is active or paused + +## Job Management + +### Pausing and Resuming Jobs +- Pause jobs temporarily +- Resume paused jobs +- Bulk pause/resume operations + +### Running Jobs Manually +- Run jobs immediately +- Add custom parameters when running + +**Note**: For detailed information on updating, deleting, and monitoring jobs, see the dedicated guides: +- [Updating Jobs](updating-jobs) - Learn how to edit and modify existing jobs +- [Deleting Jobs](deleting-jobs) - Learn how to safely delete and remove jobs +- [Monitoring Jobs](monitoring-jobs) - Learn how to monitor and observe job performance + +## Best Practices + +### Job Naming +- Use descriptive names with purpose and frequency +- Avoid generic names like "job1", "backup", "test" + +### Scheduling Best Practices +- Avoid overlapping jobs +- Use appropriate frequencies for the task type +- Consider timezone implications + +### Target-Specific Best Practices + +#### Heroku/Build.io Dyno Targets +- Choose appropriate Dyno size that meets your job needs +- Plan for the Dyno concurrency limits + +#### Webhook Request Target +- Use HTTPS endpoints +- Include authentication headers for better security +- Set appropriate timeout values + +#### AWS Lambda Function Target +- Use function ARN of the AWS Lambda function +- Configure appropriate timeout +- Consider cold start strategies + +#### DigitalOcean Function Target +- Use the REST API URL of the DigitalOcean function +- Configure appropriate timeout +- Consider cold start strategies + +## Troubleshooting + +### Common Issues + +#### Job Not Running +- Check job status and ensure it's enabled +- Verify schedule syntax +- Confirm timezone settings + +#### Job Failing +- Check logs for error details +- Verify target configuration +- Test target accessibility + +#### Job Timing Out +- Increase timeout settings +- Optimize target implementation +- Consider breaking into smaller jobs + +## Resources + +- **Cron Expressions**: [Cron Expressions Guide](cron-expressions) +- **Updating Jobs**: [Updating and Editing Jobs](updating-jobs) +- **Deleting Jobs**: [Deleting and Removing Jobs](deleting-jobs) +- **Monitoring Jobs**: [Monitoring and Observing Jobs](monitoring-jobs) \ No newline at end of file diff --git a/docs/jobs/cron-expressions.md b/docs/jobs/cron-expressions.md new file mode 100644 index 0000000..4ef587d --- /dev/null +++ b/docs/jobs/cron-expressions.md @@ -0,0 +1,291 @@ +--- +sidebar_label: 'Cron Expressions' +title: 'Cron Expressions Guide' +sidebar_position: 30 +--- + +# Cron Expressions Guide + +Cron expressions are a powerful way to schedule jobs with precision. This guide covers the syntax, common patterns, and best practices for using cron expressions in Cron To Go. + +## Basic Syntax + +Cron expressions consist of 5 or 6 fields: + +``` +* * * * * [command] +│ │ │ │ │ +│ │ │ │ └── Day of week (0-7, where 0 and 7 are Sunday) +│ │ │ └──── Month (1-12) +│ │ └────── Day of month (1-31) +│ └──────── Hour (0-23) +└────────── Minute (0-59) +``` + +## Special Characters + +| Character | Description | Example | +|-----------|-------------|---------| +| `*` | Every value | `* * * * *` = every minute | +| `?` | No specific value (day of week/month) | `0 0 * * ?` = daily at midnight | +| `-` | Range | `0 9-17 * * *` = every hour 9 AM to 5 PM | +| `/` | Step/increment | `0 */2 * * *` = every 2 hours | +| `,` | Multiple values | `0 0 1,15 * *` = 1st and 15th of month | +| `L` | Last day of month/week | `0 0 L * *` = last day of month | +| `W` | Weekday nearest to date | `0 0 15W * *` = nearest weekday to 15th | +| `#` | Nth day of month | `0 0 * * 1#2` = 2nd Monday of month | + +## Common Examples + +### Minute Patterns +```bash +# Every minute +* * * * * + +# Every 5 minutes +*/5 * * * * + +# Every 15 minutes +*/15 * * * * + +# Every 30 minutes +*/30 * * * * +``` + +### Hour Patterns +```bash +# Every hour +0 * * * * + +# Every 2 hours +0 */2 * * * + +# Every 6 hours +0 */6 * * * + +# Business hours (9 AM to 5 PM) +0 9-17 * * * +``` + +### Daily Patterns +```bash +# Daily at midnight +0 0 * * * + +# Daily at 2 AM +0 2 * * * + +# Daily at noon +0 12 * * * + +# Daily at 6 PM +0 18 * * * +``` + +### Weekly Patterns +```bash +# Every Monday at 9 AM +0 9 * * 1 + +# Every weekday at 8 AM +0 8 * * 1-5 + +# Every weekend at 10 AM +0 10 * * 6,0 +``` + +### Monthly Patterns +```bash +# 1st of every month at 1 AM +0 1 1 * * + +# 15th of every month at 3 PM +0 15 15 * * + +# Last day of month at 11 PM +0 23 L * * +``` + +### Complex Patterns +```bash +# Every 2 hours during business days +0 9-17/2 * * 1-5 + +# Every 15 minutes during business hours +*/15 9-17 * * 1-5 + +# 2nd Tuesday of every month +0 9 * * 2#2 + +# Every 30 minutes on weekends +*/30 * * * 6,0 +``` + +## Advanced Patterns + +### Multiple Times +```bash +# Twice daily (9 AM and 6 PM) +0 9,18 * * * + +# Three times daily +0 8,12,18 * * * + +# Every 4 hours starting at 2 AM +0 2,6,10,14,18,22 * * * +``` + +### Business Hours +```bash +# Every hour during business days +0 9-17 * * 1-5 + +# Every 30 minutes during business hours +*/30 9-17 * * 1-5 + +# Every 15 minutes during business hours +*/15 9-17 * * 1-5 +``` + +### Weekend Patterns +```bash +# Every hour on weekends +0 * * * 6,0 + +# Every 2 hours on weekends +0 */2 * * 6,0 + +# Weekend maintenance at 2 AM +0 2 * * 6,0 +``` + +## Real-World Examples + +### Database Operations +```bash +# Daily backup at 2 AM +0 2 * * * pg_dump $DATABASE_URL > backup.sql + +# Weekly cleanup on Sunday at 3 AM +0 3 * * 0 python cleanup_old_data.py + +# Monthly maintenance on 1st at 1 AM +0 1 1 * * python monthly_maintenance.py +``` + +### API Calls +```bash +# Health check every 5 minutes +*/5 * * * * curl https://your-app.com/health + +# Data sync every hour +0 * * * * curl -X POST https://api.example.com/sync + +# Report generation daily at 6 AM +0 6 * * * python generate_daily_report.py +``` + +### Monitoring +```bash +# System check every 15 minutes +*/15 * * * * python system_monitor.py + +# Performance metrics every hour +0 * * * * python collect_metrics.py + +# Weekly performance report +0 8 * * 1 python weekly_performance_report.py +``` + +## Best Practices + +### Avoid Overlapping Jobs +```bash +# Good: Jobs don't overlap +0 2 * * * daily_backup.sh +0 3 * * * daily_cleanup.sh + +# Avoid: Jobs might overlap +0 2 * * * long_running_job.sh +0 2 * * * another_job.sh +``` + +### Use Appropriate Frequencies +```bash +# High-frequency monitoring (every 5 minutes) +*/5 * * * * health_check.sh + +# Medium-frequency tasks (every hour) +0 * * * * data_sync.sh + +# Low-frequency maintenance (daily/weekly) +0 2 * * * daily_maintenance.sh +``` + +### Consider Time Zones +```bash +# Use UTC for consistency +0 2 * * * backup.sh # 2 AM UTC + +# Or specify timezone in your job +0 2 * * * TZ=America/New_York backup.sh +``` + +### Test Your Expressions +```bash +# Test locally before deploying +crontab -l # View current crontab +crontab -e # Edit crontab + +# Use online cron expression validators +# https://crontab.guru/ +# https://cron.qqe2.com/ +``` + +## Common Mistakes + +### Incorrect Field Order +```bash +# Wrong: Day of week in wrong position +* * 1 * * # This means every minute on 1st of month + +# Correct: Day of week at the end +* * * * 1 # This means every minute on Monday +``` + +### Overly Complex Expressions +```bash +# Avoid: Too complex to maintain +0 9-17/2 1,15,30 * 1-5 + +# Better: Split into multiple jobs +0 9,11,13,15,17 1 * * 1-5 # 1st of month +0 9,11,13,15,17 15 * * 1-5 # 15th of month +0 9,11,13,15,17 30 * * 1-5 # 30th of month +``` + +### Ignoring Time Zones +```bash +# Problematic: Assumes local timezone +0 2 * * * backup.sh + +# Better: Explicit timezone +0 2 * * * TZ=UTC backup.sh +``` + +## Testing and Validation + +### Validate Expressions +Use online tools to validate your cron expressions: +- [Cron Expression To Go](https://cronexpressiontogo.com/) +- [Crontab Guru](https://crontab.guru/) + +### Monitor Execution +- Check job logs in Cron To Go dashboard +- Set up notifications for job failures + +## Resources + +- **Cron Expression Validator**: [Cron Expression To Go](https://cronexpressiontogo.com/) +- **Cron To Go Blog**: [Complete Guide to Cron](https://crontogo.com/blog/the-complete-guide-to-cron/) +- **Job Management**: [Creating Jobs](../jobs/creating-jobs) \ No newline at end of file diff --git a/docs/jobs/deleting-jobs.md b/docs/jobs/deleting-jobs.md new file mode 100644 index 0000000..0528340 --- /dev/null +++ b/docs/jobs/deleting-jobs.md @@ -0,0 +1,46 @@ +--- +sidebar_label: 'Deleting Jobs' +title: 'Deleting and Removing Jobs' +sidebar_position: 4 +--- + +# Deleting and Removing Jobs + +This guide covers how to safely delete and remove jobs from Cron To Go. + +:::danger +Deleting a job is permanent and cannot be undone. +::: + +## Job Status and Billing + +### Paused Jobs +- Jobs can be paused and resumed at any time +- **Important**: Paused jobs still count towards billing limits +- To stop billing, jobs must be deleted, not just paused + +## Deleting Individual Jobs + +### Single Job Deletion +1. Navigate to Jobs in your dashboard +2. Click on the job name +3. Click "Delete" button +4. Confirm deletion in the dialog + +## Bulk Job Deletion + +### Selecting Multiple Jobs +- Select individual jobs using checkboxes +- Select all jobs at once +- Filter jobs by name, status, or criteria + +### Bulk Delete Operations +- Delete multiple jobs simultaneously +- Confirm bulk deletion in dialog +- Review all selected jobs before confirming + +## Resources + +- **Creating Jobs**: [Creating and Managing Jobs](creating-jobs) +- **Updating Jobs**: [Updating and Editing Jobs](updating-jobs) +- **Job Monitoring**: [Monitoring and Observing Jobs](monitoring-jobs) \ No newline at end of file diff --git a/docs/jobs/monitoring-jobs.md b/docs/jobs/monitoring-jobs.md new file mode 100644 index 0000000..c3ed618 --- /dev/null +++ b/docs/jobs/monitoring-jobs.md @@ -0,0 +1,80 @@ +--- +sidebar_label: 'Monitoring Jobs' +title: 'Monitoring and Observing Jobs' +sidebar_position: 5 +--- + +# Monitoring and Observing Jobs + +This guide covers how to monitor, observe, and track job performance in Cron To Go. + +## Viewing Job Logs + +### Accessing Job Logs +1. Navigate to Jobs in your dashboard +2. Click on the job name +3. Click "View Logs" to see execution history + +### Log Information +- Start and end times +- Duration and exit codes +- Complete log output (when available) + +For more production-ready persistence of logs, we recommend using logging services for your job target logs. + +## Job Alerts + +### Email Notifications +- Configure email alerts for job events +- Set alert conditions (failed, succeeded, started, retried) +- Choose alert frequency (immediate, daily, weekly) +- Customize notification content + +### Webhook Notifications +- Set up webhook endpoints +- Receive structured job event data +- Integrate with Slack, Discord, Teams +- Connect to PagerDuty or custom systems + +## Real-time Monitoring + +### Live Job Status +- View current job status indicators +- Monitor running jobs in real-time +- Track execution progress +- Auto-refresh dashboard updates + +### Execution Tracking +- Monitor currently running jobs +- View execution progress +- Track resource usage in real-time +- Stream live log output + +## Troubleshooting Monitoring + +### Common Issues + +#### Logs Not Appearing +- Check job status and execution +- Verify log retention settings +- Confirm access permissions +- Logs might not be available for your job target + +#### Alerts Not Working +- Verify alert configuration +- Test notification delivery +- Check webhook endpoints +- Validate email settings + +#### Performance Issues +- Analyze resource usage patterns +- Review historical performance data +- Identify bottlenecks +- Optimize job configuration +- Check your background jobs for queueing issues + +## Resources + +- **Creating Jobs**: [Creating Jobs](creating-jobs) +- **Updating Jobs**: [Updating and Editing Jobs](updating-jobs) +- **Deleting Jobs**: [Deleting Jobs](deleting-jobs) diff --git a/docs/jobs/updating-jobs.md b/docs/jobs/updating-jobs.md new file mode 100644 index 0000000..92082a7 --- /dev/null +++ b/docs/jobs/updating-jobs.md @@ -0,0 +1,67 @@ +--- +sidebar_label: 'Updating Jobs' +title: 'Updating and Editing Jobs' +sidebar_position: 3 +--- + +# Updating and Editing Jobs + +This guide covers how to update, edit, and modify existing jobs in Cron To Go. + +## Editing Job Configuration + +### Accessing Job Edit Mode + +1. Navigate to Jobs in your dashboard +2. Click on the job name +3. Click "Edit" to modify the job + +### Updating Job Properties + +#### Job Name +- Update job name at any time +- Use descriptive names that include environment, frequency, and purpose + +#### Schedule Updates +- Change cron expressions +- Modify rate expressions +- Update timezone settings + +#### Target Configuration +- Modify target-specific settings based on target type + +#### Jitter Configuration +- Add jitter to prevent thundering herd problems +- Increase or decrease jitter values +- Remove jitter if not needed + +#### Job State +- Pause jobs temporarily +- Resume paused jobs + +## Target-Specific Updates + +### Heroku/Build.io Dyno Jobs +- Update dyno commands +- Modify app configuration +- Update dyno size settings +- Update timeout settings + +## Bulk Job Updates + +### Selecting Multiple Jobs +- Select individual jobs using checkboxes +- Select all jobs at once +- Filter jobs by name, status, or other criteria + +### Bulk Operations +- Pause multiple jobs simultaneously +- Resume multiple jobs at once +- Delete multiple jobs in one operation + +## Resources + +- **Creating Jobs**: [Creating Jobs](creating-jobs) +- **Deleting Jobs**: [Deleting Jobs](deleting-jobs) +- **Job Monitoring**: [Monitoring and Observing Jobs](monitoring-jobs) +- **Cron Expressions**: [Cron Expressions Guide](cron-expressions) \ No newline at end of file diff --git a/docs/overview.md b/docs/overview.md index 9f0efa5..4fc4a73 100644 --- a/docs/overview.md +++ b/docs/overview.md @@ -4,16 +4,98 @@ title: 'Overview' sidebar_position: 0 slug: / --- -[Cron To Go](https://crontogo.com) is a fully-managed cloud scheduler to run scheduled tasks based using CRON expressions or time intervals, up to once per minute. -Cron To Go combines the simplicity of using cron to schedule jobs with the scale and elasticity of the cloud. Instead of running always-on processes, Cron To Go provides the option to start one-off tasks only when you need them. Another benefit of using Cron To Go over code-based schedulers is that you don't need to deploy new code when you have to make changes or additions to your scheduled jobs - simply add, edit or delete a job from the Cron To Go dashboard. +# Cron To Go - Cloud Scheduler for Modern Applications -These docs are here to help you with any questions you may have. If there's anything else you'd like to see here or if you have other questions or feedback, please feel free to reach out to us via in-app chat (you'll find the chat button at the bottom-right corner of the screen). +Cron To Go is a fully-managed cloud scheduler that runs scheduled tasks using CRON expressions or time intervals, up to once per minute. It's designed to work seamlessly across multiple cloud platforms including Heroku, DigitalOcean, AWS, Google Cloud, and more. -## Popular use cases +## What is Cron To Go? -Using feedback and data collected over time, we have highlighted the top use cases of our clients up to date: +Cron To Go combines the simplicity of using cron to schedule jobs with the scale and elasticity of the cloud. Instead of running always-on processes, Cron To Go provides the option to start one-off tasks only when you need them. -* Running periodic SQL statements on databases. You can refresh materialized views, run cleanup statements to get rid of unwanted data, or perform BI processes such as in-database transformations. The following example makes use of psql command line with the DATABASE_URL environment variable to refresh a materialized view: psql $DATABASE_URL -c "REFRESH MATERIALIZED VIEW vw_account_counters" -* Hitting HTTP endpoints. You can easily make HTTP(S) requests to your web API or 3rd party API endpoints using Curl to start application processes. The following example uses curl to reach a 3rd party endpoint: curl http://itsthisforthat.com/api.php?json -* Scheduling periodical batch jobs. Jobs such as grabbing orders from Shopify, generating weekly reports, or sending email notifications to application users by running your own code are made possible. \ No newline at end of file +### Key Benefits + +- **Platform Agnostic**: Works with multiple cloud providers +- **No Code Deployment**: Add, edit, or delete jobs without deploying new code +- **Cost Effective**: Pay only for execution time, not idle resources +- **Scalable**: Handles from simple tasks to complex workflows +- **Reliable**: Built-in monitoring, logging, and error handling +- **Developer Friendly**: Simple API, CLI tools, and comprehensive documentation + +## How It Works + +1. **Provision**: Add Cron To Go to your application through your cloud platform's add-on marketplace or CLI +2. **Configure**: Define your jobs using the dashboard, API, or CLI +3. **Execute**: Cron To Go runs your jobs on schedule using your platform's compute resources +4. **Monitor**: Track execution, logs, and performance through the dashboard + +## Popular Use Cases + +Based on feedback from thousands of users, here are the most common use cases: + +### Database Operations +- Refresh materialized views +- Run cleanup statements +- Perform BI processes and data transformations +- Database maintenance and optimization + +**Example:** +```bash +psql $DATABASE_URL -c "REFRESH MATERIALIZED VIEW vw_account_counters" +``` + +### Webhook Requests +- Trigger webhooks +- Call third-party APIs +- Start application processes +- Health checks and monitoring + +**Example:** +```bash +curl -X POST https://api.example.com/webhook/process-orders +``` + +### Batch Processing +- Generate reports +- Process data files +- Send email notifications +- Data synchronization + +**Example:** +```bash +node scripts/generate-weekly-report.js +``` + +### Data Management +- Backup operations +- Data cleanup and archiving +- ETL processes +- Cache invalidation + +## Supported Compute Targets + +Cron To Go integrates with multiple cloud platforms: + +- **Heroku**: Trigger one-off Dyno on schedule +- **Build.io**: Trigger one-off Dyno on schedule (coming soon) +- **Webhook Request**: Send a POST request to a HTTP endpoint on schedule (coming soon) +- **AWS Lambda**: Trigger Lambda functions invocation on schedule (coming soon) +- **DigitalOcean**: Trigger a serverless function on schedule (coming soon) + +## Supported Add-on Marketplaces + +Cron To Go integrates with multiple add-on marketplaces: + +- **Heroku**: Heroku add-on marketplace +- **Build.io**: Build.io add-on marketplace +- **DigitalOcean**: DigitalOcean add-on marketplace +- **Addons.io**: Addons.io add-on marketplace + +## Getting Started + +Choose your add-on marketplace and follow the quick start guide: + +- [Getting Started on Heroku](getting-started/heroku-getting-started) +- [Getting Started on Build.io](getting-started/build-io-getting-started) +- [Getting Started on DigitalOcean](getting-started/digitalocean-getting-started) +- [Getting Started on Addons.io](getting-started/addons-io-getting-started) \ No newline at end of file diff --git a/docs/questions-and-answers/faq.md b/docs/questions-and-answers/faq.md new file mode 100644 index 0000000..170dde7 --- /dev/null +++ b/docs/questions-and-answers/faq.md @@ -0,0 +1,225 @@ +--- +sidebar_label: 'Frequently Asked Questions' +title: 'Frequently Asked Questions' +sidebar_position: 1 +--- + +# Frequently Asked Questions + +## General Questions + +### What is Cron To Go? +Cron To Go is a fully-managed cloud scheduler that allows you to run scheduled jobs on various platforms. It combines the simplicity of cron expressions with the scalability of cloud infrastructure, letting you schedule tasks without maintaining your own scheduling infrastructure. + +### How does Cron To Go work? +Cron To Go executes your jobs in isolated containers (one-off Dynos on Heroku and Build.io, containers on other platforms) only when they need to run. This approach is more cost-effective than running always-on processes and provides better scalability. + +### What add-on marketplaces does Cron To Go support? +Cron To Go is available on: +- **Heroku**: [Heroku add-on marketplace](https://elements.heroku.com/addons/crontogo) +- **DigitalOcean**: [DigitalOcean marketplace](https://marketplace.digitalocean.com/add-ons/crontogo) +- **Addons.io**: [Addons.io marketplace](https://addons.io/marketplace/addons/crontogo) + +### How much does Cron To Go cost? +Pricing varies by marketplace. Check your platform's marketplace for current pricing: +- **Heroku**: [Cron To Go on Heroku Elements](https://elements.heroku.com/addons/crontogo) +- **DigitalOcean**: [Cron To Go on DigitalOcean Marketplace](https://marketplace.digitalocean.com/add-ons/crontogo) +- **Addons.io**: [Cron To Go on Addons.io Marketplace](https://addons.io/marketplace/addons/crontogo) + +## Job Execution + +### What types of jobs can I run? +You can run virtually any command or script that can be executed on a compute provider (e.g. Heroku, DigitalOcean, AWS, Build.io, etc.): +- **Database operations**: SQL queries, backups, cleanup +- **HTTP requests**: API calls, web scraping +- **Script execution**: Python, Node.js, Ruby, PHP, Go, etc. +- **File operations**: Data processing, report generation +- **Custom applications**: Any executable command or script + +### How often can jobs run? +Jobs can run as frequently as once per minute using cron expressions or rate expressions. + +### What happens if a job fails? +Failed jobs are logged with detailed error information. You can configure email notifications and webhooks to be alerted of failures. Jobs will continue to run on their schedule even if they fail. + +### How long can jobs run? +Job timeout is configurable (default varies by platform). For long-running jobs, consider increasing the timeout or breaking them into smaller tasks. + +## Platform-Specific Questions + +### Heroku + +#### I get "Requested type Eco is not available" error +**A:** Cron To Go shows the dyno types available for your app. This error typically indicates your Heroku application is not allowed to run on a Eco dyno. + +#### I get "Cannot run more than X size dynos" error +**A:** Heroku has [limits](https://devcenter.heroku.com/articles/limits#concurrent-one-off-dynos) on concurrent one-off dynos. To resolve this: +- Change the dyno type or job frequency +- Request Heroku to increase your limits +- If using private space dynos with low timeout values, this may also cause issues + +#### My job fails with "process exited with status 143" +**A:** Exit code 143 indicates a SIGTERM signal was received. This can happen due to: +- Manual termination (stopping the job from Cron To Go or using `heroku ps`) +- Heroku maintenance +- Memory or CPU quota exceeded +- Environment changes or application updates +- Job timeout reached + +Check if increasing the timeout is required or if your job needs more resources. + +#### I'm using Cron To Go with PHP and don't see anything in job logs +**A:** Artisan may append `> '/dev/null' 2>&1` to commands. See our [logging guide](https://crontogo.com/blog/logging-laravel-background-tasks-in-heroku-the-right-way/) for solutions. + +### Build.io + +#### How do I access Cron To Go on Build.io? +**A:** After installing Cron To Go from the Build.io Marketplace, you can access it through: +1. Your Build.io dashboard +2. Direct SSO access to the Cron To Go dashboard +3. The Cron To Go dashboard URL provided in your Build.io app + +#### How is billing handled on DigitalOcean? +**A:** All Cron To Go charges appear on your Build.io bill. You manage billing through your Build.io account dashboard. + +### DigitalOcean + +#### How do I access Cron To Go on DigitalOcean? +**A:** After installing Cron To Go from the DigitalOcean Marketplace, you can access it through: +1. Your DigitalOcean dashboard +2. Direct SSO access to the Cron To Go dashboard +3. The Cron To Go dashboard URL provided in your DigitalOcean app + +#### How is billing handled on DigitalOcean? +**A:** All Cron To Go charges appear on your DigitalOcean bill. You manage billing through your DigitalOcean account dashboard. + +### Addons.io + +#### How do I access Cron To Go on Addons.io? +**A:** After installing Cron To Go through Addons.io, you can access it through: +1. Your Addons.io dashboard +2. Direct SSO access to the Cron To Go dashboard +3. The Cron To Go dashboard URL provided in your Addons.io app + +#### How is billing handled on Addons.io? +**A:** All Cron To Go charges appear on your Addons.io bill. You manage billing through your Addons.io account dashboard. + +## Notifications and Monitoring + +### How do I change my email notification settings? +**A:** The process varies by platform: + +**Heroku:** +1. Go to your Heroku app dashboard +2. Find Cron To Go under "Installed add-ons" and click it +3. Click the "Settings" menu item +4. Scroll to the notifications section and configure recipients + +**DigitalOcean/Addons.io:** +1. Access the Cron To Go dashboard through your platform's SSO +2. Click the "Settings" menu item +3. Scroll to the notifications section and configure recipients + +### How do I set up webhook notifications? +**A:** In the Cron To Go dashboard: +1. Go to "Settings" → "Webhooks" +2. Click "Add Webhook" +3. Enter your webhook URL and configure topics +4. Optionally add custom headers for authentication + +### How do I monitor job execution? +**A:** You can monitor jobs through: +- **Dashboard**: Real-time job status and logs +- **Email notifications**: Get alerts for job failures +- **Webhooks**: Receive real-time notifications +- **API**: Programmatically check job status + +## Performance and Resources + +### How do I disable Datadog's agent on Cron To Go job dynos? +**A:** To avoid Datadog charges on Cron To Go job dynos, add this to your [pre-run script](https://docs.datadoghq.com/agent/basic_agent_usage/heroku/#prerun-script): + +```bash +# Disable the Datadog Agent based on dyno type +if [[ "$DYNOTYPE" == "crontogo"* ]]; then + DISABLE_DATADOG_AGENT="true" +fi +``` + +### What dyno sizes are available? +**A:** Available dyno sizes depend on your platform and account status: +- **Heroku**: Hobby, Standard-1X, Standard-2X, Performance-M, Performance-L +- **Build.io**: Basic, Standard-1X, Standard-2X, Performance-M, Performance-L +- **DigitalOcean**: Various container sizes +- **Addons.io**: Depends on underlying platform + +### How do I optimize job performance? +**A:** Consider these optimizations: +- **Right-size dynos**: Choose appropriate dyno size for your workload +- **Optimize timeouts**: Set appropriate timeouts for your jobs +- **Use efficient commands**: Minimize startup time and resource usage +- **Batch operations**: Combine multiple operations when possible + +## Troubleshooting + +### My job isn't running +**A:** Check these common issues: +1. **Job is paused**: Ensure the job is enabled in the dashboard +2. **Schedule issue**: Verify the cron expression or rate expression +3. **Platform limits**: Check if you've hit concurrent dyno limits +4. **Authentication**: Ensure your app has proper access to required resources +5. **Command error**: Check the job logs for command execution errors + +### How do I debug failed jobs? +**A:** Use these debugging steps: +1. **Check job logs**: View detailed execution logs in the dashboard +2. **Test locally**: Run the command locally to verify it works +3. **Check environment**: Ensure all required environment variables are set +4. **Verify permissions**: Check if the job has access to required resources +5. **Review timeout**: Increase timeout if jobs are being killed + +### How do I export/import jobs? +**A:** You can import jobs from: +- **Heroku Scheduler**: One-click import from Heroku Scheduler +- **Temporize**: Import from Temporize scheduler +- **Advanced Scheduler**: Import from Advanced Scheduler +- **Other Cron To Go instances**: Import from other Cron To Go accounts + +Export jobs to backup your configurations or migrate between accounts. + +## Security + +### How secure is Cron To Go? +**A:** Cron To Go provides several security features: +- **Isolated execution**: Jobs run in isolated containers +- **Environment variables**: Secure handling of sensitive data +- **Webhook signing**: Secure webhook delivery with signatures +- **Access control**: Platform-based authentication and authorization + +### How do I handle sensitive data in jobs? +**A:** Use environment variables to handle sensitive data: +- **Platform environment variables**: Use your platform's environment variable system +- **Cron To Go variables**: Set job-specific environment variables +- **Never hardcode**: Avoid putting sensitive data directly in job commands + +## Migration and Integration + +### How do I migrate from Heroku Scheduler? +**A:** Use the one-click import feature: +1. Install Cron To Go on your Heroku app +2. Click "Import" in the Cron To Go dashboard +3. Select "Heroku Scheduler" as the source +4. Review and confirm the imported jobs + +### Can I use Cron To Go with my existing CI/CD pipeline? +**A:** Yes, Cron To Go integrates well with CI/CD pipelines: +- **API integration**: Use the Cron To Go API to manage jobs programmatically +- **Environment deployment**: Jobs automatically use your app's current environment +- **Zero-downtime**: Jobs continue running during deployments + +### How do I integrate Cron To Go with monitoring tools? +**A:** Cron To Go supports various monitoring integrations: +- **Webhooks**: Send job events to monitoring services +- **Email notifications**: Get alerts for job failures +- **API monitoring**: Monitor job status programmatically +- **Log aggregation**: Forward logs to your logging service \ No newline at end of file diff --git a/docs/security/_category_.json b/docs/security/_category_.json index 45fba47..f6d9ef0 100644 --- a/docs/security/_category_.json +++ b/docs/security/_category_.json @@ -1,4 +1,4 @@ { "label": "Security", - "position": 4 + "position": 5 } diff --git a/docs/security/gdpr.md b/docs/security/gdpr.md new file mode 100644 index 0000000..48a5e1c --- /dev/null +++ b/docs/security/gdpr.md @@ -0,0 +1,45 @@ +--- +sidebar_label: 'GDPR Compliance' +title: 'GDPR Compliance with Cron To Go' +sidebar_position: 30 +--- + +Cron To Go is fully compliant with the **General Data Protection Regulation (GDPR)**, ensuring that your data and the data of your European users are protected according to the highest privacy standards. + +## What is GDPR? + +The General Data Protection Regulation (GDPR) is a comprehensive data protection law that regulates how organizations collect, use, store, and process personal data of individuals within the European Union (EU) and European Economic Area (EEA). It gives individuals greater control over their personal data and imposes strict obligations on organizations that handle this data. + +## Our GDPR Compliance + +Cron To Go has designed its service with privacy and data protection as core principles, ensuring full compliance with GDPR requirements. + +## Data Processing and Security + +### Data Processing Agreements + +Cron To Go acts as a data processor for your organization. We provide Data Processing Agreements (DPAs) that outline our responsibilities and commitments to GDPR compliance. + +### Data Security Measures + +- **Encryption**: All data is encrypted in transit and at rest +- **Access Controls**: Strict authentication and authorization procedures +- **Data Minimization**: We collect only necessary data for service provision +- **Regular Audits**: Continuous monitoring and assessment of data practices +- **Incident Response**: Comprehensive procedures for data breach response + +## Contact Information + +For GDPR-related inquiries, data subject requests, or privacy concerns: + +- **Email**: support@crazyantlabs.com +- **Support**: Contact our support team via chat in the dashboard +- **DPA Requests**: Available upon request for enterprise customers + +## Additional Compliance + +Cron To Go maintains multiple compliance certifications to ensure comprehensive data protection: + +- **GDPR**: European data privacy compliance +- **SOC 2 Type II**: Enterprise security controls +- **HIPAA**: Healthcare data protection diff --git a/docs/security/hipaa.md b/docs/security/hipaa.md index 9147102..8f298cc 100644 --- a/docs/security/hipaa.md +++ b/docs/security/hipaa.md @@ -4,16 +4,69 @@ title: 'HIPAA Compliance with Cron To Go' sidebar_position: 40 --- +Cron To Go is fully compliant with the **Health Insurance Portability and Accountability Act (HIPAA)**, providing secure cloud scheduling services for healthcare organizations that handle protected health information (PHI). + +## What is HIPAA? + The Health Insurance Portability and Accountability Act (HIPAA) establishes national standards for the privacy, security, and breach notification of individuals' protected health information (PHI). HIPAA applies to covered entities and their business associates, as defined by the law. -Covered entities are healthcare providers, health plans, and healthcare clearinghouses that transmit any health information in electronic form in connection with certain administrative and financial transactions. Examples of covered entities include hospitals, doctors' offices, nursing homes, pharmacies, and health insurance companies. +### Covered Entities +Covered entities are healthcare providers, health plans, and healthcare clearinghouses that transmit any health information in electronic form in connection with certain administrative and financial transactions. Examples include: +- Hospitals and medical centers +- Doctors' offices and clinics +- Nursing homes and long-term care facilities +- Pharmacies and drug stores +- Health insurance companies +- Healthcare clearinghouses + +### Business Associates +Business associates are individuals or entities that perform certain functions or activities on behalf of a covered entity, such as: +- Billing companies +- Claims processing companies +- Third-party administrators +- IT service providers +- Cloud service providers like Cron To Go + +## Our HIPAA Compliance + +### Business Associate Agreement (BAA) + +Covered entities who require a secure cloud scheduler service can use Cron To Go after signing a **Business Associate Agreement (BAA)** that establishes the parameters for the relationship between covered entity and business associate, outlining the responsibilities of the business associate in protecting the privacy and security of PHI. + +## PHI Data Protection + +### Encryption Standards +- **In Transit**: All communication encrypted with AES-256 bit using HTTPS protocol +- **At Rest**: Data stored with industry-standard encryption +- **Access Controls**: Multi-factor authentication and role-based access + +### Data Handling +- **Minimum Necessary**: Only collect and process necessary PHI for service provision +- **Access Logging**: Comprehensive audit trails for all PHI access +- **Secure Disposal**: Proper data deletion and media disposal procedures + +## Healthcare Use Cases + +Cron To Go supports various healthcare automation needs: + +- **Patient Data Processing**: Scheduled data backups and synchronization +- **Billing Automation**: Automated billing and claims processing +- **Report Generation**: Scheduled generation of healthcare reports +- **System Maintenance**: Automated system maintenance and updates +- **Compliance Monitoring**: Regular compliance checks and audits + +## Contact Information -Business associates are individuals or entities that perform certain functions or activities on behalf of a covered entity, such as billing companies, claims processing companies, third-party administrators, and other contractors or vendors. Business associates are also required to comply with HIPAA regulations. +For HIPAA-related inquiries, BAA requests, or compliance questions: -Covered entities who require a secure cloud scheduler service can use Cron To Go after signing a BAA (Business Associate Agreement) that establishes the parameters for the relationship between covered entity and business associate, outlining the responsibilities of the business associate in protecting the privacy and security of PHI. +- **Email**: support@crazyantlabs.com +- **Support**: Contact our support team via chat in the dashboard +- **BAA Requests**: Available for covered entities upon request -Cron To Go completes an annual assessment of security risks in addition to ongoing risk analysis, to ensure that our service meets changing security requirements and threats. +## Additional Compliance -## PHI data protection +Cron To Go maintains multiple compliance certifications to ensure comprehensive data protection: -In transit, all communication is encrypted with AES-256 bit using the HTTPS protocol. +- **HIPAA**: Healthcare data protection for covered entities and business associates +- **SOC 2 Type II**: Enterprise security controls with continuous monitoring +- **GDPR**: European data privacy compliance with comprehensive data protection diff --git a/docs/security/overview.md b/docs/security/overview.md index 59afb6f..7519655 100644 --- a/docs/security/overview.md +++ b/docs/security/overview.md @@ -3,9 +3,37 @@ sidebar_label: 'Overview' title: 'Security Overview' sidebar_position: 10 --- -Cron To Go prioritizes security, as we understand that keeping your data safe is fundamental to your business. -Auditing -------- +# Security Overview -Login attempts, sessions and file access is audited and stored in logs, which can be made available upon request. \ No newline at end of file +Cron To Go prioritizes security, as we understand that keeping your data safe is fundamental to your business. We maintain multiple compliance certifications to ensure comprehensive data protection across different industries and jurisdictions. + +## Compliance Certifications + +Cron To Go is fully compliant with the following standards: + +- **[SOC 2 Type II](soc2)**: Enterprise-grade security controls with continuous monitoring +- **[HIPAA](hipaa)**: Healthcare data protection for covered entities and business associates +- **[GDPR](gdpr)**: European data privacy compliance with comprehensive data protection + +## Security Features + +### Data Protection +- All data encrypted in transit and at rest +- Strict access controls and authentication procedures +- Regular security audits and assessments +- Comprehensive incident response procedures + +### Privacy by Design +- Privacy settings configured to highest level by default +- Transparent data processing practices +- User control over personal data +- Data minimization principles + +## Auditing and Monitoring + +Login attempts, sessions, and job executions are audited and stored in logs based on your log retention policy, which can be made available upon request. We maintain detailed audit trails for compliance and security purposes. + +## Enterprise-Grade Reliability + +Cron To Go is a distributed, scalable, and reliable cloud scheduler with guaranteed at-least-once delivery to your job targets. diff --git a/docs/security/soc2.md b/docs/security/soc2.md new file mode 100644 index 0000000..a439c86 --- /dev/null +++ b/docs/security/soc2.md @@ -0,0 +1,69 @@ +--- +sidebar_label: 'SOC 2 Type II Compliance' +title: 'SOC 2 Type II Compliance with Cron To Go' +sidebar_position: 20 +--- + +Cron To Go is fully compliant with **SOC 2 Type II** standards, providing enterprise-grade security and reliability for your scheduled tasks and automation workflows. + +## What is SOC 2 Type II? + +SOC 2 (System and Organization Controls 2) is a rigorous auditing procedure developed by the American Institute of CPAs (AICPA) that ensures service providers securely manage data to protect the interests of their clients and the privacy of their customers. + +**Type II** compliance means that Cron To Go has not only designed and implemented security controls but has also demonstrated their effectiveness over a minimum period of six months through continuous monitoring and testing. + +## Our SOC 2 Type II Compliance + +Cron To Go has earned the highest **Meets Requirements** rating in Workload Automation on G2, demonstrating our commitment to enterprise-grade security standards. + +### Security Controls + +Our SOC 2 Type II compliance covers the following key areas: + +- **Access Control**: Strict authentication and authorization procedures +- **Data Protection**: Encryption of data in transit and at rest +- **Network Security**: Secure infrastructure and network controls +- **Change Management**: Controlled processes for system modifications +- **Risk Assessment**: Regular security risk evaluations +- **Incident Response**: Comprehensive incident detection and response procedures + +### Continuous Monitoring + +As a SOC 2 Type II compliant service, Cron To Go: + +- Undergoes regular third-party audits +- Maintains continuous monitoring of security controls +- Provides detailed audit reports to customers +- Implements ongoing security improvements +- Conducts regular risk assessments + +## Benefits for Your Organization + +### Enterprise-Grade Security +- Verified security controls through independent audits +- Comprehensive data protection measures +- Regular security assessments and updates + +### Compliance Support +- Helps meet your organization's compliance requirements +- Provides audit documentation when needed +- Supports regulatory compliance initiatives + +### Trust and Reliability +- Independent verification of security practices +- Proven track record of security excellence +- Enterprise-ready service for critical workloads + +## Audit Reports + +Cron To Go provides SOC 2 Type II audit reports to customers upon request. These reports detail our security controls, testing procedures, and compliance status. + +For audit report requests or additional compliance information, please contact our support team. + +## Additional Compliance + +Cron To Go maintains multiple compliance certifications to ensure comprehensive data protection: + +- **SOC 2 Type II**: Enterprise security controls +- **HIPAA**: Healthcare data protection +- **GDPR**: European data privacy compliance diff --git a/docs/settings/_category_.json b/docs/settings/_category_.json new file mode 100644 index 0000000..86ee5db --- /dev/null +++ b/docs/settings/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Settings", + "position": 3 +} \ No newline at end of file diff --git a/docs/getting-started/account-settings.md b/docs/settings/account-settings.md similarity index 83% rename from docs/getting-started/account-settings.md rename to docs/settings/account-settings.md index 74bba2e..04456ed 100644 --- a/docs/getting-started/account-settings.md +++ b/docs/settings/account-settings.md @@ -1,7 +1,7 @@ --- sidebar_label: 'Account Settings' title: 'Account Settings' -sidebar_position: 50 +sidebar_position: 2 --- To manage your personal account profile and security settings, click your avatar (at the top-right corner of the screen) and then click **Account settings**. @@ -12,6 +12,12 @@ You can change your name here. To change your avatar, create one using Gravatar. ## Security +:::note +**Direct Sign-ups Only**: The password and multi-factor authentication settings below are only relevant for accounts created through direct sign-up. If your account was created through a partner's SSO (Heroku, DigitalOcean, Build.io, Addons.io, etc.), please manage your security settings through your partner's platform. +::: + +### Password Management + Click **Change password** to change your password. You will be requested to enter your current password as well. Your new password needs to be at least 10 characters including a number, a lowercase and an uppercase letter. If you are logged in but don't remember your current password, you can initiate the "forgot password" protocol by clicking **Reset your password by email**. After clicking it, find the **Reset your Cron To Go password** email in your inbox and follow the instructions there in order to reset your password. diff --git a/docs/getting-started/organization-settings.md b/docs/settings/organization-settings.md similarity index 89% rename from docs/getting-started/organization-settings.md rename to docs/settings/organization-settings.md index 4bc9e57..4cfc7de 100644 --- a/docs/getting-started/organization-settings.md +++ b/docs/settings/organization-settings.md @@ -1,7 +1,7 @@ --- sidebar_label: 'Organization Settings' title: 'Organization Settings' -sidebar_position: 40 +sidebar_position: 1 --- To manage your organization, security, billing, and team settings, click **Settings** from the menu. @@ -23,7 +23,7 @@ To change your organization's billing plan, Scroll to the billing section and cl In the billing portal, you can change your billing details (including credit card details), change or cancel your plan, and download your historical invoices. -If you are billed for Cron To Go by a partner (e.g. Heroku, Digital Ocean, Build.io, etc.), the billing section may not show up in your organization section. You can change your billing settings through the relevant partner's website. +If you are billed for Cron To Go by a partner (e.g. Heroku, DigitalOcean, Build.io, etc.), the billing section may not show up in your organization section. You can change your billing settings through the relevant partner's website. :::info If you'd like to change your plan during a trial, we ask that you please reach out to us via the live-chat button on the bottom-right corner of the screen and request that we modify it. Otherwise, your credit card may be automatically charged. @@ -36,7 +36,7 @@ The access section lists the accounts that have access to an organization's mana To invite a new member to your organization, scroll down to the **Access** section and click **Invite team member**. Fill out the team member's name and email address and an invitation will be sent out for the new member to join your organization. After clicking the invitation link, the new member will be requested to create a password. Once logged in, the new member will be able to access the organization according to the assigned role. :::info -If access to Cron To go is managed by a partner (e.g. Heroku, Digital Ocean, Build.io, etc.), use the partner's access management to add or remove team members. +If access to Cron To go is managed by a partner (e.g. Heroku, DigitalOcean, Build.io, etc.), use the partner's access management to add or remove team members. ::: To remove a member from the organization, click the menu button (...) and then **Remove from team**. diff --git a/docusaurus.config.js b/docusaurus.config.js index c790c60..d5d0ce2 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -106,12 +106,6 @@ const config = { label: 'Sign in', className: 'nav-link', }, - { - to: `${url}/register`, - position: 'right', - label: 'Free trial', - className: 'nav-link cta-link', - }, ], }, footer: { diff --git a/src/theme/Root.js b/src/theme/Root.js index 73dd8e5..a00064d 100644 --- a/src/theme/Root.js +++ b/src/theme/Root.js @@ -7,13 +7,13 @@ export default function Root({children}) { - +