Skip to content
AutoIDMPublic

About

An open-source tool to run any scheduled job on your infrastructure (Azure, Google, AWS). No daemon, no external dependencies, no subscription, and it works with your AI tools since all your code is in one place

Topics

Resources

Stars

9 stars

Watchers

0 watching

Forks

Repository files navigation

pdt - process deploy tool

Turn any script into a scheduled job in your cloud.

pdt builds, runs, and deploys scheduled jobs to AWS, Azure, Google Cloud, or Windows Task Scheduler. It gives every job the same primitives, chosen from years of deploying scheduled jobs for businesses on each cloud. No servers to run and nothing extra to install, and everything it makes lives in your own account.

What pdt does: your project folder goes through pdt deploy to a schedule on AWS, GCP, Azure, or Task Scheduler, and pdt runs, logs, health, and gui read the results back.

Key Features

  1. Bring your scripts - Drop in your PowerShell or Python files. pdt finds what they need and runs them.
  2. One command to deploy - No cloud skills needed. pdt deploy installs the tools it needs and opens the sign-in page for you.
  3. Any cloud - Move a job between AWS, Azure, Google Cloud, and Windows by changing one line.
  4. Know the cost first - See the plan and a monthly cost estimate before anything changes.
  5. Know when it breaks - Health checks, logs, a dashboard, and alerts to Slack, Teams, or email.

Quick Start

Windows

Download and run the pdt installer.

macOS / Linux - with uv

Install uv, then pdt:

curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env
uv tool install pdt-cli
uv tool update-shell

For other ways to install, and how to update or remove pdt, see docs/install.md.

Deploy your first job

Then run:

pdt init jobs
cd jobs
pdt new hello-powershell --from powershell-hello-world
cd hello-powershell
pdt run
pdt deploy
pdt logs

Deploy your own script

  1. Create the job with pdt new your-powershell-job --from powershell-hello-world
  2. Replace hello.ps1 in the your-powershell-job folder with your own .ps1 script
  3. Test the job locally with pdt run your-powershell-job
  4. Deploy it with pdt deploy your-powershell-job

See every command.

Example deployment

A first deploy of the hello-world-example app to Azure, then a look at its run:

pdt deploy hello-world-example: the plan, the monthly cost estimate, the build, and the first run's log, followed by pdt logs, pdt health, and pdt run --deployed.

See the same output as text.

The bundled examples

Run pdt examples to list them, then pdt new <name> --from <example> to copy one.

hello-world

Small job that logs "Hello world." pdt init puts a copy of this in every new empty project.

azure-license-waste

PowerShell job. Finds the Microsoft 365 licenses a tenant pays for that nobody uses: paid licenses on disabled accounts, on accounts that have not signed in for 90 days (or never did), and seats bought but assigned to nobody. Each run keeps a LicenseWaste-<date>.xlsx workbook in the job's data store, with a Summary sheet of monthly and annual cost and one sheet per finding.

impossible-travel-report

Looks at recent Entra ID sign-ins. Sends an email when one person signs in from two far-apart places too quickly: Dallas an hour ago, Paris now.

Settings for the lookback window, the minimum distance, and the email addresses live in the job's config.yml. The env vars it needs are listed there too, and in its env.template.

intune-export

PowerShell job. Once a week it exports the Intune configuration of a tenant with the bulk export of IntuneManagement version 4, and keeps an IntuneExport-<date>.zip in the job's data store. To import, unzip it and point IntuneManagement's import at the company folder inside.

monday-orphaned-account-report

Reports active Monday users whose email address does not match the userPrincipalName of an active Entra ID user.

powershell-hello-world

A PowerShell job whose one script, hello.ps1, writes "Hello, world!". It is the job the Quick Start deploys. Put your own .ps1 files in its folder in place of hello.ps1 to deploy your own PowerShell job.

powershell-report

PowerShell job. small CSV report with Export-Csv, and pdt keeps the file in the app's data store.

Support

AutoIDM makes pdt. Any issues, questions, ideas, or concerns? Use any of these methods to get a hold of us:

  1. Discord
  2. Report a problem at https://github.com/AutoIDM/pdt/issues.

Documentation

About

An open-source tool to run any scheduled job on your infrastructure (Azure, Google, AWS). No daemon, no external dependencies, no subscription, and it works with your AI tools since all your code is in one place

Topics

Resources

Stars

9 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages