* Alerts v1
* Encrypt alert webhook secrets and allow them to be generated by the server
* Alert v1 UI
* Remove unnecessary emails
* Move to using `@react-email/components`
* WIP slack alerts
* More slack alerts WIP
* Update pnpm lock after rebase
* Finish implementing Slack alerts
* Use a more error like emoji
* New secondary variant for the segmented control
* Added a simple checkbox style variant to storybook
* Style tweak to the segmented control
* UI improvements to the alert modal
* Use searchable Select for alerts. Changed default variant for SegmentedControl
* Secondary button now using secondary colour
* segmented control style tweak
* Improved the channel column in the alerts table
* Updated logo-mono.png
* Updated email styles
* Email templates updated to new styles
* Don’t log the decrypted secret
* await enqueing the deployment alert when an index fails
* await enqueing the timeout alert
---------
Co-authored-by: James Ritchie <james@jamesritchie.co.uk>
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* Improvement: Added more context to Shopify webhook registering errors
Co-authored-by: Ahmed Ramadan <ahmedramadan1337@gmail.com>
* revert: shopify reference jobs
* fix: added error handling to some shopify client edge cases
* small changes to crud error handling
---------
Co-authored-by: Ahmed Ramadan <ahmedramadan1337@gmail.com>
Co-authored-by: nicktrn <55853254+nicktrn@users.noreply.github.com>
* Extract out useFilterTasks
* WIP on Combobox
* Revert "WIP on Combobox"
This reverts commit f0a9b2e57c67f24d5e0876630e17a54252ceb86b.
* Added ariakit
* Started adding a Listbox component
* Listbox WIP
* More WIP on the list box
* More work on the Listbox
* WIP on filterable Listbox using headless… but it’s going to be a nightmare to make it good. Wrong approach
* WIP using Ariakit
* Multiple selection working
* WIP in reworking it so search is built in and it’s easier to use
* Nicer API for listbox
* Allow sections to be rendered with filtering
* More progress on the styling of the menu
* The empty state
* Removed focus outline
* Allow filtering based on the section title
* Render the shortcut correctly
* Allow passing static children to Select and render a separator if a section has no title
* Static example and added subtle focus
* Allow static data with no items array passed in
* Allow shortcuts on select items
* Only how heading if true
* Tooltip for keyboard shortcut
* useShortcutKeys fixes
- Can be passed an undefined definition (so we render the same number of hooks always).
- Fix for enabledOnInputElements not being used…
* Shortcut keys working with lists
* Don’t render shortcut numbers higher than 0
* More improvements
* WIP on a Link row
* Nicer API for the children function
* Much nicer shortcut key support
* Separated SelectTrigger out
* Heading separated out
* More styled elements created
* Removed unused element
* Reordered statuses
* Added search context
* Fixes for default values
* Removed tab elements
* Combo box
* Simplified it more
* Started work on Filter menu
* Experiments with filter menu
* Filter menu proof of concept working
* Nice hook for using a search param
* The escape key goes back to the previous menu
* Added filter page to storybook
* Added other variants
* Renamed Select file to OldSelect, implemented Feedback form
* Added placeholder support
* Added an optional dropdown icon (defaults to a chevron down)
* Feedback new Select
* Feedback just use static items
* New project page
* Renamed storybook pages
* Lots of progress on the new run filters
* Added new tasks filters
* Show the applied filters
* Added period filtering
* Fix for escape resetting the period value to the previous value when escape is pressed
* Show the Clear button sooner
* Removed unused code
* Reworked useSearchParams so multiple values can be set at once…
* Renamed file: OldSelect -> SImpleSelect
* Fix for new Select not working in forms because props weren’t being passed through
* New Select on the schedules page
* Better layout when there are lots of run filters
* Many style improvements to run filters
* Status filter allows you to select as well
* Rolled out the menus for the other files
* Minor improvements to schedule page and page padding
* Latest lockfile
* fix spacing for delete hints
* don't try to resume deps on wait resume
* sending duration wait resumes is not an error anymore
* set correct status with new wait resume flow
* cancel checkpoint schema v2
* don't mix messages and schemas
* prevent unintended case fallthrough in tree view
* completely switch to platform-led duration wait resumes
* prevent infinite restores
* some entries for the catalog
* add pg to additional packages
* add checkpoint safe timeout
* prevent duplicate spans after restore
* wait for post start
* add sdk version to deploy tab
* fail on impossible checkpoint scenarios
* remove debug logs
* TaskListPresenter: if there are no tasks then don’t do stats queries
* RunListPresenter, use BasePresenter and the read replica
* Added populate script
* Simplified the Runs list query, added live timer
* Added TaskRun indexes for the RunList
* Status can’t be null now we’re using the TaskRun status
* Use defer so the page loads and shows a spinner
* Improved the loading style
* Get rid of latest run info from the tasks table super slow
* Fix for the activity graph tooltip getting clipped
* Added a code comment crediting the GitHub issue with the portal fix
* Add search to the tasks list
* Padding
* Fix for the schedules columns not being UTC
* Remove unused function
* lotsOfLogs task now outputs much larger logs
* Removed tree view collapse/expand animation
* JSDocs for useDebounce
* WIP moving filtering into the state
* Reworked the reducer to do the filtering
* Fix for #1066. Correct environment username if dev
* WIP changing the form
* WIP on the form
* WIP on repository
* Adding environment variables en masse is working
* WIP on pasting
* useList hook with reducer
* Got bulk insert working with pasting… it was a pain
* Allow overwriting of values
* Set a max height on the new env var form
* Fix for “overridden” spelling mistake
* Make the task function names grey instead of yellow
* The task page now shows each task once
* Blankline
* WIP on activity bars
* Correct size of the graphs
* Add data for all days, even if there are no runs
* Activity graph is working and has a tooltip
* No activity label
* Got the bar bg working
* Activity chart now has a bg
* Added a compound id to make the activity graphs appear faster
* Improvements to the activity graph
* Tried to disable the bg from animating
* Added read replica support to the app, using Nick’s code from his batching PR
* Added the read replica to BasePresenter
* Added the queued and running columns to the Tasks list
* Added avg duration column
* Included completed but failed runs in the average duration
* Get rid of the old useDevEnvironment hook and remove API keys from the projects query
* Unified getting environment info to using a function and doing it in presenters
* Removed the path from the tasks table
* Onboarding for dev for 2nd+ user. Improved environment sorting.
* Removed log
* Improved the spacing
* Enable staging for new v3 projects
* Adds support for `emitDecoratorMetadata: true` and `experimentalDecorators: true` in your tsconfig
* Implement task.onSuccess/onFailure and config.onSuccess/onFailure
* Added onStart and more docs for lifecycle functions
* Use onStart instead of init for TypeORM
* prettier login command output
* fix for trying to login again after revoking cli token
* changeset
* improve errors when logging in with revoked or invalid token
* fix builds.. again
* Fixes an issue that was treating v2 trigger directories as v3
* Make msw a normal dependency (for now) to fix Module Not Found error in Next.js.
* Extract out all the zod* stuff from core so the SDK does not import it
* Add a changeset
* Fixing typecheck errors in the webapp
* Export the Task and TaskOptions types
* Extract additional exports from core/v3 that aren’t used in the SDK
* Move to our global system from AsyncLocalStorage for the current task context storage
* Update the esbuild core bundling plugin for the new core v3 exports
* Fix v3 CLI telemetry
* Add support for tasks located in subdirectories inside trigger dirs
* Remove the env var check during deploy (too many false negatives)
* fix package manager detection
* fix cli update check while in beta
* add update command and warn on mismatches
* update fixes and better integration with dev and deploy
* fix for ci
* update docs
* changeset
* be more specific about prompts before updates
* fail on version mismatch during ci
* update github actions docs
* fix package manager copypasta
* remove ncu
* ignore companyicons
* improve warnings and errors
* Query param for span using history.replaceState is working
* When clicking again on a node, don’t collapse it
* Close the span view using the same replacing of the search param
* Conditional rendering of the resize panels was causing the tree view re-rendering and collapsing…
* Live reloading moved to where the parent label is
* Span action bar is now deeper
* WIP on trace view navigation changes with shortcuts
* Shortcuts for expanding and collapsing en masse
* Number keys expand/collapse levels
* Changed duration toggle to a shortcut key
* Option + click expands/collapse at that level
* Option/alt left/right expands/collapse at that level
* Removed unused imports
* Link from the runs table to the specific span
* Latest lockfile
* Sorted imports
* When doing a test link directly to a span
* Replay links to the span
* CLI log links go directly to a span
* Keyboard shortcuts are in a popover if the width is narrow
* If holding alt only collapse level
* Don’t expand the individual node if you’re holding alt
* fix additionalFiles for paths up the tree
* warn if additionalFiles pattern produced no matches
* improve deploy warnings and errors, fail early
* changeset
* Fixes various issues with triggerAndWait and batchTriggerAndWait
When using idempotency keys, triggerAndWait and batchTriggerAndWait will still work even if the existing runs have already been completed (or even partially completed, in the case of batchTriggerAndWait)
- TaskRunExecutionResult.id is now the run friendlyId, not the attempt friendlyId
- A single TaskRun can now have many batchItems, in the case of batchTriggerAndWait while using idempotency keys
- A run’s idempotencyKey is now added to the ctx as well as the TaskEvent and displayed in the span view
- When resolving batchTriggerAndWait, the runtimes no longer reject promises, leading to an error in the parent task
* Remove the default queue concurrency limit as we now have env and org concurrency limits
* Use the run friendlyId in the completion result id
* Added some error logging
* graceful exit with timeout
* handle and display graceful timeout errors
* fix for very long waits
* changeset
* increase termination grace period to an hour
* fix dev dependecy resumes
* add catalog entry with multiple trigger waits
* update docker provider lifecycle command
* switch to x for clearing run filters
* Revert "fix dev dependecy resumes"
This reverts commit b4061f2ae71f21889adcf061928e2e77c436f0ed.
* fix dependency resumes, properly this time
* add catalog entry for dependency waits in loops
* advice in docs re parallel dependency waits
* fix link from v3 to v2 docs
* move lifecycle command logging to debug only
* Removed batchOptions from the trigger options and the docs
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* add custom validation to db url env vars
* extract schema from db url and use in all raw queries
* use qualified names in scheduling raw queries
* cook a few raw queries
* Added missing raw query schema specifier to DeploymentListPresenter
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
I’ve also added a “rebalancer worker” that will periodically rebalance parent queues, in case have been any issues with rebalancing (basically a “sweeper of entropy” process)
* Improve the SDK function types and expose a new APIError instead of the APIResult type
* Skip triggering scheduled tasks if the task isn’t found in the current deployment
Also fixes an issue when editing the environments of a schedule
* Database schema and migrations for schedules
* Added schedules to the side menu
* The pagination can optionally hide the page numbers for a compactive mode
* Filters for the schedule page
* Added triggerSource (“STANDARD”, “SCHEDULED”) to BackgroundWorkerTask
* Added the ability to disabled a LinkButton
* Started work on the schedule page
* Environment buttons
* The new schedule form styles
* Added a cxouple of extra fields
* Allow a checkbox to have a rich label
* Added cronstrue package to the webapp
* WIP creating tasks using the form
* Improved the form styling
* Creating schedules is working in the UI
* Minor improvements
* Basic schedule table is displaying
* Creating tasks with triggerSource = scheduled. Refactored how task metadata is stored and accessed to be cleaner
* Resource route
* Fixes in the form
* Added a gap between the environments
* WIP on OpenAI generating CRON expressions
* AI generated CRON expressions is working
* Fix for the CRON field being uneditable after an AI generation
* Improvements
* Table padding
* useThrottle now behaves correctly
* Added filtering to the schedules list
* Improved the layout and fixed CRON search
* Fixed pagination for the schedules list. Just use a regular Prisma query
* Page size of 20
* Added links to the schedule rows
* Get rid of the Last run column for now
* Implement triggered scheduled tasks
Also implemented superjson payloads and dev runtime environment “presence” with RuntimeEnvironmentSession
* Move CronPattern and CreateSchedule into a common client-accessible file
* Latest UI changes
* Fix for creating a task schedule with a blank dedup key
* Refactor the human to cron stuff into a separate file and use json_object OpenAI response format
* Fix for trying to use a hook on the server-side…
* A couple of fixes to the new schedule form
* WIP on viewing a scheduled run
* Make the filters all optional
* Use the RunListPresenter from the schedule presenter
* Display a table of runs… the wrong runs but still
* Runs from the schedule
* Deleting schedules from the UI
* Tidied imports and fixed name of options object
* Disabling a schedule
* Editing schedules
* Tidied imports
* Added icons to the task list, needs some design love
* Added a tooltip for CRON pattersn
* Show the last run in the schedules table
* Some tweaks
* Added a placeholder to the CRON AI field
* Improved the trigger source icon
* Dim out disabled schedules
* Scheduled tasks have the correct icon in a run
* Added the task source icon to the test task list
* Added the date field component to storybook
* Style improvements to the date field
* Implement Task Schedule API
* added a medium sized variant to the date field
* Fixed replay run for superjson payload types
Also now linking from the replaying run to the original run (using span links)
Also added a project metrics prometheus endpoint to detect the state of the queues
* WIP on allowing different forms for testing
* If you pass a string to prettyPrintPacket which is json or superjson, safeParse it first
* Test page, deal json and superjson. Started splitting UI for schedules
* WIP on schedule form
* Removed the Label from the DateField
* WIP on test schedule form
* Fix for the runs page showing the wrong message when there are no runs from time filtering
* Removed labels from the DateField
* Fixes for the form
* Test runs are working for schedules
* Fix for nextScheduledTimestamps in triggerScheduledTask
* Implement idempotency key support and fix issue with cancelled runs causing concurrency usage
* Added API documentation for the schedule API
* Remove log
* Removed console log from runs page
* Transform the recent runs test data on the server
* Fix for hydration mismatch
* Current date as the default for the test form
* Recent payloads working
* Delete schedule modal
* Deal with empty strings from the form
* Set the initial value for the scheduled test form
* Add option to print console logs in the dev CLI locally (issue #1014)
* Export queue from the SDK
* Fix for schedules list when you have no schedule tasks
* Blank states improved
* Make task schedules more generic, to support additional schedule generators in the future
* Removed log from maqrs
* Removed “v3/schedules” export from the SDK
---------
Co-authored-by: Eric Allam <eallam@icloud.com>
Co-authored-by: James Ritchie <james@jamesritchie.co.uk>
* fix: otlp-importer script
* update pluginPath
* Refactor script to ensure compatibility with both Windows and Unix platforms
* Revert command changes
* Fix: Init command was failing on Windows because of bad template paths
* Removed resolveInternalFilePath
* Path fixes for the dev command
* Fix for the import paths being wrong on Windows because the contain backslashes
* The metaOutputKey should have forward slashes in it
* Print the banner immediately, otherwise with bad internet you get a blank console for a long time
* Try normalizing the trigger.config import path
* Allow tsx and jsx files
* Improved task file names and paths
* Removed closing bracket for the upgrade message
* Log out the metafile outputs for debugging
* Log out the entryPointContents before esbuild
* Log the metafile out
* ballmerize the cli
* replace npm-watch with plain old nodemon
* fix text inputs on windows
* changeset
---------
Co-authored-by: Kritik Jiyaviya <kritikjiyaviya07@gmail.com>
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* add waiting for deploy status
* sort tasks filter
* marqs: optional timestamp on enqueue
* add new status to consts
* detect and execute tasks waiting for deploy
* display runs list even without any deploys
* ensure we only execute after the run creation tx has completed
* ensure correct execution order after waiting for deploy
* Don’t swallow some error messages when deploying
* Try and resolve dependency versions using pnpm/npm/yarn
* Adding some debug logs around dependency resolution
* Use npm list instead of npm show to resolve deps
* Improve the dependency resolution
* WIP on replaying a task from the run page
* Don’t pass the existing runs idempotency key, it will cause the replay to always return the original run
* Replay from the run list
* Don’t use fetchers in the replay/cancel dialogs
* API endpoint for replaying a run
* REST API docs (mostly coming soon) but added replay run
* replayRun function added to the SDK
* Cancel run added to the SDK
* v3-catalog file to test canceling and replaying
* Changed the SDK to be runs.replay and runs.cancel
* Removed comment
* Latest lockfile
* WIP fixing pnpm nested install strat
* Add changeset
* Pass (and log) cwd during background worker initialization
* Log out the env
* manually add the .pnpm/node_modules to NODE_PATH if in a pnpm repo
* Remove supports color dep
* WIP on adding versioning to the docs to make it less confusing
* Link to v3 from v2 and vice versa. Also added a warning to the v2 docs
* Make v3 the default
* Trigger config docs about bundling
* Next stpe to triggering guide from tasks overview
* Server actions guidance for triggering
* Moved the trigger.config docs to the end of fundamentals
* Upgrades to MarQS
- It’s “queue choosing” algorithm is now MUCH better (pretty much didn’t work before) and should be performant even when we have a bunch of prod queues
- There are now concurrency limits at the environment and organization level, as well as the task/queue level. So if any of them are at capacity the message won’t be dequeued. This means we can have an org wide concurrency limit, as well as different limits for dev/prod/staging
- I’ve added an admin API that can be used to update the org/env concurrency limits
* More MarQS upgrades
- Extract the queue priortity choosing strategy into an interface
- Implement a much better weighted average strategy
- “Slide the window” of queue candidates if the parent queue sends all at-capacity queues (so we won’t get stuck attempting to choose the same 12 full queues)
- Added some unit tests for the priority stuff
- Added some ideas for expanding the priority choosing strategy with more dynamic features
* Fixes an issue with the shared queue consumer relying on the queue name to get the env id
* Better error output when an ESM only package is required
* Add better errors for npm package errors, and bring deploy errors to the dev CLI
* Handle depot build errors and write out a temporary file to view the build logs
* Add changeset
* v3: implement configurable log levels via config file and TRIGGER_LOG_LEVEL
Also, test runs automatically set the TRIGGER_LOG_LEVEL to debug
* Fix type error and changeset
* Added a Node.js runtime check for the CLI dev command
* v3: Dynamically import superjson and fix some bundling issues
* Added changeset
* Better error handling in the registry proxy and catch uncaught exceptions and unhandled promise rejections instead of crashing the server
* Await the prettyPrintPackage
* add and use machine config
* assign tasks to worker nodes only
* add secure flag to zod connection
* changeset
* add pre stop hook
* don't use secure connection by default
* pass more identifiers to provider and apply labels
* Add missing API keys docs and link from the web app to them. Renamed Server API keys to Secret keys
* Correct link to env var docs
* Duplicate image fixed on environment variables docs
* superjson output support
* Better support for superjson in the task events, limiting output attributes
* Offload large outputs to object store (r2)
* Finishing up the offloading of large outputs/payloads to an object store
* Adding a changeset for v3
* Add a version field to @trigger.dev/core-apps package.json
* Build trigger.dev when doing a prerelease
* bundle @trigger.dev/core-apps with trigger.dev cli
* Fix the init command config template
* Don’t use * for the @trigger.dev/core dep version specifier
* strip workspace: from the package version before installing it
* Added dependenciesToBundle config option to bundle ESM only packages
* Added logging around resolving dependency paths
* Try again
* Resolve dependencies based on the project dir first
* flip the bundled default
* Adding some logs around dev task completion notifications
* Adding some additional logs
* Add more logs
* Write out the log using process.stdout
* Store pending completion notifications and resume them when awaited (fixes race condition)
* Cleanup some of the logs
* Copy over the postinstall step from the projects package.json
* Add support for including additional files when deploying (e.g. prisma schema)
* Don’t run scripts when resolving deps
* copy all the files just in case anything is needed in postinstall
* Remove duplicate option
* Use the tag when outputting the dev command
* Remove the postinstall script
* add the trigger dir to the config if the default is not chosen
* Remove the “hud” display in the dev command
* trigger file names with dashes now work
* Better file watching in dev
* Much better duplicate ID experience now
* Much better “Project not found” error
* Export the handleError function types from sdk
* Add support for configuring instrumentation
* Upgrade and unify @opentelemetry/* packages (and remove storybook from the webapp)
* Fix typescript error in react package
* Upgrade react types in webapp
* Allow span icons to be determined based on the span name (e.g. prisma:)
* Ignore built-in env vars when checking for env vars, and allow continuing the deployment even if missing env vars were detected
* Improve the retry.fetch default behavior and option structure
* Fixed typescript errors with packages/email react types
* Update the retry.fetch docs
* Trying to use the @upstash/ratelimit package with ioredis…
* WIP using the redis package instead
* Revert the action back
* Removed redis
* Started refactoring
* SQS setting for the poll interval. Set the default queue reading to be slower
* API rate limiter as Express middleware
* Organise imports
* Fixed spelling mistake “limitter”
* No authorization header response is problem+json
* add checkpoint restore events
* fix retries.enabledInDev
* fix tsconfig paths
* fix provider build and dev
* update kubernetes provider and fix builds again
* upgrade prod base to node 20
* update infra publish workflow
* rethrow k8s errors after logging
* shorten index container names
* fix error type assertion
* rename type assertion
* remove resource limits for now
* add missing run id on create
* add push to deploy command for self-hosting
* checkpointing fixes
* update coordinator image
* ensure valid registry login
* delete checkpoint archive after successful push
* log options on error
* structured logs for socket connections
* fix structured log merge
* exit process after checkpointing
* update restore pull secret name
* append shortcode to restore names
* log handler payload
* disable post start lifecycle hook
* pass in coordinator host via volume
* replace dapi with taskinfo
* add missing restore label
* don't restart restored containers
* remove init container from create
* atomic post-completion checkpoints
* switch to run id for container names
* improve wait accuracy
* measure basic checkpoint perf
* always log disconnect reason
* use system clock to end wait spans
* checkpoint readiness and cancel signals
* restore from checkpoint events and fix statuses
* remove attempt id env var
* restore dependencies from events
* reconnect wip
* lifecycle hooks are back
* fix hooks and improve reconnect
* make docker send postStart hook
* only checkpoint for retry if large delay
* fix a few more resume issues
* lifecycle hook fixes
* skip connection handler when waiting for post start hook
---------
Co-authored-by: Eric Allam <eric@trigger.dev>
* v3 projects can only be created if the org has permissions to do it
* Admin page
* Removed unused classes
* Admin org page, with links between user and org pages
* Set v3 enabled or not
* fix: [nestjs integration] fastify HTTP adapter detection now works correctly for response headers
- fixed a bug where Fastify responses were incorrectly processed as Express due to overlapping method names.
- introduced type guards to differentiate between Express and Fastify response objects.
- bumping @trigger.dev/nestjs patch version to 2.3.19
* fix TS type check build error
* Started building out the docs navigation
* Drafted out a lot of the docs pages. With just titles and descriptions with a coming soon message for now.
* A ton more scaffolded pages with titles, descriptions, coming soon/incomplete docs messages
* Created the remaining page stubs
* Introduction page improvements
* Lots of docs changes, mostly the task overview page
* Moved some bits around
* Task overview fleshed out
* Triggering docs page
* Regular task page
* CLi dev docs
* Docs for debugging locally
* Environment variables docs
* Added env var images
* Deployment guides
* Updated the title of “Integrations” to “Deployment integrations” to make it less confusing
* Lots more docs pages
* Changed the language to JavaScript
* Fixed typos about queues and added a simple code sample
* Moved the local debugger docs into the CLI dev page
* Added the CLI deploy options
* Delete the local debugger page
* Updated the logging page with structured logging
* Added the new CLI deploy options
* Change to h4 for one of the options
* Errors page
* WIP on retrying
* Retrying guide
* Wait docs pages
* Queuing docs simplified, partial written
* Queuing and concurrency docs
* Run tests docs
* New combined error and retrying page
* Errors and retrying page updated
* More docs
* Added a possible configurations coming soon table
* Created a limits page
* Added warnings about how you need to get early access
* Minor fixes for the docs
* A bunch of changes to the config file:
- No more default export, the config is exported via the `config` named export
- `handleError` is moved to a separate named export
- Added the ability to include additional packages (e.g. wrangler) that aren’t included by default (think CLI usage)
- More reliably install packages in dev
- The config is now built first instead of directly imported, meaning we can now support typescript config files (`trigger.config.ts`)
* Update to trigger.config.ts in `trigger.dev init`
- Time out deployments to prevent never-ending building/deploying
- Use the CURRENT worker deployment when determining which version to execute
- Fix some of the deployment error handling logic
* Removed feedback button from PageHeader
* Show a different feedback button in the side menu for v3 projects
* Fixed issue with button wrapping on smaller width browser
* Adding a v3 feedback button top-right
* Changed paused to frozen for attempts
* Reordered and renamed run statuses
* Dropdown status menu shows tool tips on hover
* Added a new DP feedback button in the header
* Created a more useful feedback sheet
* Added loading bar animation to storybook
* Switch the integration page to point at the “feature” help instead of “integration” which has been removed
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* DevPubSub: use the schema that’s already been defined
* Publish a message to projectPubSub when a new DEV worker is created
* Live reloading of the tasks table (for dev tasks)
* Live notifications for deployed workers as well as local workers
* Store startTime in nanoseconds since epoch, ensure logs using nanosecond precision for their timestamp (so they are not out of order)
* export task events immediately in dev
* Use “@v3” instead of “@latest” for the npx commands for v3
* Split the Timeline into a component so it can live refresh without re-rendering everything
* Timeline now live refreshes on the client every 500ms when run is executing
* The timeline bars now animate their position/width when it changes
* Export some more types from TreeView
* The vertical lines in the run tree view are now brighter
* Blank state when you click a task with no runs
* Canceling from the runs table
* Fix for styles coming through incorrectly to properties
* Fix for the OTEL output column having a $output prefix if it’s an object
* Tasks get the SHOW_ACTIONS property
* Override properties with the passed in ones in eventRepository
* Link from deployments to environment variables page, no need to link to docs
* “Show parent items” keeps the selected item selected
* LinkButton can accept onMouseDown, onMouseEnter and onMouseLeave
* “Show parent items” keeps any items focused and has a keyboard shortcut
* Action bar with focus button
* Canceling is working
* Nicer layout and button loading and disabled state
* US english spelling “Cancelling” -> “Canceling”
* Added a confirm modal to canceling
* Copy tweaks
* Fix for bad import
---------
Co-authored-by: Eric Allam <eric@trigger.dev>
* fix basic resume mechanics
* fix dependency resume
* fix deploy page sort
* remove task list console log
* checkpoint restore between attempts
* add checkpoint requirement checks to docker provider
* switch to raw execa for long statements
* catch and report pre-connection index errors
* graceful worker shutdown after completion
* fix final completion
* use same task process for each attempt
* update retry catalog entry
* add immediate return task
---------
Co-authored-by: Eric Allam <eric@trigger.dev>
* Adding telemetry to the deploy command
* Add ability to opt-out of telemetry in the CLI
* Remove log
* Unifying some telemetry stuff and adding it to the login command
* init command
* Remove extra trigger dirs
* Couple tweaks to the init CLI
* Don’t use npm init -y to create the package.json file
* Tasks get the SHOW_ACTIONS property
* Override properties with the passed in ones in eventRepository
* Link from deployments to environment variables page, no need to link to docs
* “Show parent items” keeps the selected item selected
* LinkButton can accept onMouseDown, onMouseEnter and onMouseLeave
* “Show parent items” keeps any items focused and has a keyboard shortcut
* Action bar with focus button
* Canceling is working
* Nicer layout and button loading and disabled state
* US english spelling “Cancelling” -> “Canceling”
* Set the “current” deployment in WorkerDeploymentPromotion when a new deployment is completed
* Deployments page added to sidenav
* Basic deployments page working
* Pagination for deployments
* Right-align the pagination controls
* Improved the blank state
* Selected deployment panel
* Improved the side panel
* Using the new run status instead of run attempt status
* The test page now uses the TaskRunStatus as well
* Organized imports
* Use TaskRun icons instead of attempt ones
* 10x zoom on the run timeline
* Add the ability to handle errors at the task and project level
* Cancel in progress runs when disconnecting the dev CLI (in between attempts)
* unify the task executor across dev & prod
* useLinkStatus hook
* Now you can customize the appearance of InlineCode
* Created <TaskFunctionName/>
* The test page now has an environment selector at the top
* zod ipc connection with acks
* pass sender through to ipc handlers
* bits and bobs
* add host networking back in
* disable verbose logs
* restore after tasks and batches.. almost
* restore and resume all the things
* fix for systems without checkpoint support
* Get deployment indexing errors to work with the new ZodIpc stuff
---------
Co-authored-by: Eric Allam <eallam@icloud.com>
* Add support for deploying to staging and prod
* Abort deployment if environment variables are missing
* Actually do typechecking
* Remove the build command and add a —self-hosted option to the deploy command
* WIP proxy/deploy
* WIP, registry proxy in express working
* A couple of notes, preparing for indexing
* Move the changes to prod-worker into the new file
* Deploy command working with indexing and runs (docker provider only for now)
* Removed ts-expect-error directive
* Fixed build command
* WIP new login page
* Remix meta v2 implemented on the root page
* Added a spinner colour that works on our primary green
* Added new company logos
* Improvements to the login page
* Updated the meta function so the login page is responsive
* Fixed issue with the new logos not colouring correctly
* Login page now nicely responsive
* font size fix
* Spacing improvement
* Improved style of the relative time dropdown
* Fixed viewport meta on login pages
* oranised imports
* improved the Sheet and feedback form
* Text area style update
* Feedback form tweak
* New project copy change: Project type -> Project version
* Runs filters use the correct variant
* Improved the select style
* Inputs now styled like Selects
* Removed login form from storybook
* Popover style tweak
* Popover looks like other filters
* Removed gap from filters and organized imports
* Cleanup
* Organized imports
* Made the inline code block smaller
* Fixed active badge label not being readable
* Fixed hero icon inside the button in the welcome page
* Fixed the filter button variants on the v2 runs page
* Fixed the select styles on the v3 runs page
* Improved the switch
* Fixed the filter styles on the events page
* Run page summary panels look good
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* Added more clipboard variants to storybook and improved styling
* Improvements to the clipboard components
* Code blocks match the design
* Improved the code block styles
* Dialog modal improvements
* Improved the free plan usage bar
* Better alignment of the shortcut icon in the button
* Side menu displays ‘v3’ next to the project header
* Page header improvements
* Project dropdown displays a badge if it’s a v3 project
* billing page now shows message
* Added the v3 badge to the project list page
* version 3 projects skip the select plan onboarding
* Added a new blank state to the runs page
* Conditionally set the blank state on the runs page
* Button padding tweak
* Updated the task and attempt icons
* Added a new blank state to the runs page
* Added more buttons variants to the button storybook
* Added new blank onboarding state for the tasks page
* Added a blank state to the test page
* Fix for bad svg attribute in TaskIcon
* Onboarding tweaks
* Add the projectRef to the init command
* Task icon is blue
* Added a v3 Project settings page
* Fix for typecheck error
* Added the new CodeBlocks with rowTitles to the span panel
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* add zod socket
* start using zod socket
* use zod socket for shared queue
* use shared provider shell
* update k8s provider task ops
* set otlp endpoint
* update docker actions and fix builds
* remove unused types
* update injected secret key env var name
* complete socket.io types to schemas migration
* update env example to new v3 key var
* fix coordinator build
* set task run label
* ensure attempt id is always set
* increase prod worker timeout
* set otlp endpoint for on runs
* pass otlp env var to prod worker
* auto-remove completed index jobs
* Initial work creating the Redis publishing and subscribing
* Live view is working
* Show the live reloading status on the page
* Fixed some style issues on the run page with James
* Fix for invalid JSX attributes in the ExitIcon svg
* Some sexy shit
* The end line is now correctly coloured
* millisecondsToNanoseconds exported from core/v3 and imported correctly
* Fix for e2e tests, we changed the h1 to an h2
* Tidied imports
* Removed unused hook
* Added the new colours to the Tailwind config
* Fixed Tsailwind compile errors
* WIP Geist working in the app
* WIP Storybook
* Storybook is working again… ouch
* Use Geist mono for CodeMirror
* Some find/replace class changes
* Resizable colours improved
* WIP on primary button
* Minor style improvements
* Improve the side menu header styling
* Improved v2 breadcrumbs
* Account side menu tweaks
* The page now works with the NavBar and UpgradePrompt
* Removed unused import
* Refactored the buttons to be dry-er
* Removed the breadcrumbs
* WIP on nav bar
* WIP updating the button styles
* Fix for the old test page
* Fix for type errors
* Removed console.log
* Colour change in the resizable handle
* New loading bar divider
* Removed the design plugin
* Creating our own storybook pages
* Added some “storybook” pages
* Added DetailCell storybook
* WIP new animation for the loading page
* Added the new loading divider
* Fix for the time frame filter having a green border
* Style improvements to the new test page
* Small style improvements
* Improvements to the list pagination components
* Nav bar back button improved
* Improvements to the run page
* Lots of v2 style improvements
* Help looks better
* Improvements to the regenerate API key modal
* More general improvements
* Added section titles to our storybook
* Added form stories
* Fix for missing key prop
* Loading bar is working
* Fixed button submitting state
* Fix for the test button icon
* Code bg improved
* Improved oauth buttons
* Integration page header fix
* Various improvements, mainly changing button variants
* Segmented control style updates
* Added an outline of 3px for the segment control
* Fixes for the billing pages
* More pricing improvements
* Added dialog to storybook
* Typography now in storybook
* Free usage bar added to storybook
* Added inline clode to storybook
* Separated menu types into a sub section in storybook
* NamedIcon now in storybook
* Added page header to storybook
* Added pricing callout to storybook
* Added radio groups to storybook
* Added segmented controllers to storybook
* Added shortcuts to storybook
* Added switches to storybook
* Added toast to storybook
* Added tooltips to storybook
* Added tree view to storybook
* Added usage charts to storybook
* Tarted up the environment variables page
* Fix for the FreePlanUsage panel bg colours
* Added new badge variants
* Added the <TaskPath /> to the tasks table
* Span header improvements
* Started work on the timeline
* Started work on the timeline
* Fix for the run page header
* Timeline tick marks are working
* Timeline working
* Got the durations showing on hover
* Button improvements
* Experimenting with how the duration should be shown
* Lots of refinements to the timeline
* Much nicer API for the Timeline
* The switch is now purple to match the design, with inverted thumb when on
* Removed old stuff
* Export the props
* Added the span with duration back in
* Simplified more and fixed the span durations
* Put in some decent dummy data
* Rendering defaults
* Wip with the mouse cursor
* Improvements to the story
* Added Slider primitive
* Integrated the icons into the slider
* Lots of layout improvements
* Cleaned up imports
* “Root” indicator
* Animated background on partials
* Pull the styles through to the spans and log dots
* Fixed some bugs in the TreeView when nodes get created or destroyed
* Fix for incorrect parentTask reference
* Added run streaming endpoint for live refreshing
* Added the tabs to Storybook
* Fix for status font size mismatch
* Fix for the misaligned run filter status
* Set a minimum duration on the timeline
* The TreeView now re-calculates if the number of nodes has changed
* Partials now render to the end
* Improved the durations gutter
* The duration is calculated using the current time if there are partial events
* Added the environment label to storybook
* Improved the environment label style
* Removed bottom margin from badge
* Button style improvements
* Callouts style fits the new design better
* Got the scrollbars to appear on the tree/timeline
* Added scroll support
* Synced scrolling working
* Close button and exit icon for the detail panel
* secure field shows start of env
* Clipboard improvements
* Latest lockfile
* Fix for the durations wrapping
---------
Co-authored-by: James Ritchie <james@jamesritchie.co.uk>
* WIP no bundling
* Convert dev CLI to use an unbundled build process to support otel instrumentation
* Fix pnpm lock file
* A couple of fixes to get typechecking to work
* Show runs as cancelled when killing the dev CLI
* Fixed error when waiting for a task
* Deprecated workers will no longer be able to run unlocked task runs
* Fixed selecting the latest background worker version in test list
* Don’t propogate trace context when triggering an async task
Also add batch id to the context and the task events
* Added isTest to TaskRun
* TriggerTaskService now accepts isTest and adds it to TaskRun if set
* Set the cliVersion and sdkVersion when indexing
* Added a test page
* Radio buttons are now circles and accept a ReactNode
* The background of the code editor is now darker
* WIP on the test task page
* Improvements to the test page
* Testing is working
* Fix typo
* Show the real isTest value in the runs table
* Added a key to the outlet so it correctly resets all the state on the sub-route
* New API keys page working
* Added EnvironmentVariable and EnvironmentVariableValue tables
* Environment variables presenter and repository started
* Icon now accepts a ReactNode as well
* The create form is working
* Improvements to validation
* Getting all the environment variables is working
* Editing an env var working
* Fix for deleting a value from an env var
* Separate route for adding new env vars. Works with “Save and add another”
* Editing is working properly, and revealing all values
* Deleting env vars
* Get environment variables with the environment id
* Added th env vars count to the Environment variables page
* Removed the commented out old Env & API keys side menu item
* Fix imports in ClipboardField
* Added a storybook page for all the variants of input fields
* Upgraded Tailwind for the :has selector
* Fix for the edit button not filling the width
* Reworked the input fields so they work with a variable width icon on the left
* Improvements to the new env var modal
* Improve the style of the edit environment variable panel
* Fix for when Input is type=“text”
* Icon now works with FunctionComponents and ComponentTypes properly
* Removed a console log
* Removed unused imports
* Use a const schema for SecretValue
* Added friendlyId to EnvironmentVariable
* WIP
* retry.fetch w/intercepting to test
* Fixed the incorrect renaming of limit to maxAttempts in v2
* Fixed source map support in dev
* Cleanup background worker files once they close
* Support for batch triggers
* Various trace fixes and improvements
* Moved trace into the logger, fixed span cardinality issues with waits and triggers
* Add support for attaching a debugger in dev with —debugger flag
* WIP on saving the resized state in a cookie
* Progress on remembering the panel width
* The resizable panel now remembers even when closed
* Improvements to the span panel
* Hide integrations in the v3 side menu
* Added “UTC” to the times
* WIP changing how styles work
* Reference unflattenAttributes from the package
* Unflatten now correctly unflattens arrays
* Unflatten typecheck fix
* Improvements to the spans and UI for them
* Added the “events” to a span, including special styling for errors
* Unflatten doesn’t work on an array of Attributes
* Added ProjectVersion to projects, defaults to V2
* Moved v3Enabled to the existing feature flags
* Update to using the v3Enabled feature flag
* Allow people to choose v3 when creating a new project
* Added version to the ProjectPresenter
* v2 project and v3 project redirecting
* .env.example for the v3-catalog
* Added sdkVersion and cliVersion columns to the BackgroundWorker table
* Added additional classes for environments
* First draft of the Tasks table
* Link to the task page
* V3 side menu project items
* Moved the ListPagination component into the components folder
* Moved the TaskListPresenter to a v3 folder
* Bare bones task page with tabs
* Task page, we’re going to delete this though
* Bare bones runs table working
* Rejigged the columns
* The run table status
* Environment and status filtering working
* Added time filters
* Cursor and direction is working… I think it’s tricky to know for sure
* Added TaskRun numbers
* Selecting a task now links to the runs page with filters turned on
* Added support for the enqueued status
* Reworked the task table
* Link to the task and environment runs
* The run page is rendering a tree of the events
* Change the task table column to “Created at"
* WIP on making the run tree view look good
* Improvements to the run tree
* Removed the janky scroll bar flash
* Change the title of the task logs to just the task ID
* Live timer when a span is running
* Added “Show parent items” link
* Fixed the bug jumping to parent items
* Style improvements to the run
* Added the resizable handle to the run page
* Moved formatDuration to core/v3
* Wait for now has nice log messages
* The run detail panel is working with just a title for now
* Navigating to a span and persisting between page reloads is working
* The run detail timeline
* Wrap log dates in a paragraph
* Latest span detail view
* Scrolling in the right-hand panel
* Tweak default resizable layout for the run page
* Attempted improvements to stop a recursive issue on TreeView
* TreeView useReducer WIP
* Changed the change callback
* Add changes to the state
* Use the new onSelectedIdChanged in the app
* Don’t update the state from the outside
* Filtering fix, although navigation doesn’t work nicely
* Filtering working when changing the content and clearing it
* Don’t allow the same selectedId callback to be called twice…
* useDebounce hook
* Switch from using defer to just typedjson for now
* Latest attempt at span navigation
* Removed log
* Turn off filtering for now, it’s causing the Links to break somehow
* Fix for page height issue
* Added (Developer Preview) to the v3 project select box
* Revert "Filtering working when changing the content and clearing it"
This reverts commit 20d9fbe36ded619e9d3eb0b23d4ed0568a88a615.
# Conflicts:
# apps/webapp/app/components/primitives/TreeView/TreeView.tsx
* Switch to using the old filtering
* Added useThrottle hook
* Instantly close the panel when deselecting a node, use debounce when navigating to a span
* Better spacing in the right hand panel
* Comment out the v3 side menu pages that don’t exist yet
* Fix for typecheck fail
* Clear the statuses too
* Introducing Modular Asynchronous Reliable Queueing System (MarQS). Works in dev
* Convert MarQS to using lua and dealing with concurrency
* Simplified the timeout queue and current concurrency is now a set instead of a flat value (to support idempotency)
* Implement task heartbeating and reconnect the background workers CLI when the websocket connection reconnects
* Start adding internal telemetry support for the server
* Get env vars to work in dev and implement prisma tracing in webapp
* Cleanup telemetry and implement it in the consumer
* Implement dequeuing a message from a parent shared queue
* Implement a custom logger exporter instead of using console log exporter
* Use node instead of shell for generating protocol buffer code
* Propogate trace context into debug logs, and allow turning off logger exporter through env vars
* Switch to using baselime for internal otel data
* Make orgMember optional to fix type issues
* Provide the CLI dev env vars through the CLI, don’t build dotenv into facade
* Removed the logger import
* Address Matt’s comments
* Addressing more of Matt’s comments
* Handle sending an execution after a websocket connection closes
* Remove auth from the env attributes to prevent obfuscation
* WIP creating a TreeView component
* Very simple tree displaying
* WIP on TreeView types
* The state is computing properly
* Improved the state and types
* Virtualized rendering
* Added state inside the useTreeState hook
* Selection working
* Deselecting nodes
* Toggle selection
* Expanding/collapsing nodes
* Get notifications when changes are made
* Only try show the visible items
* Experiment to try getting cell animations working
* Renamed hook to useTree
* Keyboard navigation is working
* Proper focus support
* Nice selection of the parent by pressing left
* End selects the last visible node
* Showing how the TreeView can accept a selected id and expanded ids from the outside
* The useTree hook now uses selectedId and collapsedIds to make it easier to use
* Check the inputs are valid before applying them, ignore if they’re not
* Don’t allow a selected node to be hidden by collapsed parents
* Nicer API for the onChange callback
* Supports animated collapsing of the tree view
* Nice smooth scrolling
* Removed logs
* Removed unused key
* Remove intricate estimation
* StandardTreeView has lots of good defaults baked in
* Allow passing of parent class name in
* Work on scrolling to the node… needs a bit of a reshuffle
* Just make the TreeView better rather than adding StandardTreeView
* Renamed rowVirtualizer to virtualizer
* Move the virrtualizer into the hook
* Scrolling to selection is working
* Added filtering
* If you have an org with no projects, it displays in the project dropdown with a “New project” button
* When creating a new org disable the button whilst it’s doing the request
* If an org already had any deleted projects it couldn’t be deleted…
* When selecting the best project, factor in deleted ones
* Don’t show the cancel button when creating a new org if there are no non-deleted projects
* If a project has already been deleted just return
* Added the org settings page to the sidebar
* Added loading states when renaming/deleting projects
* Don’t show deleted orgs in the app
* The actual db migration file
* The Org settings page with the actions working
* Don’t remove org members, just leave them
* Don’t show invites from orgs that are deleted
* Allow disabling IntegrationConnections
* Don’t refresh IntegrationConnections that are disabled
* Set all the integrations as disabled
* Updated the unsubscribe checkbox text
* Unsubscribe route
* Use the magic link secret, not the encryption key. Also make the error message more vague
* Only members of the org or project can rename them
* Don’t throw an error if the connection can’t be refreshed, return undefined instead
* Side menu: selector title changed to project. Changed section headers and made it Slack + Discord
* Added project settings page. Renaming is working
* Added project.deletedAt column
* Deleting projects WIP
* Allow clearing the project from the session
* Don’t load projects that are deleted
* Improved the project selection logic
* Clear the session project id when deleting a project
* Deleting the last project in an org now works. The new project page doesn’t have the sidebar anymore.
* Removed false code comment
* Added the JobRun index back in, using Prisma. Otherwise it tries to remove it on each migration
* Only return environments where the project isn’t deleted. This will block API calls
* Do the project deletedAt check in code, not SQL
* Made it clearer what the code does with a comment and applied the same logic to the public api key
* Optional next/previous with the list pagination
* Defer the loading of the runs table
* Only return the latest run in a separate query, then do a join in code
* Added a composite index to speed up getting the latest run from a job id
* Added Endpoint deletedAt column
* Only show endpoints where they’re not deleted
* Don’t delete Endpoints, set the deletedAt and change their slug name
* Only perform indexing if the endpoint isn’t deleted
* Have a nullable URL for endpoints
* Deal with null URLs throughout the app
* Re-running and retrying behaves properly when there’s no endpoint URL
* Remove console.log
* Better error message when doing a run
* Added a subtask for testing
* Make it easier to run the CLI from the nextjs reference project
* Copies of the run and statuses endpoints, but without simplifying the run statuses
* Use the new v2 endpoints that give the full run statuses
* Removed unused import
* v2 events endpoint with the full run status info
* Changeset
* A checkbox can now be readonly and not be checkable, with correct styling
* Use readOnly for the hasCustomClient checkbox, not disabled
* Better styling of the disabled state
* The update oauth form too
* Pass subscription status into the usage bar
* Page navigation spinner is now blue (was a bit subtle before)
* Better logging of db queries, this will be commented out before the PR is merged
* Select only the required fields
* We don’t need the member count for each org
* WIP redirecting with projectId in session
* Switching projects is now working, without duplicating the project query
* Removed logs in revalidate function
* Removes some unused imports
* ProjectPresenter: removed lots of unused db selects
* Root use defaultShouldRevalidate, not just true
* Simplified the job list query and separated the deleting job modal query
* Use requireUserId instead of requireUser wherever possible
* EventListPresenter query simplified
* Simplified the RunListPresenter query
* Disable query logging
* Use the latest updated version for the job list table
* We need to use the org presenter on the select plan page
* Updated to the latest remix-typedjson package
* Throw an error if the org isn’t found
* Use defer. Doesn’t work because Date isn’t deserialized correctly
* Use regular defer, typeddefer isn’t working properly…
* Don’t update remix-typedjson, wasn’t needed
* Organize imports
* Fix for typo in error when a Job invoke fails
* Can disable runs for an Organization
* Don’t perform runs if runsEnabled === false for an Org
* Exceeded runs messages made into errors, they were very subtle
* Return the runsEnabled property for each org
* More obvious message if you’re over the free run limit
* Added a red border to the free usage panel if you’re over your run limit
* Added missing property to Storybook for the FreePlanUsage component
* WIP on absolute date filtering for runs
* Use the date hook instead
* Reworked the date field again so the state behaves nicely
* Way better date filtering
* Setting the absolute date is working well, also clearing filters
* Reverse date format
* Turn off the guide
* Added time filtering and clearing to the events page
* Initial CLI commit
* Hooked up the CLI so it actually shows stuff…
* Totally reworked the v3 CLI to be based on our existing CLI (Commander)
* WIP on PersonalAccessTokens and AuthorizationCodes
* WIP creating a Personal Access Tokens page. Created a new sidenav for account pages
* Creating tokens is working but the form is broken
* Tokens are created in the UI
* Creating and revoking access tokens from the UI is working
* Improved the create form and copy
* Tokens are a bit shorter and only lowercase
* API endpoint for creating AuthorizationCodes and the web page users hit to create PATs from them
* V3_ENABLED env var and hook that can be used in the UI to show/hide things
* API route to get a PAT (within 10 mins of creating an auth code). Moved some code to core
* Start to build the login command
* Nicer banner when starting the CLI
* Nicer update checking
* Update command style improved
* Removed the template step
* Login command options are now working
* The new CLI is logging in using the Personal Access TOken. But I need to save it still
* Logging in and saving the token is working
* Deal with already being logged in
* Who Am I working with PAT
* Deleted old account side menu header
* Improved the copy on the Auth code page
* Added docs for the login and whoami commands
* Added readme instructions for the update command
* Removed some unused things
* Remove fetchUseProxy for now
* feat: runs filtering by relative timeframe
* improve logic
* Used formatDateTime
* fix: logic of determineTimeFrame() function
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* feat(logger): accepting Error objects as parameters in io.logger.error()
* Allow errors for any log level
* Create silent-ties-vanish.md
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
The SubtleCryptoProvider cannot be used in a synchronous context. This
is a problem for non-node environments where the Stripe client falls
back to SubtleCryptoProvider.
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* Don’t show internal events
* Show the cancelled time
* Made the Pagination component accept any compatible list type
* Changed some wording on the event detail page
* Run filtering is now shared: runs page and job runs page
* Use optimistic location
* Improved the type in the run status filter dropdown
* Organize imports
* feat: view teammates' job runs on dev env
* fix typechecks
* feat: add filter functionality on task run page
* feat:adding filter functionality on run task page
* changes filter from csr to ssr
* changing filter functionality from csr to ssr
* adding url.string() for navigation purpose
* improving state management in filtering
* When setting a filter, delete the cursor and direction
* Some design improvements for the "All" options
---------
Co-authored-by: hmacr <hmac.devo@gmail.com>
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* updated companyicons package
* Changed custom help so it doesn’t show code examples
* Added Asana / Instagram / Salesforce / Segment / Square / Svix / Snyk / Todoist & Zapier http endpoint examples to the integration page
* Commented out some of the apis we dont have code examples for
* Uncommented raycast and reddit
* Updated the blank state copy
* Changed the copy so it works better on examples with and without code
* Added Brex / Discoed / Google Sheets, Docs, Drive / Gmail / PagerDuty / YouTube endpoint examples
* Added more examples
* Change the top tab to ‘Examples’ and updated /examples links to point to trigger.dev/apis
* Update package.json
* Updated pnpm-lock file
* Updated pnpm-lock file
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* feat: Add ability to cancel all runs for job from SDK
* Create nine-trainers-vanish.md
* Cancel runs that are executing and waiting
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* feat: Add to eventFilters
* not filter test case added for false evaluation
* Added a patch changeset for @trigger.dev/core
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* Add support for the built-in Trigger.dev tunnel for local development
* Remove the test script from yalt
* Add to the README
* Improve the outdated packages warning
* Initial commit - started work on new billing components
* Added a slider component
* Added features to the pricing tiers
* Small pricing tier margin tweaks
* WIP on a concurrecy chart
* Reworked the pricing tiers to include a segmented controller and tooltips
* Renamed the charts storybook page
* Made the way data is added more flexible and added some definition tool tips
* Term definitions are used properly in the tiers
* Callouts can now have an optional CTA on the right hand side
* Alignment fix for the callouts
* organize imports
* Definition tooltip now its own component
* renamed the storybook story
* WIP new volume discount table and usage sliders
* Added pricing calculator sliders
* Fixed alignment of the legend
* Breadcrumb now has an upgrade prompt and button
* New Join our Slack button in the side menu
* New progress meter in the side menu
* Use the highest of 2 values to show progress
* An attempt to fix the step count in the calculator slider
* WIP usage progress bar
* Added the 4 progress bars
* More examples of the usage bar
* Better way to include the percentage in the free plan progress meter
* The usage bar now works with the extra runs over the free limit
* Pricing calculator has better slider logic
* Moved the free plan usage bar into it’s own component and added it to storybook
* Usage bar chart now supports a paying customer option and optional billing limit. Also added more usage examples to storybook
* Added more examples of usage to storybook
* tooltip takes classname
* Format numbers nicely
* Added a tooltip to show the precise numbers in the chart
* small improvements to the billing calculator
* New onboarding choose plan page
* pricing tiers better fill the size of their container
* Removed unused code
* Usage bars animate
* Wording tweak
* Callouts fit the button size better
* Added new routes for the 2 new billing pages
* import cleanup
* Added meta info in the header for bill price, plan type and billing period
* made free a noun
* Added pricing calculator to the plans page
* Fixed some illegal markup when using tooltips
* Added container query support
* Added new concurrency chart to the usage page
* billing now has a green theme
* Simplified the plan summary info int the header
* Fixed padding alignment
* Use a custom lable for the concurrent runs chart
* Removed the Job runs table
* Latest lockfile
* Show a message if you haven’t done runs yet
* Added a layoutId to the pageTabs
* Show a message callout if you’ve exceeeded 10k runs on the free plan
* Added a callout on the plans page if you’re over the runs limit
* Fixed button inside button bug
* Removed the background gradients from the app
* The billing package is importing properly
* Getting the curent plan for an org
* Reading the current plan and usage
* Hooked up the free plan bar
* Render basic billing details
* vol discount table has optional values
* Added a new page to show new subscribers
* Created a new hook for confetti on the subscribed page
* Toast styling updated
* The Invoice and Manage card details links are working
* Meta appEnv data optional
* Data for the plans page
* Format the billing period duration in days
* Switch to 20 icons
* URL for the subscribed page now includes the org path
* New pathBuilder path for the subscribed page
* Plans are upgraded/downgraded successfully
* Fixed badly named paths
* Improved some of the display
* Deal with when the user has canceled so they can re-upgrade
* Subscribing from Stripe is working, and canceling
* Tidied up some bits, latest billing package
* The tiers are now rendering using the real data
* The onboarding screen is hooked up, but not linked to yet
* Onboarding price selection working
* Pricing slider working
* Price estimation working
* Pricing calculator working on the select a plan page
* Button copy change
* Improved the layout of the run calculator marker
* Fix for the period end when you’ve canceled
* Improved the formatting in the calculator
* Pricing table tooltip uses the vol discount pricing table
* Remove the vertical lines from the calculator
* Contact us button in Enterprise tier opens the contact us form
* Added composite index to triggerdotdev_events.run_executions for event_time and organization_id
* Concurrent run chart data
* Improves styling, fix for React error with Enterprise contact button
* Show warning box when you’ve hit the concurrency in the past 30 days
* Lots of work o the usage page
* Improvements to the usage page
* Show 31 days of data, fix for not showing the current date…
* Stripe portal links are generated when the user clicks through
* Better alignment of the reference line and x-axis label
* Readme update
* Fixed pricing button loading buttons
* Show warnings about concurrency and runs on the plans page
* Removed some storybook stories
* Join Slack channel shows if you’re subscribed with instructions
* Added a gap between the runs charts
* Improved the definitions
* Added some margin to the page loading spinner
* A wider, cleaner feedback panel
* Modal backgrounds match the Sheet style
* Fixed menu item text being clipped
* Improved icons for execution time and exclusion count
* Concurrency chart now renders the dates nicely
* Fix for plans data on the plans page
* The healthcheck doesn’t need to do a HEAD request to /
* Better disabled states and fixed the disabled hover state issue
* Improved the segmented controller style
* loading spinner now centered inside the button
* Redirect to the project page when selecting the free plan
* Fix for “Runs” and added real date to upgrade warning
* DeCAPITALIZED some things
---------
Co-authored-by: James Ritchie <james@jamesritchie.co.uk>
* Updated the examples section with new links / changed showcase link to project showcase
* Added links to the api pages for all of our integrations
* Deleted card from the airtable tasks page
* updated the plain SDK
* Updated the action to support the new Threads SDK
* latest lock file
---------
Co-authored-by: James Ritchie <james@jamesritchie.co.uk>
* WIP execution concurrency controls implemented via Redis
- Split up resuming a run and executing a run
- Added some new statuses to better show what is going on in a run
- Removed preprocessing runs
* WIP
* Convert to using ZSETs and adding env vars
* Removed unused import
* Improve run number generation using advistory locks, and only on start
* More execution concurrency stuff
* Add support for job concurrency limits and concurrency limit groups
* Create wild-swans-battle.md
* Increase slots refresh timeout to 10s
* Try to fix Redis connection issues
* Don’t be so strict about the APP_ENV
* Add the blank tls option to the normal redis client as well
* Add docs
* Initial commit and WIP new login page
* added wrapper to fix layout
* Improved the layout and style of the page
* Added a new extra-large button style (and added it to storybook)
* Moved the cusom onboarding style tooltip to the Tooltip component
* Populated the bento grid with items
* Imrpoved the quote styling
* Tooltip doesn’t stay if you mouse over it
* Added more content including a list of quote that cycle on page load
* New quote mark positioning
* Added the rest of the content to the tooltips
* Made the bento grid responsive
* Moved the login page layout to a seaparte component
* Login pages now use the new layout component
* Extra large button style tweak
* Match the large input style with the large button style
* Cleaned up imports and made the Ts & Cs text the same for magic links
* Layout fix
* Quotes don’t push content off the screen as much
* Added openai integration to the grid
* Make the quote fit if the screen height is narrower
* Style update to the magic link sent state
* Icon colour updates
* fixed text centering on mobile
* Icons are more responsive
* removed unnecessary w-fulls
* Added 2 onboarding questions
* Revalidate form on submit, not input
* Typo fixes
* Name field focuses by default
* Added conform to the employees question
* Update pnpm lock file
* Implement referral source and company size on managed cloud
* Fixed some type errors
---------
Co-authored-by: James Ritchie <james@jamesritchie.co.uk>
* Allow PRs that have /publish-docker in the body to cause docker images to be published
* Also ignore mdx file changes
* pr_checks now uses pull_request instead of pull_request_target
* integration docs various improvements
* Added optional comments to step by step guide
* Added API catalog card to the integrations intro
* Added Api catalog button to the examples job tab
* Tweaked copy of api catalog card
* Update introduction.mdx
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* Added more API icons
* Updated the title
* Added resources.codeexample.ts to pull in example code from github
* Added regex to remove redundant express code from the examples
* Added cal examples
* Code changes onSubmit
* Improved the code loading state
* Removed request integration button
* Improved the Customhelp copy
* Fixed styling issues and removed imports
* Added all the code examples
* Don’t show title if there’s 1 or less examples
* Updated copy for the non example version
* Added example code to the apis without examples, added a focus state
* Fixed titles
* Got rid of the phantom gap
* Made the copy more generic so it works on the integration pages as well
* Removed import
* Added view examples button to the integration pages
* Removed fetch/sdk option from integration sheet
* Apply code example regex on the server
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* Initial commit (by create-cloudflare CLI)
* Changed the prettier rules
* Started writing Readme and got dev working
* Validate the request, parse the event and respond with the correct format
* Use ulidx instead of ulid in core
* Removed some boilerplate and use new function for sendEvent
* Removed old ulid package
* When handling a webhook, it’s not an error if the HTTP endpoint environment isn’t found
* If the env vars aren’t set, log the request and pass it through
* Pass requests through. Setup the env vars
* Flipped the API key detection because we can enforce that it’s the shape of a private API key
* Progress with sendEvent proxy
* Events are being put on the SQS queue
* The SQS event queue is working
* Make sure there’s a timestamp before enqueuing the evnet
* Log the sqs_event, not API key
* Added a bit more detail to the readme
* Improved the Cloudflare logs
* We don’t need the global.window hack for AWS, just globalThis
* Removed commented out wrangler.toml values
* Reworked the proxy to make it easier to add more endpoints
* Use json utility to send Responses
* Start work on proxying bulk events
* Downgrade to remix-auth-email-link to remove yarn dependency
* Turn off the pg listen service for now
* Add snapshot admin route
* A couple logger fixes
* Add ability to disable compression
* Add ability to disable SSE
* Fix SSE memory leak + DB load issue
* Add OpenAI support for 4.16.0
* Add support for background polling and use that in OpenAI integration to power assistants
* Much improved OpenAI docs
* Added backgroundPoll docs
* Implements waitForEvent and added docs for more built in tasks
* Add sendEvent API referenc
* Write the task libray
* Add changeset and warning for waitForEvent
* Setup basic storybook page
* storybook preview pages don’t have padding
* Added a storybook story for the side menu
* WIP on a new side menu component
* New variant for the side menu button style
* Side menu items can now recieve a badge ‘count’
* Storybook side menu update
* Added a new font size
* you can now set the spacing between an icon and the text
* Moving the error and count badge to the right side of the button
* Added a menu sub item button style
* added sub items to the menu and all the rest of the items
* Proper background class used
* Added a side menu header and main org header
* Removed the no-mobile blocker overlay so you can use the site on a phone
* Better section name
* Created a cusom popover trigger that can take anything as children. Also the popover titles can now take a variant
* Added a popover for the user avatar menu item
* Removed the tool tip
* Arrow Popover can no also go full width
* neater conditiona;
* Removed unnessary div. And error icon can display an error message
* menu item buttons can take a variant
* Added placeholder items for the org dropdown
* add a max height to the org menu popover and handle scrollbars
* Added a border if the menu scrolls when you have lots of project items
* warning badges display tooltips if you give them some error text
* Removed the sticky header so the scrollbar looks better
* Fixed a layout issue from removing the sticky header
* Better spacing between lists
* Popover can take any react component icon and an icon classname
* Side menu headers now have a dropdown by clicking the ellipsis icon
* Side menu items can take an icon colour
* Updated styling for the dropdown Popover menus
* Installed Tabler icons
* Updated some icons to use Tabler
* Started defining the HttpTrigger class
* RequestFilterSchema is part of core
* Use the RequestFilterSchema from core
* EventSpecificationExample now derived from schema
* Need to define the class like EventTrigger
* Catalog reference that uses the httpTrigger
* The logic for the httpTrigger is in the separate file, just call it from the client using defineHttpTrigger
* Basic HttpTrigger
* Import fixes
* Transforming httpTrigger to the format we want
* Initial httpTrigger types working
* Added HTTP generic type
* Added some notes
* Rejigged some things to support verifying payloads
* Use new security function for verifying
* Added truncating text support if side menu names get long
* Renamed some stuff
* Removed test copy
* HttpEndpoin that isn’t a trigger
* Renamed hostname to source
* Created HttpEndpoint as a top-level concept, it produces triggers using onRequest
* Started working on registration of the httpEndpoints
* Removed the new TriggerMetadata for now, http will use static
* Added PayloadType to EventRecord. Default is JSON.
* The payload from an HTTPEndpoint is now a Request
* Initial TriggerHttpEndpoint migrations
* Initial server side work
* Migration to add shortcode to RuntimeEnvironment
* Added TriggerHttpEndpointEnvironment table
* Made the httptrigger catalog example runnable
* Progress creating/updating httpEndpoints
* HTTPEndpointEnvironment updating now works
* Added a note about EventRecord HttpEndpoint relationship
* When creating environments, create a shortcode
* Fix for secret not being retrieved correctly
* Request filtering
* Add DOM types to Core
* Early work dealing with a webhook arriving
* Added some todo notes to discuss tomorrow
* Added relations to the endpoint so we can call the user’s server
* Basic handling of immediate responses
* The immediate responses are now going back to the webhook provider
* Handling is now generating events and responding where relevant. Not yet matching filters and doing verification
* Added source to TriggerHttpEndpointEnvironment
* The event filter is now optional
* The source is passed through from the httpEndpointEnv
* Added optional payloadType when ingesting an event
* Added tabler
* Updated @remix-run/testing usage for remix 2
* Fixed org menu header width and added org and project types
* Added custom icons for Runs and Endpoints
* Updated the menu icons
* storybook side menu shows static project and org data
* Updated side menu
* Plumbed in paths
* Updated eventFilter to deal with undefined/null payloads
* Started work on filtering, but it’s not working
* Strict null
* async filtering it working
* Added environment shortcodes to the seedCloud script
* Don’t pass the secret back, added a verifyPayload function that gets called before runs start
* Fix for skipping triggering runs
* The verify callback is now passed through to the trigger so it can be called
* If verifying fails, have a reason which we can show to the user
* Don’t verify if it’s a test run
* Fixed the log in the example code
* Added loader and action to storybook preview
* Fix for svg attribute name issues in EndpointIcon
* Started work on the side menu
* This logic has moved to a separate file, in a different branch
* Don’t get the environments when getting orgs
* Lots of fixes for the new SideMenu
* Refactored some org/project things to fit the new structure better
* Some progress restructuring the app for the new sidebar
* More changes to data loading
* Deleted some old pages. The redirecting is working if you’re on the root but logged in
* Basic styling for the account page. We need a back button
* Fixes for the integrations pages
* Breadcrumb implemented
* Add a border to the bottom of the breadcrumb
* Feedback is working, not in Storybook
* Removed expandSidebar from the Handle
* Org level breadcrumbs
* Getting the project in the org route now works properly
* orgslug route before using the presenter
* More UI improvements
* Removed commented out line
* Use presenters for org and root
* Removed forceActive
* Split the project selector and user menu out
* The side menu items have correct active states
* Fixed the scrolling
* Put the org name in
* Improved the admin features
* Created the HTTP Endpoints list page
* Work on the HTTP endpoint page
* WIP on the HTTP Endpoint page
* Fix for response filter not showing
* Change page URLs to “http-endpoints” (from httpendpoints)
* Slugify the HTTP endpoint id
* Added todos for EventRecord associations
* Removed the Job/Trigger tab for now
* First draft of the help panels
* Rejigged the HTTP endpoint page so it splits out the deployed and not deployed environments
* Removed irrelevant columns
* Added a link to the deployment guide
* Removed the background image from the frameworks pages
Also…
- reordered the frameworks so supported ones come first in the list
- added logos to 3 framework pages that were missing them
- removed lots of un-used imports
* Fixed an issue where the breadcrumb could be hidden on small screens so broken the pages
The breadcrumb is always visible now
* Renamed ‘Onboarding’ to ‘Framework setup’
* Added a new http-endpoint icon to the side menu
* Side menu now has a nice looking scrollbar
* Scrollbar on the usage and billing page updated to the nice style
* Icon and colour updates to the side bar menu items
* Small copy improvement
* Fixed bug with the height of the org menu dropdown
* Page breadcrumbs now don’t include duplicate path links
* renamed uiBorder to ui-border
* Remove the padding from the small menu item if it’s used as a button
* Made the paragraph text a bit smaller
* EventRecord has relationships with TriggerHttpEndpoint/TriggerHttpEndpointEnvironment
* Improved the presenter used by the side menu. Also added the HTTP Endpoint badge count to the sidebar
* The dropdown org menu has the same badge as the side menu
* Improved the Projects page
* Fixed button style miss-match in the jobs table dropdown
* Made the popover dialogs support Headers and improved the regenerate API key popover
* Made the active status of a job more subtle
* Allow the Job to have a link on its Trigger
* Simplified loader because we ditched the Jobs menu. Also showing no runs help panel now
* Fixed type errors
* Pages that are org level can scroll if the content gets too long
* Fixed a redirect bug so you now redirect to the org page
* Updated the shortcode migration, to add additional letters to the end
* Removed the nav bar from the welcome onboarding page
* Only show the countBadge if the number is > 0
* Jobs icon now has a default colour the same as the nav menu
* Capital I for integration
* Clone the request before calling verify
* Separate the checks out so they can be easily logged
* Make the failure reason optional
* Made the verification error look better, if it’s provided
* Working WhatsApp example
* Can set the immediateResponseFilter to null in an update
* Deal with a null immediateResponseFilter
* Cal.com webhook working
* Header height reduced slightly
* Fixed button padding
* Removed un-used imports
* http endpoint table displays a message if you have no entries in the table
* Removed some duplicate text and swapped primary buttons for secondary style
* All ‘HTTP Endpoints’ now ‘HTTP endpoints’
* You have to use a RequestFilter when using HTTP Trigger
* Synchronous eventDispatcher filtering again. Better content-type check
* Stripe example
* Side menu “Usage & Billing” is just “Usage” if self-hosting
* Fix for filtering not working
* Removed filter log
* Fix for jobs being optional and null
* Removed old nav bar from the invite page
* Deleted old nav bar component
* import cleanup
* NoTask message only displays if the run has status “SUCCESS”
* Added a global page loading indicator
* Added documentation buttons to the most important pages
* Added GitHub
* Use “verifyRequestSignature” helpr
* Removed todo
* Fixed the layout of the Rerun Job popover
* Jobs table has margin bottom so it sits off the bottom of the page
* Small improvement to the search bar layout on the integration page
* HTTP endpoint and Trigger concept docs
* Reference docs and JSDocs for HTTP endpoint
* SDK reference docs for HttpEndpoint
* Added an HttpTrigger SDK reference, which mainly just point you elsewhere
* Improved the copy in the help panels
* Removed unused code
* Improved HTTP endpoint comment about setting the secret
* Delete unused asyncFilter
* Fixed the delete modal not having a title
* Always try get the arrayBuffer for an HTTP request, catch and use undefined as the default
* Add extra method to invokeTrigger
* Use a transaction for the secret store
* verifyRequestSignature docs page and JSDocs
* Added verifyRequestSignature docs page to nav
* Warn if they use the same HttpEndpoint id twice
* Added another job using the same HttpEndpoint
* Renamed the api route to http-endpoints from httpendpoints
* Debug bar for VSCode is now in the commandCenter
---------
Co-authored-by: James Ritchie <james@jamesritchie.co.uk>
* Implement manually invokable jobs through the invokeTrigger
Also implemented a job run notification system, that will POST details of a run on completion. This combines with the task callbackUrl system to implement the invokeAndWait
* Document the invoke trigger
* batch invoke and wait
* background fetch timeouts
* Use @whatwg-node/fetch instead of the polyfilled fetch
* Fix some outdated dependencies in webapp
* Improved subtask error propogation messages
* Document the OpenAI changes and the batch invoke stuff
* Fix dequeuing jobs
* Don’t retry the OpenAI completion background task
* Added OpenAI changesets
* Use the new ResumeTaskService in ProcessCallbackTimeout as well
* Card hover state is now grey
* Added a callout warning if you don’t have any tasks
* Conditionally show the no-task warning at the top of the run
* New job to test the no-task warning message
* Created a new example Job for the CLI that uses Tasks
* Updated the Next.js cli joke job
* Updated the Remix app cli job example
* Updated the Astro app cli job example
* Made sure the example job works in remix
* Added changeset
---------
Co-authored-by: Eric Allam <eric@trigger.dev>
Incorporating a Code of Conduct in your GitHub repository is crucial for promoting an inclusive, respectful community. It establishes guidelines, minimizes conflicts, safeguards participants, and adheres to legal standards. Additionally, it demonstrates professionalism and aligns with GitHub's best practices, contributing to a welcoming and harmonious environment, which, in turn, enhances collaboration and the project's overall success.
This commit introduces the ability to set custom base URLs, which allows for the use of different APIs such as Perplexity. It also ensures that any OpenAI-related task now includes an idempotency key when making requests. Works for background tasks as well.
Fixes a bug where trigger sources would get re-registered on every index, no matter if they were already properly registered or not. This was causing a lot of extra “internal” runs and being overly chatty with client endpoints
* Auto-yield run execution to help prevent duplicate task executions
* Add auto-yield config to endpoints
* Refactor run execution with buffer and limits
Introduced constants RUN_CHUNK_EXECUTION_BUFFER and MAX_RUN_CHUNK_EXECUTION_LIMIT. Adjusted PerformRunExecutionV2Service to use the new constants to fine-tune execution timings and buffers.
* Add endpoint probing functionality
Added new `RESPONSE_TIMEOUT_STATUS_CODES` in `consts.ts` to manage timeout responses. Additional functions `detectResponseIsTimeout(response: Response)` was added in `endpoint.server.ts` to detect if a response was a timeout based on the status codes from `RESPONSE_TIMEOUT_STATUS_CODES`.
Update actions to use new endpoint probing endpoint service. This allows for the early probing of endpoints to determine if they're up and running.
A new class `ProbeEndpointService` was created in `probeEndpoint.server.ts` which makes HTTP requests to a given endpoint and updates its properties based on the result.
Finally, `detectResponseIsTimeout(response)` is used in `performRunExecutionV2.server.ts` for marking the execution as succeeded when facing a timeout.
* Refactored probe method in EndpointApi class
The probe method of the EndpointApi class has been refactored to remove the error handling part and it now takes a timeout sent from the client directly. The corresponding changes were also made in the ProbeEndpointService and TriggerClient objects to reflect the alterations in the probe method.
The error handling related to the timeout has been removed and the responsibility of handling the timeout has been shifted to the client. Thus, the probe method has been greatly simplified. The `probeEndpoint.server.ts` file was also changed to accommodate the change in behavior of the probe result.
In the `triggerClient.ts` the timeout for probe is now read from the incoming request object. For backward compatibility, if no timeout is provided in the request, the default value of 15 minutes is used.
* Remove performRunExecution v1 enqueue function
* Better document limits and add docs on increasing function timeouts
* Upgrade webapp docker container to use 18.18.2
* force clients to yield when a run is executing in a gracefully shutting down worker
* Renamed task `key` to `cacheKey` and added more task documentation
* Index the `@trigger.dev/sdk` version on Endpoints
* Removed the no-mobile blocker overlay so you can use the site on a phone
* Removed mobile dropdown from nav
* The app works on mobile at a width of 1024px
commit 13ed268f1d6732ef28c6e4a9eeb927c1af822032
Author: Matt Aitken <matt@mattaitken.com>
Date: Fri Oct 20 11:38:22 2023 +0100
Added all the tabler-icons to Storybook
commit 62738d71a40f17c45c0b29332359b2b670233a97
Author: Matt Aitken <matt@mattaitken.com>
Date: Fri Oct 20 11:38:09 2023 +0100
Use the no-stroke version of the tabler-sprite so we can control the stroke width
commit a1b7edd57f8b2d3f2a5f4d96cbc9eb0a887f3442
Author: Matt Aitken <matt@mattaitken.com>
Date: Fri Oct 20 11:37:54 2023 +0100
Set the default width to 1.5, so they’re a bit thinner
commit 69ba38802b849376611678537f7d8e248b60086b
Author: Matt Aitken <matt@mattaitken.com>
Date: Fri Oct 20 10:55:34 2023 +0100
Added a tabler icon to an events job catalog job
commit eb3c5f649d06adcc9ce0641f50e082ecdeead7a2
Author: Matt Aitken <matt@mattaitken.com>
Date: Fri Oct 20 10:53:40 2023 +0100
Moved the tabler sprite to the app and use an import. This means it’ll be cached and we can move it
commit c24d76e6df9233b001a0242f8806076562ca2e90
Author: Chaturved Degloorkar <48447253+chaturrved@users.noreply.github.com>
Date: Fri Oct 20 15:22:59 2023 +0530
feat: Add support for tabler-icons when using the icon for Tasks (#629)
* Add support for tabler-icons
* Changed the core update type from minor to a patch
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* add cli init maxDuration to the api/trigger route for nextjs
* refactor createTriggerRoute
* move boxen log to createTriggerRoute function
* refine detectNextVersion and versionNumberPattern regex to match the latest nextjs version
* add tests for the detectNextVersion function
* add changeset file
* If the regex doesn't match, it returns null instead of throwing
* Tweaked message about the max duration
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* fix: broken links at what is triggerdev docs
* fix: broken links for apikey
* fix: broken sdk link
* fix: broken link in concepts/triggers
* fix: broken link for zod guide at concepts/triggers/events
* fix: broken links in title for projects
* Shouldn't have /docs at the start
* Use backgroundFetch path
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* feat: add ability to use custom tunnel in dev cmd
* Added a short flag -t for the tunnel flag
* skip framework url resolution if tunnel-url is provided
* remove type annotation
---------
Co-authored-by: Eric Allam <eric@trigger.dev>
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* WIP
* Report ECS task info on startup and shutdown
* Fixed lifecycle name
* Re-add terminus
* Require the build dir when http server is disabled
* Remove unnecessary logs
* Implement graceful shutdown in ZodWorker
* Re-order some code
* Increase the keepAliveTimeout to 65 seconds to prevent LB 502 errors
* Add tsup config package
* Add integration tsconfig to extend from
* Return correct version via cli -v
* Make create-integration use templates
* Add changeset
* Switch to liquidjs templates
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
commit c028db229cece2bf7d7acf04e7b1c08fea61798c
Author: Matt Aitken <matt@mattaitken.com>
Date: Fri Oct 13 16:04:54 2023 +0100
Some fixes for getting the endpoint id
commit e31b7ac5f2d451f70e3d42a3fb3e5f718d93485b
Author: Matt Aitken <matt@mattaitken.com>
Date: Fri Oct 13 15:39:18 2023 +0100
Added a link in the instructions if Node isn’t detected
commit 1a59cced775fbeac3e5b94e0c151b490c838d8f8
Author: Matt Aitken <matt@mattaitken.com>
Date: Fri Oct 13 15:39:05 2023 +0100
Fixed some conflict issues
commit 77263ed26bcf7025071ac0faf15fb867fff245d0
Author: Matt Aitken <matt@mattaitken.com>
Date: Fri Oct 13 15:38:56 2023 +0100
Added a changeset
commit 1a7df3f37f0c65d68cb9a9fe7ac50328bbb4d879
Author: GuyBorderless <100129659+guy-borderless@users.noreply.github.com>
Date: Fri Oct 13 17:31:01 2023 +0300
feat: enable deno (#531)
* adding deno reference project and JSRuntime file
* accessing runtime specific functions through JsRuntime
* adding support for both deno.json and deno.jsonc
* no automatic setup for deno projects currently
---------
Co-authored-by: Guy Kedem <guy@propertiz.net>
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* Added EndpointIndex status. Default is PENDING, existing rows are SUCCESS
* Made it easier to create a migration SQL file
* Created a job-catalog file for misconfigured Jobs that should error when running the CLI
* EndpointIndex data and state are now optional
* The Environments page now shows the status of the last refresh
* Improved the UI about endpoints
* Added EndpointIndex error column
* WIP making the endpoint indexing more robust
* Indexing errors are now surfaced
* Improved the error show it shows the job id
* Use “performEndpointIndexing” when you create your first endpoint from the UI
* Use “performEndpointIndexing” for the recurring endpoint checker
* Staging is now auto-indexed every 10 mins too
* Use “performEndpointIndexing” for the webhook
* Moved the throttling to a util
* Removed instructional comments
* Created a reusable retry system with exponential backoff
* Use p-retry for retrying with backoff
* The CLI gets indexing results and displays errors
* Improved the indexing error messages and display in the console
* Use a pre so the Indexing error is correctly split over multiple lines
* Use a db transaction for webhook that triggers endpoint indexing
* Tidied up imports
* Support older versions of the server
* Improved the comment on the misconfigured job
* Changeset: When indexing user's jobs errors are now stored and displayed
* feat: add filter for active jobs in the dashboard
* use cursor-pointer when hovering Switch label
* remove unused import
* remove unnecessary span
* add flex-gap
* [TRI-1333] : Upgrade all packages to use Node18 and use fetch instead of node-fetch
* Changeset Added
* Update pnpm-lock to compatible pnpm v7.18.1
* Restored pnpm-lock to the last known good point compatible with pnpm v7.18.1
* Update chilled-plants-exercise.md
---------
Co-authored-by: Eric Allam <eallam@icloud.com>
* Updated github-triggers and intro
* Edited tasks / triggers and main overview page
* Added links to scopes docs and improved copy
* Added an overview, side bar title and improved the ordering / wording
* Added the underlying Github client section and some formatting updates
---------
Co-authored-by: Eric Allam <eric@trigger.dev>
Co-authored-by: Eric Allam <eallam@icloud.com>
* Feat/svelte kit support (#467)
* feat: implemented svelte-kit adapter
* feat: implemented the @trigger.dev/svelte package
* scaffolded a sveltekit example project with trigger.dev
* added the convertToStandardRequest function in the sveltekit package
* example sveltekit project with the @trigger.dev/svelte package
* doc: added the manual setup guide for sveltekit
* updated the web app onboard for sveltekit
* formatted the manual setup guide for sveltekit
* added a link to webapp sveltekit onboarding
* added a wait function to the sveltekit example app job
* typo fix
* removed comments from the @trigger.dev/svelte
- commented out the useEventRunDetails
* updated package.json to use internal packages
* added a .env.example file
* updated the example-svelte-app
* updated the svelte-example
* updated the onboarding page to reflect requested changes
* made the manual setup guide more specific
* created a .env.example file for svelte-example
* added import aliases
* updated the tsconfig and svelte.config file
* updated to use uint8Array
* added missing paths in the tsconfig
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* Moved examples to references
* Tweaked the SveleteKit manual setup guide
* Updated zod, and set the svelte/sveltekit package versions to match other packages
* Added the headers to the response from the SvelteKit api/trigger route
* Changeset for Svelte and SvelteKit packages
* Revert change to rawBody
* Remove core from changeset packages
* Delete svelte .npmrc file
* Build svelte package to build, not build/lib
* Made the snapshot instructions easier to copy
* Delete the svelte package
* Latest lockfile
* Updated the SvelteKit docs
* Attempt to get Svelte to import the package
* Updates for port and host options
* Updated lockfile from main
* Update neat-feet-wait.md
---------
Co-authored-by: Chigala <92148630+Chigala@users.noreply.github.com>
* feat: add internal flag to job-run table
* add backfill SQL
* Update internal backfill to only update internal jobs
---------
Co-authored-by: Eric Allam <eallam@icloud.com>
* feat: added nestjs package adapter
* Latest lockfile
* Updated Astro setup docs: env import
* Astro docs improvements
* Docs: improved the limitations
* Bumped package versions to 2.1.3
* Updated the Astro docs with SSR notes
* test/368/use vitest instead of jest (#470)
* chore: add vitest dependencies
* refactor: replace jest by vitest
* test: disable broken test
* Update pnpm-lock.yaml
* Update pnpm-lock.yaml
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* Created Temp for pull req, bugreport & feature req
* A few teaks to the templates
* Added instructions for how to do Changeset snapshots
* Redirect people to discord to ask a question
* Documentation Update: Added <github_username> instead of triggerdotdev to avoid confusion while cloning the repository (#477)
* Added a link to the homepage from the side menu (#479)
* Added 2 new named icons
* New side menu link to the homepage
* Updated lock file
* Removed un-used import
* Renamed the examples dir to references (true examples are in another repo and this was confusing)
* Add a references README
* Fixes broken pnpm lock file
* Improve the Astro manual setup guide
* Fixed cal.com link
* Upgrade to the latest remix (pre v2)
* React status hooks (#493)
* Added stripInternal to SDK tsconfig
* Statuses can now be set from a run, and are stored in the database
* Added the key to the returned status
* Made the test job have an extra step and only pass in some of the options
* client.getRunStatuses() and the corresponding endpoint
* client.getRun() now includes status info
* Fixed circular dependency schema
* Translate null to undefined
* Added the react package to the nextjs-reference tsconfig
* Removed unused OpenAI integration from nextjs-reference project
* New hooks for getting the statuses
* Disabled most of the nextjs-reference jobs
* Updated the hooks UI
* Updated the endpoints to deal with null statuses values
* The hook is working, with an example
* Changeset: “You can create statuses in your Jobs that can then be read using React hooks”
* Changeset config is back to the old changelog style
* WIP on new React hooks guide
* Guide docs for the new hooks
* Added the status hooks to the React hooks guide
* Removed the links to the status hooks reference for now
* Re-ordered the hooks
* Fix for an error in the docs
* Set a default of a blank array for the GetRunSchema
* Fixed dependency
* Revert "Upgrade to the latest remix (pre v2)"
This reverts commit 4edc7112ab.
* Update introduction.mdx (#498)
Changed https://github.com/triggerdotdev/examples/tree/main/resend (which was a 404) to https://github.com/triggerdotdev/examples/tree/main/resend-email-form
* Use the bell icon for the new status Tasks
* Going exponential with `Linear` (#478)
* Unleash GPT magic
* Clean up after GPT
* All the hooks
* Provisional integration catalog entry
* Sample webhook jobs
* Attachments with alpha warnings
* Remove some verbose logs
* Fix IP restrictions
* Remove tunnel
* Revert "Remove tunnel"
This reverts commit c5b69ce6524e3b40c26b66cdc56e087b8576b8c6.
* Resolve event name clashes
* Remove circular dependency
* Use correct payload uuid
* Schema fixes
* Fix webhook event name
* Start to Linearify catalog entry
* Remove todo
* More catalog updates
* Make OAuth work
* Rename webhook helper
* Schema juggling
* More discrimination
* Add Issue SLA event
* Simplify triggers
* Handle rate limits
* Fix Project schema
* Payload examples
* Improve event props
* Remove redundant source metadata
* One type to rule them all
* Recursive WithoutFunctions type
* Linear output serializer
* Some tasks
* Update catalog entry
* Dynamic usage sample
* Bump version
* Remove tunnel
* More tasks
* Add optional skipRetrying on runTask errors
* Fail fast on user errors
* Entity getter tasks
* Another couple of tasks
* Token to apiKey
* Sort tasks
* Add filtered issue SLA triggers
* Add docs
* Type fixes
* Job catalog examples
* Serialization helper docs
* Add changeset
* Refactor webhooks
* Enhance properties
* Pagination helper and docs
* Clean up imports
* Change misc catalog job
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* Use absolute image paths (#490)
* Update sendevent.mdx
* fix: Fail client-side on invalid Stripe event names (#492)
* Parse event names
* Add changeset
* feat: BYO Auth (#491)
* feat: BYO Auth
Define client-side auth resolvers to be able to supply custom authentication credentials for integrations before a run is performed
- Added new defineAuthResolver
- Update all integrations to support the new auth resolvers
- Strip internal symbols from .d.ts in integrations and trigger-sdk
- Added BYO Auth docs
- Update Dynamic Schedule to support associated account IDs
- Create external accounts just-in-time
- Added Account ID field to test job when there are external auth integrations
- Show Account ID on run dashboard
- Added new Run error state called “Unresolved auth”
* Added changeset
* Remove @internal from TriggerIntegration public methods
* Add void to the result union
* DynamicTriggers now work with the new BYO auth system, and added a bunch of docs and docs changes
* Add additional key material for registering dynamic trigger task
* Add new define* instance methods to the overview
* CLI now supports multiple frameworks (with tests) (#480)
* Early work defining CLI framework support
* WIP moving CLI init logic to the Framework class
* Installing files should now work for Nextjs
* Some fixes
* WIP creating unit tests for Next.js project detection
* Delete old jest config
* Latest lockfile
* Detect use of src directory test
* Tests for detection pages/app directory
* Correct detection of Next.js project
* Renamed test file
* Create install files from template files with replacements. With tests
* Added multiple uses of the same replacement
* Created a test for the install step (it fails right now with JS)
* Removed unused import
* Another test that should pass but currently fails…
* Path alias fixed and now has tests
* New pathAlias function used
* Nextjs page install tests
* Fixed app directory install (with tests)
* Removed e2e CLI test, switched to unit testing strategy instead
* Latest lockfile
* The install files are now actual files that are copied and transformed
* Got the template files working correctly after building
* Next steps are now framework specific
* createFileFromTemplate now works with a path again. Uses mock if specified.
* Renamed apiRoute.js to pagesApiRoute.js
* Simplified pages file generation
* Next.js app API route template
* Next.js App routing support, with common files logic shared
* Dev command now uses framework default values if they exist and aren’t overridden
* Unused import
* pathAlias now works for all frameworks
* Added a test to detect Next from the next.config.js
* WIP on Remix framework support
* Tests for Remix install
* Replaced references to Next.js
* Use a green ✔️ instead of ✅ in the CLI
* Support for multiple hostnames
* Tunneling can now use the hostname and port
* Work on multiple ports
* Improved the error messages. Added some extra pots to Next.js
* Update the Remix templates to have .server in the imports
* Remix updated to use server-runtime instead of node. Node v18+
* Frameworks can specify the watch paths and ignore paths
* Define the watch variables above, so we can easily log them for debugging
* Don’t wait for outdated package checking when running the dev command
* Improved the Remix manual setup guide
* Rewriting docs for quickstart
* Updated the Next.js quickstart
* Remix quick start
* Added a changeset
* Improved the Next.js manual setup
* Tweaked the Linear scopes
* Latest lockfile
* Fix for getPathAlias typecheck failure
* Linear getAll type error (weirdly not in VSCode…) and removed the pagination example that uses the SDK as won’t work with timeouts
* Add BYO auth for oauth options
* Add back in Job.toJSON to fix the testing package
* Removed dynamicTrigger @internal from toJSON
* The CLI now checks for a dev server API key in init and dev commands
* Remix onboarding now uses the CLI init command
* Decouple zod (#500)
Zod Schemas is no longer required for validating/inferring event triggers. We’ve taken inspiration from how domain-functions did it: https://github.com/seasonedcc/domain-functions/pull/114
* chore: Update version for release (#481)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Latest lockfile
* feat: Basic usage dashboard to show run volume (#501)
* New usage dashboard with static data
* Implement org usage dash
* Grab chart data for the last 12 months
* If no org is found just return undefined so a 404 will be shown
* Remove mock data
* Fill in missing months with 0s
---------
Co-authored-by: James Ritchie <james@jamesritchie.co.uk>
* Fixed duplicate end month
* hotfix
* hotfix 2
* Astro CLI support (#506)
* Astro framework CLI support
* Changeset: Added Astro automatic installation
* Fixed the package name – was remix, now astro
* Fixed the export of the example
* Added IPv6 localhost to Astro hostnames
* Updated Astro onboarding to show the CLI init command, instead of manual instructions
* Astro quickstart
* Fix for type in Remix quickstart
* Next.js framework detection allows different config file extensions and “next” devDependency
* Made the dev command port more general so it works with various frameworks
* chore: Update version for release (#508)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Fix for incorrectly named Next.js package in manual setup
* Latest lockfile
* Increased the intervalTrigger max from 1 day to 30 days
* Implement the task output redacting to prevent redacted values from showing in the logs
* Express frameworks docs + CLI (#512)
* Manual setup docs
* Added the onboarding
* The emails package now works with Node > 18
* Added CLi support for Express, including custom init command finished messages
* Need to actually log out the installation complete message…
* Fix for an old Remix reference
* Renamed the page export
* Use resolvedOptions.triggerUrl
* Typo in manual instructions
* chore: Update version for release (#513)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Latest lockfile
* Add the STAGING environment by default
* Fixed sparodically failed run creations
- Use a better way of getting the latest job run number to increment
- Make the CreateRunService transaction more reliable
- Invoke dispatchers in parallel
- No longer swallow prisma errors in $transaction
* Swapped out the Homepage link in the side menu for a link to the Changelog
* Youtube embedded video fits its aspect ratio instead of going full width
* Improved CLI init Next.js middleware detection
* CLI init: adds public key as “TRIGGER_PUBLIC_API_KEY” except for Next which overrides this
* Updated the docs for the React hooks
* chore: Update version for release (#521)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Display framework logos on the onboarding setup pages (#519)
* autofocus the search field on the Job page
* Add some documentation around canceling scheduled events
* Updated outdated lockfile
* Updated docs README.md
* Improves the performance of run resuming (#522)
* Improves the perform of run resuming
When runs resume, we try and make sure that tasks that have already been completed are cached and reused. Worst case scenario the client needs to hit the API server once for a non-cached task that is indeed completed on the server, but this can get pretty expensive when there are a larger number of tasks.
This commit does 2 different things to help:
- noop tasks are no longer “cached” using the cachedTasks strategy, instead their idempotency keys are shoved into a bloom filter and the client tests for their inclusion in the bloom filter before running them (since they don’t have any concept of output, this works)
- Additional cached tasks are lazy loaded when a task is run. This allows us to progressively fetch additional tasks to be cached on the client, which will cut down on cache misses by a decent amount
* Create warm-carrots-float.md
* Make io.yield backwards compat with older platform versions
* Better support old clients connecting to server versions that support lazy loading cached tasks
* Fixed type errors when settings headers with unknown value
* Better yield not support error message
* Rename _version to _serverVersion to be more clear
* Add typed filters to `Linear` getAll helper (#517)
* Fix getAll params type
* Changeset
* Search param types
* Update changeset
* `Replicate` integration and remote callbacks (#507)
* Support tasks with remote callbacks
* Add common integration tsconfig
* Add Replicate integration
* Basic job catalog example
* Integration catalog entry
* Check for callbackUrl during executeTask
* Fix getAll
* Improve JSDoc
* Bump version
* Remove named queue
* Simplify runTask types
* Trust the types
* Fail tasks on timeout
* Callback timeout as param
* Mess with types
* performRunExecutionV1
* Update runTask docs
* Shorten callback task methods
* Fix run method return type
* Image processing jobs
* Replicate docs
* Text output example
* Changeset
* Version bump
* Roll back ugly types
* Remove missing types
* Quicker return when waiting on remote callback
* Remote callback example
* Bump version
* Remove schema parsing
* Only schedule positive callback timeout
* Decrease callback secret length
* Explicit default timeouts
* Import deployments tasks
* JSDoc
* Deployments docs
* Fix runTask examples, mention wrappers
---------
Co-authored-by: Eric Allam <eric@trigger.dev>
* Update pnpm lock file
* Allow blank issues
* chore: Update version for release (#538)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Fix pnpm lock file
* feat: New Test page (#558)
* Improvements to the shortcut keys
* Updated code mirror theme to the new dark mode style
* Removed the old test page help panel copy
* WIP new structure for the test page
* Added some of the side panel options for examples and account ID
* Conditionally hide the side panel components if they’re blank
* Example with selected state working
* Allow selecting the example again to overwrite any edits
* Previous run payloads working
* Select a recent payload if there’s no example
* Created Icon and DetailCell components
* The integrations now use the DetailCell
* Use DetailCell on the integrations page
* Added support for description to DetailCell. With proper variants now
* DateTimeAccurate and formatDateTimeAccurate weren’t displaying correctly.
fractionalSecondDigits isn’t in the types, but is supported for 92.5% of users
* DetailCell now allows label and description to be React components
* Using the DetailCell on the Test page
* Styled the CodeMirror scrollbars to match elsewhere
* Adding copy and clear to the JSONEditor, not working properly yet though
* Removed the copy/clear buttons from the Test route
* Delete the light color theme
* The editor now supports copying/clearing etc
* Made it clear when text is copied
* Changed the learn link to a tertiary button
* Fixed CMD shortcut keys
* Run test button now works with ⌘ Enter
* CodeMirror now allows ⌘Enter to escape the field
* Added JSON linter to the test editor
* Fix for buttons not being aligned correctly
* Copy/clear buttons now aligned
* Made the integration DetailCell text smaller
* The test recent payloads now have colored text to help identify the status
* DetailCell descriptions are dimmer
* Added link to docs for BYOA
* Fix for buttons going full width when they shouldn’t
---------
Co-authored-by: James Ritchie <james@jamesritchie.co.uk>
* chore: update doc title for groups (#539)
* chore: update doc title for groups
* update docs for sdk and integrations
* Add instructions for triggering job runs to the job catalog readme
* Updated the Test docs
* Removed a console.log when a user’s file is changed that CLI dev is listening for
* feat: allow cancelling jobs from trigger-client sdk (#562)
* feat: allow cancelling jobs from trigger-client sdk
* use presenter instead of service for non-mutating logic
* chore: upgrade zod to 3.22.3 (#570)
* chore: upgrade zod to 3.22.3
* add changeset
* Created a changeset with the correct starting package version
* Added headers to NestJS response
* Added some types to the NestJS project
* Added fastify types
* Removed log from CodeMirror
* Added InstallPackages component
* Improved the NestJS onboarding instructions
* Updated the onboarding instructions
* Made all the quickstart framework cards snippets, so the page isn’t a nightmare to edit
* NestJS docs updates
* Added dotenv to the earlier code sample
* Latest lockfile
* Moved the nestjs-example to the reference folder
---------
Co-authored-by: Vinícius Lourenço <contact@viniciusl.com.br>
Co-authored-by: Wesley <100464352+ologbonowiwi@users.noreply.github.com>
Co-authored-by: Vishesh Rawal <92795514+visheshrwl@users.noreply.github.com>
Co-authored-by: Eric Allam <eallam@icloud.com>
Co-authored-by: Aniket Bindhani <aniketbindhani44@gmail.com>
Co-authored-by: James Ritchie <james@trigger.dev>
Co-authored-by: D-K-P <dkp.github@pm.me>
Co-authored-by: Gregory <93215236+gjohnsx@users.noreply.github.com>
Co-authored-by: nicktrn <55853254+nicktrn@users.noreply.github.com>
Co-authored-by: Eric Allam <eric@trigger.dev>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: James Ritchie <james@jamesritchie.co.uk>
Co-authored-by: Hemachandar <132386067+hmacr@users.noreply.github.com>
This fixes an issue where an event payload was being serialized through remix-typedjson and was causing issues with incorrect meta keys and so deserialization was failing. See https://github.com/kiliman/remix-typedjson/pull/33 for more
* Improvements to the shortcut keys
* Updated code mirror theme to the new dark mode style
* Removed the old test page help panel copy
* WIP new structure for the test page
* Added some of the side panel options for examples and account ID
* Conditionally hide the side panel components if they’re blank
* Example with selected state working
* Allow selecting the example again to overwrite any edits
* Previous run payloads working
* Select a recent payload if there’s no example
* Created Icon and DetailCell components
* The integrations now use the DetailCell
* Use DetailCell on the integrations page
* Added support for description to DetailCell. With proper variants now
* DateTimeAccurate and formatDateTimeAccurate weren’t displaying correctly.
fractionalSecondDigits isn’t in the types, but is supported for 92.5% of users
* DetailCell now allows label and description to be React components
* Using the DetailCell on the Test page
* Styled the CodeMirror scrollbars to match elsewhere
* Adding copy and clear to the JSONEditor, not working properly yet though
* Removed the copy/clear buttons from the Test route
* Delete the light color theme
* The editor now supports copying/clearing etc
* Made it clear when text is copied
* Changed the learn link to a tertiary button
* Fixed CMD shortcut keys
* Run test button now works with ⌘ Enter
* CodeMirror now allows ⌘Enter to escape the field
* Added JSON linter to the test editor
* Fix for buttons not being aligned correctly
* Copy/clear buttons now aligned
* Made the integration DetailCell text smaller
* The test recent payloads now have colored text to help identify the status
* DetailCell descriptions are dimmer
* Added link to docs for BYOA
* Fix for buttons going full width when they shouldn’t
---------
Co-authored-by: James Ritchie <james@jamesritchie.co.uk>
* Improves the perform of run resuming
When runs resume, we try and make sure that tasks that have already been completed are cached and reused. Worst case scenario the client needs to hit the API server once for a non-cached task that is indeed completed on the server, but this can get pretty expensive when there are a larger number of tasks.
This commit does 2 different things to help:
- noop tasks are no longer “cached” using the cachedTasks strategy, instead their idempotency keys are shoved into a bloom filter and the client tests for their inclusion in the bloom filter before running them (since they don’t have any concept of output, this works)
- Additional cached tasks are lazy loaded when a task is run. This allows us to progressively fetch additional tasks to be cached on the client, which will cut down on cache misses by a decent amount
* Create warm-carrots-float.md
* Make io.yield backwards compat with older platform versions
* Better support old clients connecting to server versions that support lazy loading cached tasks
* Fixed type errors when settings headers with unknown value
* Better yield not support error message
* Rename _version to _serverVersion to be more clear
- Use a better way of getting the latest job run number to increment
- Make the CreateRunService transaction more reliable
- Invoke dispatchers in parallel
- No longer swallow prisma errors in $transaction
* Manual setup docs
* Added the onboarding
* The emails package now works with Node > 18
* Added CLi support for Express, including custom init command finished messages
* Need to actually log out the installation complete message…
* Fix for an old Remix reference
* Renamed the page export
* Use resolvedOptions.triggerUrl
* Typo in manual instructions
* Astro framework CLI support
* Changeset: Added Astro automatic installation
* Fixed the package name – was remix, now astro
* Fixed the export of the example
* Added IPv6 localhost to Astro hostnames
* Updated Astro onboarding to show the CLI init command, instead of manual instructions
* Astro quickstart
* Fix for type in Remix quickstart
* Next.js framework detection allows different config file extensions and “next” devDependency
* Made the dev command port more general so it works with various frameworks
* New usage dashboard with static data
* Implement org usage dash
* Grab chart data for the last 12 months
* If no org is found just return undefined so a 404 will be shown
* Remove mock data
* Fill in missing months with 0s
---------
Co-authored-by: James Ritchie <james@jamesritchie.co.uk>
* Early work defining CLI framework support
* WIP moving CLI init logic to the Framework class
* Installing files should now work for Nextjs
* Some fixes
* WIP creating unit tests for Next.js project detection
* Delete old jest config
* Latest lockfile
* Detect use of src directory test
* Tests for detection pages/app directory
* Correct detection of Next.js project
* Renamed test file
* Create install files from template files with replacements. With tests
* Added multiple uses of the same replacement
* Created a test for the install step (it fails right now with JS)
* Removed unused import
* Another test that should pass but currently fails…
* Path alias fixed and now has tests
* New pathAlias function used
* Nextjs page install tests
* Fixed app directory install (with tests)
* Removed e2e CLI test, switched to unit testing strategy instead
* Latest lockfile
* The install files are now actual files that are copied and transformed
* Got the template files working correctly after building
* Next steps are now framework specific
* createFileFromTemplate now works with a path again. Uses mock if specified.
* Renamed apiRoute.js to pagesApiRoute.js
* Simplified pages file generation
* Next.js app API route template
* Next.js App routing support, with common files logic shared
* Dev command now uses framework default values if they exist and aren’t overridden
* Unused import
* pathAlias now works for all frameworks
* Added a test to detect Next from the next.config.js
* WIP on Remix framework support
* Tests for Remix install
* Replaced references to Next.js
* Use a green ✔️ instead of ✅ in the CLI
* Support for multiple hostnames
* Tunneling can now use the hostname and port
* Work on multiple ports
* Improved the error messages. Added some extra pots to Next.js
* Update the Remix templates to have .server in the imports
* Remix updated to use server-runtime instead of node. Node v18+
* Frameworks can specify the watch paths and ignore paths
* Define the watch variables above, so we can easily log them for debugging
* Don’t wait for outdated package checking when running the dev command
* Improved the Remix manual setup guide
* Rewriting docs for quickstart
* Updated the Next.js quickstart
* Remix quick start
* Added a changeset
* Improved the Next.js manual setup
* feat: BYO Auth
Define client-side auth resolvers to be able to supply custom authentication credentials for integrations before a run is performed
- Added new defineAuthResolver
- Update all integrations to support the new auth resolvers
- Strip internal symbols from .d.ts in integrations and trigger-sdk
- Added BYO Auth docs
- Update Dynamic Schedule to support associated account IDs
- Create external accounts just-in-time
- Added Account ID field to test job when there are external auth integrations
- Show Account ID on run dashboard
- Added new Run error state called “Unresolved auth”
* Added changeset
* Remove @internal from TriggerIntegration public methods
* Add void to the result union
* DynamicTriggers now work with the new BYO auth system, and added a bunch of docs and docs changes
* Add additional key material for registering dynamic trigger task
* Add new define* instance methods to the overview
* Added stripInternal to SDK tsconfig
* Statuses can now be set from a run, and are stored in the database
* Added the key to the returned status
* Made the test job have an extra step and only pass in some of the options
* client.getRunStatuses() and the corresponding endpoint
* client.getRun() now includes status info
* Fixed circular dependency schema
* Translate null to undefined
* Added the react package to the nextjs-reference tsconfig
* Removed unused OpenAI integration from nextjs-reference project
* New hooks for getting the statuses
* Disabled most of the nextjs-reference jobs
* Updated the hooks UI
* Updated the endpoints to deal with null statuses values
* The hook is working, with an example
* Changeset: “You can create statuses in your Jobs that can then be read using React hooks”
* Changeset config is back to the old changelog style
* WIP on new React hooks guide
* Guide docs for the new hooks
* Added the status hooks to the React hooks guide
* Removed the links to the status hooks reference for now
* Re-ordered the hooks
* Fix for an error in the docs
* Set a default of a blank array for the GetRunSchema
* updated the @trigger.dev/astro package to support typescript
* set up a example astro project
* docs: manual setup of Trigger.dev in an Astro project
* doc: updated the manual setup docs for astro
* updated the webapp onboarding for astro
* cleaned up the example astro project
* removed next from dependency 😅
* updated the readme
* moved trigger.ts file and job folder to src directory
* created a .env.example file
* updated tsconfig
* updated to use aliases
* updated package.json
* updated the astro onboarding page
* updated the manual installation guide for astro
* updated to use alias
* added astro as a dev dependency
* Remove extra comma I left in
* Changed Object.create() to a Record, so we have some type safety
* Added the localhost URL to the API in the Astro example
* Added the TRIGGER_API_URL to the trigger client in the example
* Added the CLI dev dependency to the Astro example
* Update the running instructions to be closer to Remix's
* Create friendly-carpets-collect.md
* Fix bad package name for Astro
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* fix: Added retry config and showed error from subtask in web
* Still fallback to "Task errored" if there's no output
* Create rude-carrots-enjoy.md
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* init remix project
* feat: implemented the remix adapter package
* updated the remix package to return the action variable
* added an example job to the example remix project
* fix: Ensure Side Effects Execution in Remix API Routes
* updated the readme in @trigger.dev/remix package
* doc: added the manual setup guide for remix
* updated the webapp onboarding for remix
* updated the manual setup guide
* added a license to the @trigger.dev/remix package
* added a wait function to the example job
* added a link to the remix webapp onboarding
* Updated the onboarding page
For now, we'll only support existing projects. The button that links to the manual installation was just a blank rectangle – added some text to it.
* Added the Server API key to the instructions
* Remix manual docs
Made some things a bit clearer
- file paths
- exporting the job rather than using a function wrapper
- how to run the app and CLI dev command
* Export the job
* Update api.trigger.ts
* Added tsconfig.json paths
* Remove next dependency
* Package set to 2.1.0 and set dependencies
Shouldn't rely on a specific version in main dependencies. In this case we can just have devDependency for @remix/node
* Changeset
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* feat: add proxy support for node-fetch
This process is expected to allow the CLI and SDK to work in environments where proxy is enabled.
* Revert "feat: add proxy support for node-fetch"
This reverts commit c850030b5927c562921409fc5b798af353a7ac6b.
* feat: add proxy support for node-fetch (CLI only)
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* feat: add testing package
* feat: add unit testing example
* Delete examples/unit-testing/dummy-integration/tasks.ts
* Delete examples/unit-testing/dummy-integration/types.ts
* Update DummyIntegration to new format
* Update testing package to new integration format
* Update readme to new task spy format
* Create rotten-meals-cough.md
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* Removed next references in the ReadMe
* FAQ improvements to update Next.js references
* Added a new Frameworks page with logos to link to the quick start guides
* Renamed the mdx file so the link works
* Added basic platform guides
* Introduction doesn’t reference next.js only
* Added a note about serverless and restructured the side menu
* Added more frameworks pages to the manual install section
* Fixed SVG error
* Coming soon guides now using snippets so they can be in 2 places while we work on them
* Removed redirects
* Added a new named icon
* increased fireworks particle count slightly
* Creating a route for the onboarding and link to access it anytime from the side menu
* Moved the onboarding into new components
* Updated the routes for the onboarding page
* Onboarding is now Setup and the frameworks overview page now links to different framework page in the onboarding side nav
* URLs and pages renamed to ‘setup’
* URLs and pages renamed to ‘setup’
* Fixed some old named component imports
* WIP on a new less hacked-in background image
* Added svg logos for all the frameworks
* New paths for the new framework pages
* Side menu collapses once you selected a framework
* Temporary Nuxt page
* New routes for the new frameworks
* New ‘framework coming soon’ component - now used in the coming soon framework pages
* Moved/removed files
* Moved all svg framework logos into a new folder and file
* balanced the logo sizes
* Framework coming soon pages take a name and url
* New express svg logo
* New component for a Framework item in the grid
* Added information and design for the coming soon frameworks
* Change the grid to 1 row if jobs === 0
* Updated the framework coming soon snippet and added it to the relevant pages
* Express now 2nd in all lists
* Added link to long running server support discussion
* New logo to include next.js + supabase quick start
* roadmap now links to homepage with page anchor to roadmap section
* changelog now links to Github releases page
* Removed reference to Next.js
* Docs pages with coming soon info all share the same framework snippets
* Fixed issue of missing props
* Moved the fireworks effect into a separate file to make it easier for adding more framework onboarding pages
* Info callouts have a more muted style
* Added a callout to the top of the next onboarding to reference Serverless-only support
* Moved the callout explaining scheduled triggers not working in dev to the bottom of the test panel
This is to resolve eric’s UX ticket: https://github.com/triggerdotdev/trigger.dev/issues/416
* Added groundwork for Nest.js framework
* Using framer motion for the menu transition instead of css - now has a slight spring and is snappier
* redirect the manual setup page to the new nextjs setup page
* Fixed broken docs link
* Added a readme.md to next.js package
* Capital I for integration
* Renamed component: NextDevCommand to RunDevCommand
* Made required props non-optional
* CLI now points at manual install guides if no Next project detected
* Explicitly made supported default to false (it was working but a bit hard to read)
* Added links to all github issues for the frameworks coming soon component
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* Added ‘our progress’ table to the readme
* Added link to the connect discussion to the progress table
* Removed link from "Polling Triggers"
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* fix: use NODE_ENV when starting from docker image
When starting from `pnpm run start`, NODE_ENV is fixed to production, causing problems like #186.
So, I added `start_docker`, a process dedicated to docker, and started from it.
The process is exactly the same as `start` except that NODE_ENV is not overwritten.
* fix: align execution name with others
* Change: command name to match review
* CLI create-integration command now accepts an Open AI api key
* Create integration docs separated into multiple pages
* Initial Airtable integration commit, with OpenAI generated code
* OAuth page coming soon
* Export DisplayProperty from the SDK
* TSConfig made to match GitHub’s with paths
* getRecords
* Removed duplicate Stripe job from the catalog
* Renamed Airtable apiKey option to token
* First Airtable job
* Export Collaborator and Attachment field types
* A typesafe example that uses runTask
* WIP on new integration tasks… not working yet
* Attempt with class
* Revert "Attempt with class"
This reverts commit 93a48330019f754c3216c5b49964fa4b0218bd3f.
* WIP changing how tasks work
* Mock of async local storage
* Moved client creation from constructor
* New approach with a clone method on TriggerIntegration
* Added runTask to Airtable which is used by integration tasks
* Added the Airtable icon and connection when using runTask
* base().table() is working
* runTask options moved to the 3rd param, made optional with optional name
* Added some generic arguments
* Added generic type to table
* Removed old comment
* We don’t need to repeat the icon
* getRecords and getRecord now returning the right data and types
* Creating records
* Update records
* Delete records
* The internal properties of integrations are now hidden by the TypeScript types
* Sprinkled a Prettify in there
* Improved the types
* Added Airtable to the integration catalog
* Early work on Airtable webhook registration
* More progress with webhooks
* connectionKey needs to be cloned for webhooks to work
* connectionKey needs to be cloned for webhooks to work
* It was unclear that the ActivateSourceService was using a graphileJob id
* ActivateSourceService optionally takes a jobId, if missing it generate a unique id
* When retrying trigger registration, don’t pass an id so it is generated
* Removed Airtable webhooks tasks from the job-catalog example
* Added TriggerSourceOption, removed TriggerSourceEvent
* WIP with new ExternalSource options
* ExternalSourceTrigger setup
* DynamicTrigger changed to options, will need some more work
* filter gets options passed to it
* SourceMetadata v2 renamed to SourceMetadataV2, kept original
* Started versioning the backend
* Moved param order on io.getEvent and io.cancelEvent
* The runTask stuff that allows unknown to work is back
* Indexing for v1 and v2, with version on “activateSource” schema
* Added todos, to deal with Airtable SDK calls inside the webhook handler
* “deliverHttpSourceRequest” queueName changed to the source id so they process in order
* ActivateSource changes to deal with old and new data formats
* Update existing TriggerSources to v2
* Fix for dynamic.ts typescript errors, need to revisit this later
* UpdateSourceService v1 and v2, with new v2 API endpoint
* Removed unused imports
* More progress on v1 and v2
* Airtable webhooks are now triggering a job
* Moved webhooks to a new file
* You can do API calls in the webhook handler now, Airtable webhook data is being processed
* Airtable events coming through
* Defined the Airtable table payload type
* TriggerSource metadata is being stored and used
* Removed some logs
* Added filtering and don’t allow any webhooks that use automated sources
* Resend switched to new integration
* Moved Resend test jobs to the catalog, and tested it worked
* WIP on Slack, there are compile errors
* Created a generic type that strips out indexes
* Slack updated to use new integration
* SendGrid migrated over
* Integration runTask is now allowing regular types
* Changed io.runTask types so it only allows Json-able types
* OpenAI models tasks working
* Added Airtable changes to runTask
* Removed the index signature crap from the Slack integration
* Don’t need to cast the callback result
* Updated Resend
* Re-ordered runTask params
* WIP on openai
* onAccountUpdated is Connect only
* Removed RunTaskResult
* Handle Resend errors, the official SDK doesn’t expose them properly at the moment
* Removed OmitIndexSignature
* OpenAI converted to new integration, with backwards compatible functions
* Put the openai catalog back to what it was originally
* Export a standard retry with backoff, to be used
* Use the standard exponential backoff in the integrations
* Retry options moved earlier so they can be overriden by a task
* GitHub tasks migrated
* Added sources, fixed one bundling issue
* Added GitHub jobs to catalog
* Remove duplicate options
* Deduplicate events
* Removed duplicate Job
* Switched Plain over
* Set the Plain icon
* Converted Stripe over
* Supabase adapted
* Typeform working
* Added dynamic-schedule to catalog
* Added background-fetch job catalog
* Created dynamic-triggers catalog file
* Fixed old general file with runTask param order
* Dynamic triggers working
* SendGrid updated to use the same tsconfig as other integrations
* Removed Airtable webhook, until we have batch support
* Added OAuth airtable auth example
* Created beta changeset tag
* Beta changesets for most packages
---------
Co-authored-by: Eric Allam <eallam@icloud.com>
This commit fixes various issues with run executions, including a pretty gnarly memory bloat issue when resuming a run that had a decent number of completed tasks (e.g. anything over a few). Other issues fixed:
- Run executions no longer are bound to a queue, which will allow more parallel runs in a single job (instead of 1).
- Serverless function timeouts (504) errors are now handled better, and no longer are retried using the graphile worker failure/retry mechanism (causing massive delays).
- Fixed the job_key design of the performRunExecutionV2 task, which will ensure resumed runs are executed
- Added a mechanism to measure the amount of execution time a given run has accrued, and added a maximum execution duration on the org to be able to limit total execution time for a single run
Performance degradation came from the syntax highlighting of large code blocks and from doing that on the server and the client, so fixed this in a couple of ways:
1. Stream the task details data using defer and Suspense/Await
2. Skipped syntax highlighting code blocks with more than 1k lines
* #344 Upgrading the openai package to v4
* Create neat-roses-wait.md
* Fixed a couple of issues with the openai v4 upgrade
* Added fine tuning job tasks
* Don’t show the Ready To Run Job prompt if you have an Integration that needs attention
* Don’t highlight the row red or green
* Improvements to the contrast of the app sections and dividers
* Removed the Jobs page title as it’s duped info
* using the new border variable
* Sticky last table cell
* Improved the sticky last table cell
* Make any last cell in a table sticky by adding isSticky to it
* Added a dropdown menu to the menu table cell
* table rows can be marked as disabled by adding disabled
* Using the jobTestPath function for the test path
* tidy up imports
* Removed un-used props
* Removed the green badge variant
* Added a new status badge to the Runs table
* Clicking the gradient clicks the row
* Delete Job triggers a modal popup
* Added a large danger button type
* Added some modal styling and started adding data
* Added more styling and data to the delete job modal
* A table can now be given a full width prop
* Large danger button added to Storybook
* Danger button disabled state looks disabled now
* New active badge component to display in the table and logic for showing the env data
* Style updates to the dialog component
* active and job status badges can now have a small size
* Added a new named icon
* The Job page shows the Job status in the PageInfoRow
* Small badge style update
* Runs table has a sticky right cell
* Created a JobStatusTable component
* Added some placeholder help panel content for disabling a Job
* WIP creating a Settings page
* Added a delete button that triggers the delete modal – just need data hooking up
* Implemented deleting jobs from the dashboard
---------
Co-authored-by: Eric Allam <eallam@icloud.com>
* feat: introduce support for native astro integration package
Signed-off-by: Liran Tal <liran.tal@gmail.com>
* fix: update license copyright to match other packages from trigger
Signed-off-by: Liran Tal <liran.tal@gmail.com>
* fix: doc update to refer to the official astro package from trigger
Signed-off-by: Liran Tal <liran.tal@gmail.com>
* fix: repo URLs update accordingly to official repo
Signed-off-by: Liran Tal <liran.tal@gmail.com>
* fix: remove myself as author of the package to not confuse people
Signed-off-by: Liran Tal <liran.tal@gmail.com>
* Remove package-lock because this is now in the pnpm monorepo
---------
Signed-off-by: Liran Tal <liran.tal@gmail.com>
Co-authored-by: Eric Allam <eallam@icloud.com>
* feat: add hostname option to the dev command
- This commit adds a `hostname` option to the cli `dev` command, to allow the cli to point to nextjs applications running on different hostnames other than `localhost`. Example: the nextjs app was started using a --hostname 0.0.0.0 option to be able to be visible from inside docker containers. So adding --hostname 0.0.0.0 to `trigger-cli dev` would make it work.
* docs: add dev cli command hostname option documentation
* feat: add hostname option to the dev command
- This commit adds a `hostname` option to the cli `dev` command, to allow the cli to point to nextjs applications running on different hostnames other than `localhost`. Example: the nextjs app was started using a --hostname 0.0.0.0 option to be able to be visible from inside docker containers. So adding --hostname 0.0.0.0 to `trigger-cli dev` would make it work.
* docs: add dev cli command hostname option documentation
* Update hip-coins-reply.md
---------
Co-authored-by: Eric Allam <eallam@icloud.com>
* WIP job run performance improvements
- Added a `perf` tool to better measure job run performance under heavy load
- Removed `runFinished` job (not really needed)
- startQueuedRuns now uses a jobKey with replace
- Fixed an issue with ZodWorker when using jobKey
* Publish improvement docker images
* fixed the improvement docker publishing
* Downgrade back to prisma 4.16.0 because 5.1.x broke docker builds
* Changes to how queued runs work
- Split the worker into two different workers, one dedicated to performRunExecution
- Schedule performRunExecution in a single place, with a queue and using a round robin manually controlled concurrency
- Remove startQueuedRuns
- All runs are queued before they are started
- Setting the worker maxPoolSize to the same as the worker concurrency
- Starting to be able to split the docker image
* Remove queue name from startRun graphile job
* Make the prisma connection pool stuff configurable through env vars
* Hardcode (for now) the max concurrent runs limit
* Rewrite performRunExecution to be more performant
PerformRunExecutionV2:
- Does not create and manage jobRunExecution records
- Does not reimplement retrying, uses graphile worker retrying instead
I’ve kept around PerformRunExecutionV1 so this works when deploying. Definitely needs LOTS of testing
* Fix issues with cached tasks
- Limit the size of the cached tasks sent when executing a run, using the knapsack problem dynamic programming approach
- Actually USE the cached tasks in IO by using the idempotencyKey instead of the task ID
- Remove output from all logs
- Added a stress test job catalog
* Forgot to commit the logger updates
* Never log connectionString
* Login to docker hub to get around rate limits
* Add additional logging to the graphile workers
* Fix the *_ENABLED env vars
* Allow adding and removing jobs to be done from the webapp
* Don’t set the job to failed if it’s being retried
* Deprecated queue options in the job and removed startPosition. Now using the job/env combo as the job queue name
* Dequeung jobs doesn’t check if the runner is initialized
* Fixed issues with retrying a run getting stuck on a cancelled task, and errors from parsing the results of dequeing a job
* Remove queued round robin thing that isn’t used anymore
* Added slack to job catalog
* Better forwards compat
* Added long delay
* Fixed lock file
* chore: make possible to write tests aside with implementations
* test: write getUserPkgManager test TO-DOs
* test: add test to building the path
* test: add tests to manual file checking
* test: add tests to npm_config_user_agent
* Update packages/cli/src/utils/getUserPkgManager.spec.ts
* test: add test to no-duplicated-task-keys rule
* feat: implement no-duplicated-task-keys
* chore: create testing scripts
* refactor: fill in rule meta
* feat: export no-duplicated-task-keys rule
* chore: bump package version to 0.0.1
* chore: create eslint plugin
* feat: create no-duplicated-task-keys rule
* refactor: delete no-duplicated-task-keys from config-custom
* refactor: rename eslint-plugin folder
* feat: cover case from nextjs-example
* feat: cover additional cases from examples/package-tester
* chore: add eslint-plugin on nextjs-example
* feat: add more cases from `nextjs-example`
* revert: rollback changes on eslint-config-custom
* Set version to 2.0.9, inline with other packages
* Create chilly-pianos-try.md
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* FIx: [TRI-1006] New @trigger.dev/cli whoami command.
* revert dev.ts zod schema to original
* Removed telemetry
* remove all telemetry
* Made the clientId optional again
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* chore: run `pnpm install --prefer-frozen-lockfile`
* chore: install `jest` and `ts-jest`
* test: create `jest.config.js`
* chore: install `@types/jest`
* chore: add `jest` on `tsconfig.json` `types` property
* chore: create test script
* test: create example test 🎉🎊🕺🏼
* chore: install `@gmrchk/cli-testing-library`
* chore: override `tsconfig` with `@trigger.dev/tsconfig`
* test: make poc of cli test
* chore: run build before test
* docs: improve comment
* Added a changeset
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* chore: update prisma from version 4.16.0 to 5.1.0
* fixed the ts-errors due to the prisma update
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* Update integrations.mdx
The first sentence in this paragraph for `### API Keys and Tokens` was missing a word or two and it wasn't entirely clear what did the original author of this docs page intended.
I've entered what seems to be the missing context but happy to re-phrase too if another wording makes better sense here.
* Made it clear that API keys are provided by you in your code
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* docs: Update runs.mdx
From what I can tell, it is expected for run functions to return with some sort of payload. Providing an example here as a reference and guideline.
* Made it clear returning data is optional and added some more detail below
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* Added docs images for supabase
* Compressed some existing images
* Improved some of the main quickstart wording
* First draft of the Supabase quickstart
* Tweaks to the Supabase quickstart and the supabase integration docs
---------
Co-authored-by: James Ritchie <james@jamesritchie.co.uk>
* doc: added a new documentation for event filters
* removed typos from the event filter doc and formatted it better.
* made new changes
- moved the eventfilter doc to the guides section
- linked the old eventfilter doc to the new one
* updated the eventfilter doc based on the requested changes
* fix: support express jsonParser middleware if used in the Express app
* Create sixty-windows-run.md
---------
Co-authored-by: Eric Allam <eallam@icloud.com>
* fix: Handle ngrok config upgrade error in createTunnel function
* Improved the output when upgrading the ngrok configuration
* Create three-flies-sneeze.md
---------
Co-authored-by: Eric Allam <eallam@icloud.com>
* feature: initial work for sendgrid integration
* fix: fixed the ts-error and added sendgrid integration to the job-catalogue
* SendGrid added to dependencies
* Made the from email an env var so it can be tested by non-Trigger.dev team members
* Refactor: Modify sendEmail function to return void and remove SendEmailResponse type
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* Create funny-kangaroos-glow.md
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
Co-authored-by: Eric Allam <eallam@icloud.com>
* Only show the Example Jobs list when you have 1 job
* Updated the logic for displaying the different information depending on the no. of jobs you have
* Removed some unnecessary markup
* Clicking on a radio option toggles the content
* Improved the centering of the help panel
* Conetent updates to the 2 onboarding paths
* Added a prompt so you click through to run your job
* More content updates to the help panel
* Only show the prompt if the Job has never been run
* Added back in the help panel which shows the examples table if you have > 0 jobs
* Added a dialog for the I am Stuck button
* Added the new ‘new-next-app’ text for the cli command
* Refactored the ternary logic so it’s simpler
* Removed I’m stuck button and cleaned up imports
* Added in feedback button
* Added margin bottom to the Callout on the Test popover
* WIP adding a new radio button variant that takes an icon
* Added a new step to create a new next app
* The state of the tabs is stored as a URL param
* Small shadow tweak to the side panel
* Added a Discord button to the feedback menu
* Added new icons to the Named icons component
* Added a gradient to the background of the jobs page
* Made the icons take on color outside of component
* Added another NamedIcon for tree
* Fixed number
* Improved some of the typography styles
* Updated the icons
* Fixed issue with radio buttons alignment
* Added a missing step to the new next app onboarding
* Refactored example code and added all the examples to the panel
* Small icon update
* Made the title white again
* Added an icon to the storybook radiogroup
* Added a badges storybook
* Chevron table cell now takes children
* import cleanup
* Changed the background image from an arbirary value to an import
* Added a NEW badge which shows if you have a new job
* Improved the copy on the Examples help panel and updated some of the layout
* Removed defaultOpen on the help panel
* Stop the icons getting smaller
---------
Co-authored-by: D-K-P <dkp.github@pm.me>
* Changed the example job to include a delay
* Improved the example job copy and added ‘in a separate terminal’ to 2.
* Create kind-eggs-pump.md
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* feat: adds a job catalog file when an integration is created via the CLI
* added a changeset
* fix: create-integration CLI throws an error when it tries to install dependencies
* Update getUserPkgManager.ts to main
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
* If an endpointId isn’t in the arguments or package, then use the project slug. Don’t ask for it.
* Should await the package artifact detection
* Catch error thrown if there’s no next.config file when detecting the type of Next project
* Create long-carrots-camp.md
* Fix:[TRI-879]-Hides help panel when endpoints exists on the Environments & API Keys page
* fix: adds check for fully configured client
g
---------
Co-authored-by: Crossover <crossover@MacBook-Pro.local>
* Detect presence of a “next” dependency
* Use a strict undefined check instead
* Changeset: Detect Next.js project by looking at dependencies, not next.config.js
* Read a package json file
* First check for next.config file, otherwise use next dependency
* Update changeset description
* Created the sheet
* Started work on the resource route
* Created ValidateCreateEndpointService and the EndpointValidateApi (name TBC)
* The TriggerClient responds with the id
* Tidied some stuff up
* Alternative: EndpointApi doesn’t take endpointSlug. Instead just Ping() does
* Create cool-snakes-deny.md
---------
Co-authored-by: Eric Allam <eallam@icloud.com>
* update cli init to create index file in examples folder
* add patch changeset
* Create silly-baboons-join.md
* remove comment in router file
add comment in jobs index to instruct them to
* rename examplesIndex to examplesIndexFileName
* import jobs module in routeContent for createTriggerPageRoute just as we did for createTriggerAppRoute
---------
Co-authored-by: Matt Aitken <matt@mattaitken.com>
2023-08-06 16:42:32 +01:00
2491 changed files with 216794 additions and 32949 deletions
Adds support for `emitDecoratorMetadata: true` and `experimentalDecorators: true` in your tsconfig using the [`@anatine/esbuild-decorators`](https://github.com/anatine/esbuildnx/tree/main/packages/esbuild-decorators) package. This allows you to use libraries like TypeORM:
```ts orm/index.ts
import "reflect-metadata";
import { DataSource } from "typeorm";
import { Entity, Column, PrimaryColumn } from "typeorm";
@Entity()
export class Photo {
@PrimaryColumn()
id!: number;
@Column()
name!: string;
@Column()
description!: string;
@Column()
filename!: string;
@Column()
views!: number;
@Column()
isPublished!: boolean;
}
export const AppDataSource = new DataSource({
type: "postgres",
host: "localhost",
port: 5432,
username: "postgres",
password: "postgres",
database: "v3-catalog",
entities: [Photo],
synchronize: true,
logging: false,
});
```
And then in your trigger.config.ts file you can initialize the datasource using the new `init` option:
```ts trigger.config.ts
import type { TriggerConfig } from "@trigger.dev/sdk/v3";
Updates the `trigger`, `batchTrigger` and their `*AndWait` variants to use the first parameter for the payload/items, and the second parameter for options.
We've also changed the API of the `triggerAndWait` result. Before, if the subtask that was triggered finished with an error, we would automatically "rethrow" the error in the parent task.
Now instead we're returning a `TaskRunResult` object that allows you to discriminate between successful and failed runs in the subtask:
When using idempotency keys, triggerAndWait and batchTriggerAndWait will still work even if the existing runs have already been completed (or even partially completed, in the case of batchTriggerAndWait)
- TaskRunExecutionResult.id is now the run friendlyId, not the attempt friendlyId
- A single TaskRun can now have many batchItems, in the case of batchTriggerAndWait while using idempotency keys
- A run’s idempotencyKey is now added to the ctx as well as the TaskEvent and displayed in the span view
- When resolving batchTriggerAndWait, the runtimes no longer reject promises, leading to an error in the parent task
Fixes an issue that caused failed tasks when resuming after calling `triggerAndWait` or `batchTriggerAndWait` in prod/staging (this doesn't effect dev).
The version of Node.js we use for deployed workers (latest 20) would crash with an out-of-memory error when the checkpoint was restored. This crash does not happen on Node 18x or Node21x, so we've decided to upgrade the worker version to Node.js21x, to mitigate this issue.
You'll need to re-deploy to production to fix the issue.
ENCRYPTION_KEY=ae13021afef0819c3a307ad487071c06 # Must be a random 16 byte hex string. You can generate an encryption key by running `openssl rand -hex 16` in your terminal
description:Create a bug report to help us improve
title:"bug: "
labels:["🐞 unconfirmed bug"]
body:
- type:textarea
attributes:
label:Provide environment information
description:|
Run this command in your project root and paste the results:
```bash
npx envinfo --system --binaries
```
validations:
required:true
- type:textarea
attributes:
label:Describe the bug
description:A clear and concise description of the bug, as well as what you expected to happen when encountering it.
validations:
required:true
- type:input
attributes:
label:Reproduction repo
description:If applicable, please provide a link to a reproduction repo or a Stackblitz / CodeSandbox project. Your issue may be closed if this is not provided and we are unable to reproduce the issue. If your bug is a docs issue, link the appropriate page.
validations:
required:true
- type:textarea
attributes:
label:To reproduce
description:Describe how to reproduce your bug. Steps, code snippets, reproduction repos etc.
validations:
required:true
- type:textarea
attributes:
label:Additional information
description:Add any other information related to the bug here, screenshots if applicable.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.