Compare commits

...

3045 Commits

Author SHA1 Message Date
Matt Aitken 284324031c Latest lockfile 2023-09-22 16:23:21 -07:00
github-actions[bot] 2fdf42d444 chore: Update version for release (#481)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-09-22 16:20:21 -07:00
Eric Allam 50137a6f24 Decouple zod (#500)
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / Unit Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / e2e Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
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
2023-09-22 14:44:03 -07:00
Matt Aitken 3703f989fa Remix onboarding now uses the CLI init command 2023-09-22 14:39:21 -07:00
Matt Aitken 2a42942b01 The CLI now checks for a dev server API key in init and dev commands 2023-09-22 13:37:59 -07:00
Matt Aitken 7b29a92f6a Removed dynamicTrigger @internal from toJSON 2023-09-22 12:24:07 -07:00
Eric Allam 24465c9a7b Add back in Job.toJSON to fix the testing package 2023-09-22 11:21:37 -07:00
Eric Allam 42022b6ba4 Add BYO auth for oauth options 2023-09-22 10:31:40 -07:00
Matt Aitken dcc807d716 Linear getAll type error (weirdly not in VSCode…) and removed the pagination example that uses the SDK as won’t work with timeouts 2023-09-22 10:23:24 -07:00
Matt Aitken b5e37bfa61 Fix for getPathAlias typecheck failure 2023-09-22 09:59:59 -07:00
Matt Aitken 5681ebc756 Latest lockfile 2023-09-22 09:53:30 -07:00
Matt Aitken 886d6fda36 Tweaked the Linear scopes 2023-09-22 09:51:49 -07:00
Matt Aitken 1a4952720f 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
2023-09-22 08:55:04 -07:00
Eric Allam c0dfa8048a 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
2023-09-22 08:54:31 -07:00
nicktrn 3e63a7e7a0 fix: Fail client-side on invalid Stripe event names (#492)
* Parse event names

* Add changeset
2023-09-22 08:53:04 -07:00
Eric Allam 4cc690a6ce Update sendevent.mdx 2023-09-22 08:44:14 -07:00
nicktrn 537447e318 Use absolute image paths (#490) 2023-09-21 15:45:40 -07:00
nicktrn 15f17d27e0 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>
2023-09-21 15:14:54 -07:00
Matt Aitken 91fc1e80f3 Use the bell icon for the new status Tasks
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / Unit Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / e2e Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-09-21 15:01:35 -07:00
Gregory dfe680a390 Update introduction.mdx (#498)
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / Unit Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / e2e Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
Changed https://github.com/triggerdotdev/examples/tree/main/resend (which was a 404) to https://github.com/triggerdotdev/examples/tree/main/resend-email-form
2023-09-21 14:06:14 -07:00
Matt Aitken f73a2a424b Revert "Upgrade to the latest remix (pre v2)"
This reverts commit 4edc7112ab.
2023-09-21 13:19:03 -07:00
Matt Aitken 6ce87f169a Fixed dependency 2023-09-21 11:35:12 -07:00
Matt Aitken ad14983e21 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
2023-09-21 10:24:37 -07:00
Eric Allam 4edc7112ab Upgrade to the latest remix (pre v2) 2023-09-18 22:20:41 +01:00
D-K-P c2ce707f3d Fixed cal.com link 2023-09-18 13:54:53 +01:00
Eric Allam cd70a29970 Improve the Astro manual setup guide 2023-09-15 17:40:36 +01:00
Eric Allam cd94d8fee2 Fixes broken pnpm lock file 2023-09-15 16:17:53 +01:00
Eric Allam 241e40e3e2 Add a references README 2023-09-15 16:12:50 +01:00
Eric Allam 486ed20ae7 Renamed the examples dir to references (true examples are in another repo and this was confusing) 2023-09-15 16:09:04 +01:00
James Ritchie e5ffc3a3f3 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
2023-09-15 15:11:40 +01:00
Aniket Bindhani 363c74c6da Documentation Update: Added <github_username> instead of triggerdotdev to avoid confusion while cloning the repository (#477) 2023-09-15 12:55:56 +01:00
Eric Allam f98c425186 Redirect people to discord to ask a question 2023-09-15 12:54:54 +01:00
Matt Aitken da10ba907f Added instructions for how to do Changeset snapshots 2023-09-15 12:54:38 +01:00
Eric Allam 5aeef1233b A few teaks to the templates 2023-09-15 12:52:29 +01:00
Vishesh Rawal fb5f4e308f Created Temp for pull req, bugreport & feature req 2023-09-15 12:52:29 +01:00
Wesley 6ccb4fbc63 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>
2023-09-15 12:51:25 +01:00
Matt Aitken 88ebf4a1a0 Updated the Astro docs with SSR notes 2023-09-14 15:25:43 +01:00
Matt Aitken 9a0e6412e9 Bumped package versions to 2.1.3 2023-09-14 13:37:02 +01:00
Matt Aitken a68a912d56 Docs: improved the limitations 2023-09-14 11:55:51 +01:00
Matt Aitken dde51d6d25 Astro docs improvements 2023-09-14 11:55:38 +01:00
Matt Aitken dbd094216d Updated Astro setup docs: env import 2023-09-14 11:14:35 +01:00
Matt Aitken dc7f335beb Latest lockfile 2023-09-14 09:22:05 +01:00
github-actions[bot] 454cad69b4 chore: Update version for release (#473)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-09-13 18:07:22 +01:00
Matt Aitken f86117f92b Some improvements to the docs platforms section 2023-09-13 18:05:34 +01:00
Matt Aitken b4c67984bc Latest lockfile 2023-09-13 17:57:22 +01:00
Chigala 1b4db79885 Feat/astro support (#466)
* 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>
2023-09-13 17:55:33 +01:00
Matt Aitken e1e60499b2 Fix for incorrect remix package name in docs
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / Unit Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / e2e Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-09-13 15:41:24 +01:00
Matt Aitken 4eb2439d64 Don’t check for the page title in verify jobs e2e test 2023-09-13 13:57:35 +01:00
Matt Aitken 2895ad52fd Re-run the publish workflow when the test have been updated 2023-09-13 13:56:44 +01:00
Matt Aitken a73b842c60 Latest lockfile 2023-09-13 13:42:00 +01:00
github-actions[bot] cfa3e24123 chore: Update version for release (#444)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-09-13 13:38:03 +01:00
Matt Aitken b2670f5948 @examples/unit-testing shouldn’t be in a changeset 2023-09-13 13:34:01 +01:00
Matt Aitken 5a93aa6fa1 Updated e2e tests because of text changes 2023-09-13 13:29:56 +01:00
Matt Aitken 6b471489b0 Fix for typecheck problem with Remix example 2023-09-13 12:09:51 +01:00
Matt Aitken 07d68a3289 Latest lockfile 2023-09-13 11:19:09 +01:00
Ravan bf24593b7f fix: Added retry config and showed error from subtask in web (#468)
* 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>
2023-09-12 16:25:29 +01:00
Matt Aitken f52ecb9a84 Removed unused component 2023-09-11 19:20:35 +01:00
Matt Aitken 711019032f Added the SDK to webapp tsconfig 2023-09-11 19:20:30 +01:00
Matt Aitken 68c3c89824 Added className to StepContentContainer. Was missing in a PR I merged… agh 2023-09-11 19:12:42 +01:00
Chigala b00717748b Feat/remix support (#465)
* 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>
2023-09-11 18:09:43 +01:00
arika 7833db45d7 feat: add proxy support to the CLI (#404)
* 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>
2023-09-11 13:56:55 +01:00
nicktrn 6de8bd470b Add @trigger.dev/testing package (#432)
* 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>
2023-09-11 13:38:05 +01:00
hrutik7 1d4e31138e Update nextjs.mdx (#458)
note about next 13.4.4 #423
2023-09-10 18:01:31 +01:00
Matt Aitken a93fba932c Caught another runTask param order update 2023-09-10 17:54:58 +01:00
Matt Aitken 6d29914327 Clarified the webhook response 2023-09-10 17:48:19 +01:00
Matt Aitken bd0b335c1e Added docs on how to create a webhook handler 2023-09-10 17:41:33 +01:00
Matt Aitken 82c5965e8a Some docs on how to create Triggers in integrations 2023-09-08 20:09:15 +01:00
James Ritchie 65fa8300ad Support for more frameworks (#446)
* 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>
2023-09-08 17:26:08 +01:00
D-K-P aae143d96e Changed examples job / project table 2023-09-08 12:33:18 +01:00
Bryan Eaton 315b94d05b Fix crontrigger.mdx link to /docs/sdk/job (#433) 2023-09-08 11:52:51 +01:00
Dan 440560976d Added progress table to the readme (#438)
* 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>
2023-09-08 11:50:40 +01:00
arika 5c1e002233 Fix: Magic link login not working properly when booted from docker (#390)
* 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
2023-09-08 11:06:06 +01:00
Matt Aitken 36f2ece44c Latest lockfile 2023-09-07 17:54:09 +01:00
Matt Aitken 316bf9f3c2 Updated the create integration docs for the new integration structure (no trigger docs yet) 2023-09-07 17:52:27 +01:00
Matt Aitken a57221bbfe Removed the log 2023-09-07 14:04:41 +01:00
Matt Aitken 39b8445e06 CLI create-integration command updated with new OpenAI prompts to match new integrations 2023-09-07 14:03:55 +01:00
Matt Aitken 33ecb36be1 Updating the create-integration command for new integrations 2023-09-07 13:10:56 +01:00
Matt Aitken a00fbe421a Fixed GitHub usage example
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / Unit Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / e2e Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-09-07 10:49:38 +01:00
Matt Aitken c0edeca5cc Airtable docs page 2023-09-07 09:35:22 +01:00
Matt Aitken 7ac7d83c3e Docs: integrations alphabetical in the sidebar, and removed folders where they weren’t used 2023-09-07 09:16:22 +01:00
Matt Aitken 3d1b6c236a Added Typescript devDependency to react, nextjs and integration-kit so they pass a typecheck 2023-09-06 18:35:12 +01:00
Matt Aitken 8ddd151051 Re-ordered runTask params in docs, and example Jobs in the app. 2023-09-06 18:31:50 +01:00
Matt Aitken 9947383f5a Updated lockfile for package release 2023-09-06 16:07:43 +01:00
github-actions[bot] 46e1a1493b chore: Update version for release (#440)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-09-06 16:06:53 +01:00
Matt Aitken b1cdbf52d6 Exited package prerelease mode 2023-09-06 15:53:40 +01:00
Matt Aitken 1491d4251d Set the Airtable integration examples to something useful 2023-09-06 15:50:52 +01:00
Eric Allam 62ac5dd137 Fixed the healthcheck endpoint (hopefully) on https
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / Unit Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / e2e Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-09-06 13:35:43 +01:00
Matt Aitken 23c93a5712 Latest lockfile 2023-09-05 19:12:56 +01:00
github-actions[bot] 208907e10e chore: Update version for release (beta) (#437)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-09-05 18:55:35 +01:00
Matt Aitken 3ef588e4e5 Supabase changeset: Don't retry enableDatabaseWebhooks 2023-09-05 18:01:11 +01:00
Matt Aitken 10836735be Supabase SDK tsconfig now matches OpenAI. enableDatabaseWebhooks doesn’t retry 2023-09-05 18:00:25 +01:00
Matt Aitken 090bc2e7d2 OverridableRunTaskOptions allows integrations to expose override task options to users 2023-09-05 17:59:46 +01:00
Matt Aitken 4fe2fd63de Latest lockfile 2023-09-05 17:00:27 +01:00
github-actions[bot] 145fb24e4d chore: Update version for release (beta) (#434)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-09-05 16:48:28 +01:00
Matt Aitken 2382d4a5c5 Added patch back in 2023-09-05 16:29:23 +01:00
Matt Aitken adbcfe6f20 Use experimental changeset peer dependency flag 2023-09-05 15:57:49 +01:00
Matt Aitken 0754e99507 Removed changeset patch (it didn’t work) and instead use the documented experimental flag 2023-09-05 15:57:37 +01:00
Matt Aitken dfb0a79abc Delete changeset 2023-09-05 15:40:15 +01:00
Matt Aitken c808e40f61 Changset onlyUpdatePeerDependentsWhenOutOfRange flag on 2023-09-05 15:28:45 +01:00
Matt Aitken a9bb53b529 Use patched changeset package, to get unreleased feature with peer dependencies 2023-09-05 15:28:33 +01:00
Matt Aitken 2636d9091e Release workflow: the changeset folder wasn’t set correctly 2023-09-05 15:14:46 +01:00
Matt Aitken 878da3c01f The changeset for the integrations changes 2023-09-05 14:53:21 +01:00
Matt Aitken 588461188f Removed old changeset 2023-09-05 14:43:02 +01:00
Matt Aitken d4145de9a7 Bumped Airtable starting version to match others 2023-09-05 14:40:41 +01:00
Matt Aitken 188c4b0e24 Trying Changeset experimental option to prevent minor + patch resulting in a major 2023-09-05 14:37:52 +01:00
Matt Aitken ecd050bece Airtable integration with webhook and integration changes (#399)
* 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>
2023-09-05 14:21:42 +01:00
Eric Allam b24aeea592 Added a long running job to stress tests 2023-09-05 12:24:58 +01:00
Eric Allam 30ba73c4f1 Various run execution fixes (incl massive memory bloat issue)
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / Unit Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / e2e Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
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
2023-09-05 09:51:43 +01:00
Matt Aitken bf6a2a0319 Fix for seedCloud script having a duplicate pkApiKey in it 2023-09-04 20:19:53 +01:00
James Ritchie 4fc5de0dac Fixed console errors 2023-09-04 16:48:39 +01:00
Eric Allam 11ff63a9d2 Fix pnpm lock file 2023-09-02 07:08:36 +01:00
Eric Allam 0d1bdac8ab Merge branch 'main' of https://github.com/triggerdotdev/trigger.dev 2023-09-01 22:05:09 +01:00
Eric Allam 9f076631ae #346 Improve run dashboard perf when tasks have large outputs
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
2023-09-01 22:05:06 +01:00
Matt Aitken a0d663c0fb Setup debugging for VSCode 2023-09-01 16:41:11 +01:00
D-K-P 8fd68e30e9 Removed typeform line 2023-08-31 11:15:47 +01:00
Akshay Patel 5c13512091 Better handle retrying rate-limited resend requests (#320)
* Better handle retrying rate-limited resend requests

* Better handle Retrying  Rate Request

* update try of better handle Resend Email retry

* added  retry options for when  the onError callback returns undefined

* Changed header to ratelimit-reset

* Create three-pots-flow.md

---------

Co-authored-by: Matt Aitken <matt@mattaitken.com>
2023-08-30 10:09:57 +01:00
Eric Allam 1d7e5737a0 Fix pnpm lock 2023-08-28 16:07:18 +01:00
github-actions[bot] 305e3b7ef2 chore: Update version for release (#417)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-28 16:06:35 +01:00
Eric Allam 03721cb18d Merge branch 'Chigala-refactor/lower-max-retries-for-specific-tasks' 2023-08-28 14:25:59 +01:00
Eric Allam 773a6e2c81 A couple of fixes 2023-08-28 14:25:41 +01:00
Eric Allam 2f13ac100f Merge branch 'refactor/lower-max-retries-for-specific-tasks' of https://github.com/Chigala/trigger.dev into Chigala-refactor/lower-max-retries-for-specific-tasks 2023-08-28 14:02:03 +01:00
Eric Allam a10782490f @trigger.dev/stripe: Added PaymentIntent and Payout trigger events 2023-08-28 12:40:02 +01:00
Eric Allam 6ad91123f2 Turned off automatic github releases 2023-08-28 10:49:24 +01:00
Eric Allam 81f2d5e4ec Fix pnpm lock 2023-08-28 10:45:16 +01:00
github-actions[bot] f249d8defa chore: Update version for release (#414)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-28 10:43:25 +01:00
Eric Allam 09aef5cda7 Merge branch 'main' of https://github.com/triggerdotdev/trigger.dev 2023-08-28 10:38:12 +01:00
Eric Allam 3028b6ad9d Try to automatically create github releases when packages are updated 2023-08-28 10:38:01 +01:00
Wesley 060b650845 fix/TRI 1149/cover all duplicated cases (#398)
* feat: select node by property key name

* feat: get `IfStatement`s recursively

* refactor: make `getNodeBody` more readable

* refactor: enshorter rule code

* refactor: remove additional spaces

* Create lovely-teachers-taste.md

---------

Co-authored-by: Eric Allam <eallam@icloud.com>
2023-08-28 10:26:31 +01:00
Chigala 6186a14398 fix: CLI init doesn't work outside of a GIT repo (#405) 2023-08-28 10:25:30 +01:00
Eric Allam 916a353660 bugfix: retrying tasks no longer incorrectly complete successfully 2023-08-28 10:16:47 +01:00
neo773 699878a5b1 feat: Add update checker for CLI (#412)
* feat: Add update checker for CLI

* Create soft-hounds-clap.md

---------

Co-authored-by: Eric Allam <eallam@icloud.com>
2023-08-28 09:36:53 +01:00
Chigala d2c9b64212 fix: CLI dev command doesn't work if you're already running ngrok (#407)
* fix: CLI dev command doesn't work if you're already running ngrok

* added changeset
2023-08-28 09:26:26 +01:00
Eric Allam 3102deccfb Add onAccountUpdated to the list of stripe triggers in the docs 2023-08-27 21:54:22 +01:00
Eric Allam 97c1b51332 Fix pnpm lock 2023-08-27 14:13:08 +01:00
github-actions[bot] 4ab7082954 chore: Update version for release (#408)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-27 14:12:33 +01:00
Eric Allam 760f5de248 Adding additional stripe triggers and added initial stripe integration docs 2023-08-27 14:09:24 +01:00
nicktrn de7e8c783e docs: fix fly.io direct connection url (#397) 2023-08-25 10:22:56 +01:00
Sondreal 45b7af53e6 Update self-hosting.mdx (#395) 2023-08-25 08:42:08 +01:00
Chigala aa7458fe37 refactor: reduced max retries on some task to 1 on development 2023-08-24 23:50:33 +01:00
James Ritchie 1fd1d26780 Made jobs and runs into nouns 2023-08-24 15:36:14 +01:00
Eric Allam 6979eb6e66 Fixed pnpm lock 2023-08-24 15:27:08 +01:00
github-actions[bot] b0f926d28d chore: Update version for release (#375)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-24 15:26:42 +01:00
Eric Allam 82d8e7d3f3 Added the new tasks to the openai docs 2023-08-24 15:24:30 +01:00
James Ritchie a214411218 Changed the button text for Delete Job on the settings page
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / Unit Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / e2e Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-08-24 15:04:28 +01:00
James Ritchie 2806cee7de Conditionally show the disable Job text by the Delete button 2023-08-24 14:36:02 +01:00
James Ritchie bd28556bf3 Made the loading spinner white 2023-08-24 14:25:59 +01:00
James Ritchie 19a8d39fb0 The Delete button displays full width again 2023-08-24 14:11:55 +01:00
Chigala a907e2a988 chore: updated the type in the eventId argument (#389)
* chore: updated the type in the eventId argument

* Create nervous-masks-rest.md

---------

Co-authored-by: Eric Allam <eallam@icloud.com>
2023-08-24 11:51:06 +01:00
Eric Allam 403acac5ef #344 Upgrading the openai package to v4 (#383)
* #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
2023-08-24 11:48:39 +01:00
James Ritchie 708ebbde14 Features: Disabling and deleting jobs (#381)
* 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>
2023-08-24 10:30:00 +01:00
Eric Allam 3ce5397072 Implement the disable job feature backend when indexing endpoints (#382) 2023-08-23 10:30:06 +01:00
Liran Tal ee79ab30a9 feat: introduce support for native astro integration package (#354)
* 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>
2023-08-23 10:29:10 +01:00
Eric Allam 2b21f5ba8a bugfix: specifiying an alternate WORKER_SCHEMA now works 2023-08-22 13:15:12 +01:00
Eric Allam 8c27236bc9 Merge branch 'rishi-raj-jain-main' 2023-08-22 11:51:02 +01:00
Eric Allam b8d191052b A couple tweaks to the update command 2023-08-22 11:50:52 +01:00
Eric Allam 979f5f88ae Merge branch 'main' of https://github.com/rishi-raj-jain/trigger.dev into rishi-raj-jain-main
# Conflicts:
#	pnpm-lock.yaml
2023-08-22 11:32:31 +01:00
Eric Allam fef1670533 Improved the testing CLI contributing guide 2023-08-22 11:28:03 +01:00
Eric Allam 3897e6e695 @trigger.dev/cli ini: Make it more clear which API key the init command expects 2023-08-22 11:16:29 +01:00
Eric Allam fc083de102 Merge branch 'Chigala-bugfix/cli-init' 2023-08-22 11:06:44 +01:00
Eric Allam c7c5fd7fac Fixed the examples job path 2023-08-22 11:06:32 +01:00
Eric Allam 4630960478 Merge branch 'bugfix/cli-init' of https://github.com/Chigala/trigger.dev into Chigala-bugfix/cli-init 2023-08-22 10:57:05 +01:00
Eric Allam 302bd02ff1 Issue #377: only expose the external eventId in the API (#380)
* Issue #377: only expose the external eventId in the API

* Create eighty-zebras-bow.md
2023-08-22 10:46:46 +01:00
Eric Allam b5db9f5e5c Added MIT license to all public packages 2023-08-21 22:38:11 +01:00
Rishi Raj Jain 4b64c2d020 remove Index type 2023-08-22 02:19:36 +05:30
Rishi Raj Jain 0c01e58db9 await 2023-08-22 02:15:43 +05:30
Rishi Raj Jain 367ce2e412 use exitsing methods 2023-08-22 02:07:14 +05:30
Rishi Raj Jain 92f80fd87c Merge branch 'triggerdotdev:main' into main 2023-08-22 02:03:43 +05:30
Chigala 135cb4921f added changeset 2023-08-21 19:02:52 +01:00
Chigala 6cbc4f1190 fix: CLI init now logs the correct app route path. 2023-08-21 18:59:31 +01:00
Rishi Raj Jain 1bf84548d7 add types 2023-08-21 23:19:03 +05:30
Rishi Raj Jain ce95744e98 use npm-check-updates 2023-08-21 23:11:15 +05:30
Eric Allam 0493cebaed Merge branch 'Chigala-feat/cancelEvent-function' 2023-08-21 17:49:48 +01:00
Eric Allam ac98219b76 adding changeset 2023-08-21 17:49:28 +01:00
Eric Allam c8ddc19d5a Fixed an issue with IngestSendEvent not returning an existing event 2023-08-21 17:48:34 +01:00
Eric Allam c6df574689 Fixed io.cancelEvent (shouldn’t be a noop) 2023-08-21 17:48:21 +01:00
Rishi Raj Jain 232b7cd26a Merge branch 'triggerdotdev:main' into main 2023-08-21 21:49:35 +05:30
Eric Allam b9dc7ce89e Merge branch 'feat/cancelEvent-function' of https://github.com/Chigala/trigger.dev into Chigala-feat/cancelEvent-function
# Conflicts:
#	apps/webapp/app/platform/zodWorker.server.ts
2023-08-21 16:57:36 +01:00
Chigala 8cf85443d5 bugfix: jsx extensions breaks cli init (#374)
* bugfix: jsx extensions breaks cli init

* Update init.ts (adding ts extension to check)

* Create rude-spoons-compete.md

---------

Co-authored-by: Eric Allam <eallam@icloud.com>
2023-08-21 16:03:10 +01:00
Hugo Nogueira dd10717628 feat: add hostname option to the dev command (#370)
* 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>
2023-08-21 15:46:16 +01:00
Eric Allam 8bd1ca8b66 Fix pnpm lock file 2023-08-21 14:01:38 +01:00
github-actions[bot] 7f5ce165a0 chore: Update version for release (#361)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-21 13:45:35 +01:00
Eric Allam 7df1b90928 Tweak some of the task max attempts
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / Unit Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / e2e Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-08-21 09:52:55 +01:00
Atharva Deshpande 57a7e00bfa Fix spelling mistake in README.md (#371) 2023-08-19 15:23:22 +01:00
Eric Allam 7362feed71 Fix for old clients missing the cached tasks 2023-08-19 07:32:34 +01:00
Eric Allam b1b9321ad2 Job run performance improvements and adding "worker only" mode (#360)
* 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
2023-08-18 15:25:26 +01:00
Dan a69f756e34 Added delay example to init.ts so it works with the pages router (#363) 2023-08-18 15:22:18 +01:00
Chigala 18a02829e3 set the jobkey as event:event.id 2023-08-18 15:21:09 +01:00
Matt Aitken 0f6e580641 Added SendGrid to the integrations table in docs 2023-08-18 15:13:16 +01:00
Chigala 796f1209f2 Docs/sendgrid doc (#359)
* added sengrid integration to the catalog

* added documention for sendgrid integration

* updated the mint.json file
2023-08-18 15:09:04 +01:00
Liran Tal 4ce96b7d28 fix: avoid code duplication by repostioning the default switch case (#356) 2023-08-18 14:48:07 +01:00
Wesley b86ffa0d3d test/add test on get user pkg manager (#349)
* 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
2023-08-18 14:43:19 +01:00
Wesley 3ee7cd6ff6 feat: parse callback result with zod before return (#342) 2023-08-18 14:33:42 +01:00
Wesley 74686c00cb feature/TRI 712/create eslint plugin to ensure uniqueness on task keys (#324)
* 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>
2023-08-18 12:57:12 +01:00
Liran Tal 8f3e550d03 fix: small typo in function docblocks (#362) 2023-08-18 12:17:45 +01:00
Matt Aitken 65cff19ead Merge branch 'main' into main 2023-08-18 11:20:44 +01:00
Matt Aitken 591422b8cf CLI: added whoami command, fixed TypeScript error 2023-08-18 11:18:51 +01:00
neo773 bbaa6ba156 [TRI-1006] New @trigger.dev/cli whoami command. (#316)
* 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>
2023-08-18 10:41:06 +01:00
Liran Tal e20fa3c2ec fix: explicitly set a charset for rendered HTML documents (#355) 2023-08-18 06:49:39 +01:00
Liran Tal 57514f8771 fix: code quality nitpicks for some issues spotted (#357) 2023-08-18 06:48:48 +01:00
Chigala ef1a1ff343 added io.cancelEvent support and fixed other requested changes 2023-08-18 06:21:57 +01:00
Rishi Raj Jain 2fbaa30b9f Update index.ts 2023-08-17 23:45:44 +05:30
Rishi Raj Jain 1199e934c2 Merge branch 'main' into main 2023-08-17 23:45:12 +05:30
Wesley 83bcefe10c refactor: remove .js extension from cli package (#350)
* refactor: remove `.js` extension from cli package

* revert: rollback changes

* revert: rollback unnecessary changes

* Update createIntegration.ts

---------

Co-authored-by: Eric Allam <eallam@icloud.com>
2023-08-17 16:03:00 +01:00
Wesley 4ca9f182d7 test/TRI 887/setup jest on cli package (#326)
* 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>
2023-08-16 22:35:23 +01:00
Matt Aitken 5dec3ed4e6 Latest lockfile 2023-08-16 15:56:30 +01:00
github-actions[bot] 955961eb5f chore: Update version for release (#329)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-16 15:53:53 +01:00
Matt Aitken 33184a8130 Add subtasks to the schema/types when getting an individual run (#343)
* Add subtasks to the schema/types when getting an individual run

* Added a changeset
2023-08-16 15:49:08 +01:00
Eric Allam 5611768854 Improve the job reference 2023-08-15 10:20:30 +01:00
Chigala a3278cb8a2 bug fixes 2023-08-15 00:16:38 +01:00
Eric Allam d0e6442872 Add additional sendEvent exampels 2023-08-14 22:04:40 +01:00
Rishi Raj Jain 05b5ed6973 Update update.ts 2023-08-14 21:42:08 +05:30
Rishi Raj Jain 859425f093 Update update.ts 2023-08-14 21:32:55 +05:30
Matt Aitken 1e374d30d0 Latest lockfile… 2023-08-14 16:54:40 +01:00
Matt Aitken 9f649d2a27 Lock prisma to 5.1.1 2023-08-14 16:52:30 +01:00
Chigala 0a20b6e05a chore: updated prisma from version 4.16.0 to 5.1.0 (#254)
* 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>
2023-08-14 16:36:40 +01:00
Eric Allam 78e2d0e9f9 Fix SSE causing app crashes when inner async loop takes too long
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / Unit Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / e2e Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-08-14 16:21:45 +01:00
Chigala 24c8f08267 feat: added the ability to cancel Events based on the event ID 2023-08-14 14:56:48 +01:00
Eric Allam 12de1b0d34 Update docs to reference @trigger.dev/react@latest instead of @next 2023-08-14 13:46:58 +01:00
Eric Allam b62df731fc Fixed the example Job trigger file import path when using Pages Router with no path alias 2023-08-14 13:40:59 +01:00
Liran Tal e347389b64 docs: Update integrations.mdx (#328)
* 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>
2023-08-14 13:24:31 +01:00
Liran Tal 10f92a6124 docs: Update runs.mdx (#327)
* 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>
2023-08-14 13:22:14 +01:00
Eric Allam b957aa1752 Remove deprecated invitation-code route 2023-08-14 09:41:05 +01:00
Rishi Raj Jain 3159619852 revert pnpm changes 2023-08-12 11:28:27 +05:30
Rishi Raj Jain 300c102b31 remvoe axios and use node-fetch 2023-08-12 11:26:08 +05:30
Rishi Raj Jain 9e0b152c0e Update package.json 2023-08-12 11:19:18 +05:30
Arshad Jamal a998d6c505 Corrected clone link for Windows (#319) 2023-08-12 06:23:45 +01:00
Rishi Raj Jain 4e78da319c Create swift-eagles-float.md 2023-08-11 23:54:06 +05:30
Rishi Raj Jain 2c37091b08 complete the script 2023-08-11 23:48:37 +05:30
James Ritchie 5f739ee312 Removed ts-ignore and added types 2023-08-11 16:11:27 +01:00
James Ritchie fccba7db98 Upgraded the confetti to fireworks 2023-08-11 16:09:47 +01:00
Eric Allam 0f7b7ff6d6 Fix pnpm lock
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / Unit Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / e2e Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-08-11 15:52:52 +01:00
nicktrn 603ffbc426 docs: add supabase guide (#297)
* docs: add supabase guide

* feat: add support for external connection poolers

* chore: use .env symlink in database package

* chore: remove database .env.example

* docs: finish supabase pooling section

* docs: fix small typo

* docs: replace prisma with app wording

* docs: fix up supabase pooling section

* fix: deleted too much in contributing docs

* docs: change pooling heading

* docs: reduce linux shaming

* docs: include direct connection url in fly.io
2023-08-11 15:51:54 +01:00
github-actions[bot] beef7769c6 chore: Update version for release (#304)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-11 15:48:41 +01:00
Eric Allam e9088cf08c Supabase quickstart guide (#311)
* 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>
2023-08-11 15:29:53 +01:00
Eric Allam 390bed0b9a Some tweaks to the Event Filter guide 2023-08-11 14:38:43 +01:00
Eric Allam e3e3dab525 Fixed missing } in the express package 2023-08-11 14:34:31 +01:00
Chigala b884a0ab53 doc: added a new documentation for event filters (#300)
* 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
2023-08-11 14:25:04 +01:00
Liran Tal 871d6e1d52 fix: support express jsonParser middleware if used in the Express app (#309)
* fix: support express jsonParser middleware if used in the Express app

* Create sixty-windows-run.md

---------

Co-authored-by: Eric Allam <eallam@icloud.com>
2023-08-11 14:23:29 +01:00
Liran Tal 7daa82fc7a fix: avoid crashing the Node.js app on uncaught exceptions (#307)
* fix: avoid crashing the Node.js app on uncaught exceptions

* Create smooth-dodos-obey.md

---------

Co-authored-by: Eric Allam <eallam@icloud.com>
2023-08-11 14:18:31 +01:00
Eric Allam 9dd7fb2748 Improved the onboarding experience
- Automatically refresh the jobs page when there are no jobs
 - Celebrate 🎊
2023-08-11 14:08:39 +01:00
James Ritchie c246578a81 Made the CLI error more helpful if you’re not running your Next.js app 2023-08-11 11:24:52 +01:00
Chigala d395b95762 fix: Handle ngrok config upgrade error in createTunnel function (#295)
* 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>
2023-08-11 10:39:58 +01:00
Eric Allam f3bda59617 Fixed the sendgrid tsconfig 2023-08-11 10:16:24 +01:00
Eric Allam ef8b52c20f Fixed outdated lockfile issue 2023-08-11 10:15:08 +01:00
Chigala 2bedc779b9 feature: initial work for sendgrid integration (#264)
* 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>
2023-08-11 10:12:19 +01:00
Eric Allam a5b5912270 Change the default max concurrent runs from 100 to 1000
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / Unit Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / e2e Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-08-10 17:21:37 +01:00
D-K-P 275318d2df Docs updates, including added Supabase to the examples table 2023-08-10 14:54:03 +01:00
nicktrn 8d48ebdee8 docs: supabase guide without pooling section (#299)
* docs: add supabase guide

* docs: add supabase to mint.json

* docs: change supabase schema from public

* docs: supabase pooling coming soon
2023-08-10 14:16:54 +01:00
Eric Allam 7ef0fe79b5 Update manual.mdx - spelling mistake 2023-08-10 11:21:06 +01:00
Yaswanth 921957958e Adds Missing syntax highlight to manual setup documentation (#298) 2023-08-10 10:30:22 +01:00
Eric Allam 73721fc55c Remove private beta mention in the docs 2023-08-10 09:33:50 +01:00
Eric Allam 4fcec3bd0d Organized imports
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / Unit Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / e2e Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-08-09 21:19:57 +01:00
Eric Allam 7f4b6b9974 Remove the invite code guard 2023-08-09 21:19:25 +01:00
Eric Allam 950ab24e7f Add the placeholder supabase quickstart 2023-08-09 21:14:34 +01:00
James Ritchie c4da1b4a9a Updated the discord link
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / Unit Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / e2e Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-08-09 16:09:33 +01:00
Eric Allam 24debf0cee Slight change to the supabase job catalog 2023-08-09 16:02:31 +01:00
James Ritchie 645643ea41 Improved onboarding (#292)
* 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>
2023-08-09 15:00:08 +01:00
Eric Allam 321378db4f Run pnpm i to fix lock file
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / Unit Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / e2e Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-08-09 12:40:48 +01:00
github-actions[bot] c8b10ce188 chore: Update version for release (#291)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-09 12:40:15 +01:00
Eric Allam 57ed2b2d0d Fixed cli type errors 2023-08-09 12:37:22 +01:00
Eric Allam fa3a22eb78 Added an $isNull EventFilter condition matcher 2023-08-09 12:35:47 +01:00
Dan a1bc15d18b Updated the example job (#288)
* 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>
2023-08-09 12:21:46 +01:00
Yaswanth 3f48dd0a68 [TRI-945]: Adds manual project setup guide to the docs (#286)
Co-authored-by: Crossover <crossover@MacBook-Pro.local>
2023-08-09 12:18:05 +01:00
Eric Allam 5c71868a73 Fix the examples in the supabase integration 2023-08-09 12:16:27 +01:00
Chigala 3ce6decef4 Feat/scaffold job catalog file (#283)
* 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>
2023-08-09 10:42:20 +01:00
Eric Allam ab007f2708 Fix the CLI typecheck error 2023-08-09 10:41:06 +01:00
Eric Allam 8412680863 Adding createImageEdit and createImageVariation tasks to openai 2023-08-09 10:39:17 +01:00
Matt Aitken a90908df6e CLI init fixes: don't ask for endpoint slug, fix for next.config and package manager artifact issue (#287)
* 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
2023-08-09 10:37:10 +01:00
Eric Allam a82b86210f Fix pnpm lock file for package release 2023-08-08 22:08:40 +01:00
github-actions[bot] 0367a92731 chore: Update version for release (#281)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-08 22:08:12 +01:00
Eric Allam d230cf622f Treat @trigger.dev/sdk the same as @trigger.dev/core in the webapp
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / Unit Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / e2e Tests (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-08-08 15:52:14 +01:00
Eric Allam a1bf073b43 Trigger another release run 2023-08-08 15:18:13 +01:00
Eric Allam 5588108b97 Add unit test running to the public CI 2023-08-08 15:04:15 +01:00
Eric Allam b9bcecffe3 Added some Supabase storage and auth triggers to the job catalog 2023-08-08 15:02:07 +01:00
Eric Allam 59075f5fc2 EventFilter now supports more complex condition filters #271 2023-08-08 15:02:07 +01:00
Sai Hari fa942fc9f5 feat: 🎸 add end-to-end test harness (#253)
* feat: 🎸 add end-to-end test harness

* Address PR comments
2023-08-08 13:55:25 +01:00
D-K-P 47a8a557cf Replaced all the screenshots of the environments page 2023-08-08 11:47:25 +01:00
Yaswanth b51d0b5399 Fix:[TRI-879]-Hides help panel when endpoints exists on the Environme… (#256)
* 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>
2023-08-08 11:15:58 +01:00
D-K-P 763c84e3b3 Replaced api key screenshot and text 2023-08-08 10:41:33 +01:00
Eric Allam dfb00e84e9 Fixing pnpm lock file 2023-08-08 07:35:25 +01:00
github-actions[bot] b5a64545bb chore: Update version for release (#273)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-08 07:32:24 +01:00
Eric Allam 3cf3eaff48 @trigger.dev/supabase: You can now trigger on multiple database events in the same job 2023-08-07 17:27:49 +01:00
Matt Aitken 4ca758a3de job-catalog: added initial setup and CLI build step
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-08-07 15:07:58 +01:00
Matt Aitken da81537009 Update job-catalog instructions
`pnpm run trigger:dev` should be `pnpm run dev:trigger`
2023-08-07 14:57:08 +01:00
Eric Allam 7c1b13ba3b Increase webhook delivery attempts to the max 25 attempts over 3 days 2023-08-07 14:25:23 +01:00
D-K-P 4b654e5b3b Fixed broken docs link 2023-08-07 13:29:11 +01:00
Eric Allam 726a50ace7 Point to the workspace version of @trigger.dev/sdk 2023-08-07 13:17:36 +01:00
github-actions[bot] 9deffb67c4 chore: Update version for release (#267)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-07 13:08:27 +01:00
Matt Aitken ff04bf44ee CLI: detect package manager using artifacts if they exist (#261)
* Detect package manager from artifacts (e.g. package-lock.json) and fallback to process.env.npm_config_user_agent

* Added a changeset
2023-08-07 13:01:22 +01:00
Matt Aitken e740297829 Cli: improve Next.js project detection (#262)
* 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
2023-08-07 13:01:03 +01:00
D-K-P a31705e198 Added text summarizer / github issue reminder jobs to the examples table 2023-08-07 12:58:43 +01:00
Eric Allam f0bdf53364 Auto index production endpoints every 10 minutes 2023-08-07 12:49:37 +01:00
Matt Aitken 9638499163 Add your first endpoint in the dashboard (#269)
* 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>
2023-08-07 11:28:34 +01:00
Matt Aitken 9104c252b7 Telemetry (new user) (#268)
* Removed old telemetry

* Started adding TriggerClient telemetry

* Added a log if the telemetry client is created, event renamed to “user.created”
2023-08-07 11:28:13 +01:00
Matt Aitken 72cf345602 Added “thumbsRating” to docs pages 2023-08-07 10:50:02 +01:00
jemiluv8 d5b8f8299d update cli init to create index file in examples folder (#225)
* 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
Matt Aitken dd22b88d25 Latest lockfile… 🙄 2023-08-03 22:52:46 +01:00
github-actions[bot] 62b9c5879c chore: Update version for release (#248) 2023-08-03 22:47:23 +01:00
Eric Allam 1b0973fbc1 Fixed error when configuring a new endpoint failed and fixed ping to now throw an error when parsing JSON
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-08-03 16:02:16 +01:00
Eric Allam fc78854ed4 @trigger.dev/cli: Don't require the TRIGGER_API_URL to be set (it has a default) 2023-08-03 14:49:46 +01:00
Eric Allam ed15bb0618 Another small supabase tweak 2023-08-03 13:09:56 +01:00
Eric Allam ced9034428 Another small supabase doc fix 2023-08-03 13:08:42 +01:00
Eric Allam 7ec329d5d6 Fixed broken image in supabase docs 2023-08-03 13:06:23 +01:00
Eric Allam 81180999de The dev command should use a POST request when doing the PING to the local server 2023-08-03 13:01:08 +01:00
Eric Allam feaa79ecf3 @trigger.dev/supabase: Automatically enable database webhooks when using triggers 2023-08-03 13:00:29 +01:00
Eric Allam d34dc0847c More OpenAI examples 2023-08-03 09:55:07 +01:00
Eric Allam 1b7c7520b4 new Job -> client.defineJob 2023-08-03 09:53:15 +01:00
Eric Allam 34d77e830c Incorporate improved OpenAI docs from old repo 2023-08-03 09:51:25 +01:00
Eric Allam 87c302bf26 Document how to enable supabase database webhooks 2023-08-03 09:39:58 +01:00
Eric Allam d462c901f5 A couple of quickstart tweaks 2023-08-02 17:16:39 +01:00
D-K-P 55c3d79cc8 Deleted the info box on the integration pages 2023-08-02 17:11:41 +01:00
Eric Allam ce901c92e4 Update @trigger.dev/supabase to the latest supabase-management-js 2023-08-02 17:01:02 +01:00
Matt Aitken 0fd409c6dc Latest lockfile 2023-08-02 16:08:50 +01:00
github-actions[bot] f4e7379768 chore: Update version for release (#247)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-02 16:06:27 +01:00
Matt Aitken ee99191fb4 Sync all package version numbers 2023-08-02 15:58:56 +01:00
Matt Aitken 18124ae32a Sync all of the package version numbers 2023-08-02 15:45:20 +01:00
Eric Allam de3373b8f9 Fixed pnpm lock file
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-08-02 15:40:26 +01:00
Eric Allam bdb4e6e2bd Only publish latest docker images when tagged with v.docker.x.y.z 2023-08-02 15:38:53 +01:00
Matt Aitken 0a790de2c1 core version changed to 1.0.0. Dependencies for core set to ^1.0.0 2023-08-02 15:21:19 +01:00
Eric Allam ffb55bfde6 Add react package docs 2023-08-02 15:18:03 +01:00
github-actions[bot] c0fbe56f79 chore: Update version for release (#246)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-02 15:10:36 +01:00
Eric Allam 342ab0d471 Adding docs back into this repo 2023-08-02 15:09:35 +01:00
Matt Aitken aa9fe7d408 core made public, react and sdk now have it as a dependency (not dev) 2023-08-02 15:07:14 +01:00
Eric Allam f499c10f09 Run pnpm i to fix pnpm-lock
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-08-02 14:19:46 +01:00
github-actions[bot] 45ed7cdf38 chore: Update version for release (#238)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-02 14:18:12 +01:00
Eric Allam fa271aaed2 Tweaked the SDK package readme 2023-08-02 13:42:45 +01:00
Eric Allam 8883476dcb Specify limited paths that will cause our github workflows to run 2023-08-02 13:27:44 +01:00
Eric Allam c1755ff85b Removed error logging from the stripe integration 2023-08-02 11:53:42 +01:00
Eric Allam 6d04f6c62a Added default retry settings for all integration tasks 2023-08-02 11:53:09 +01:00
Eric Allam 53363711bb Fixed type errors in the cli 2023-08-02 11:50:50 +01:00
Eric Allam 442ee45e97 Upgrade to Remix 1.19.2-pre.0 to try and fix premature close issue
https://github.com/remix-run/remix/issues/4993#issuecomment-1661221726
2023-08-02 11:49:04 +01:00
Eric Allam 8405b337f9 Fix seed files by copying any .node query engine file in entrypoint.sh 2023-08-02 10:21:41 +01:00
Matt Aitken facae926ce Added telemetry to the CLI (#242)
* Basic CLI telemetry

* Telemetry for init command

* Better error handling

* Fix for “Module not found: Can't resolve 'encoding' in” node-fetch warning

* Telemetry for dev and tidied up init

* Minor improvements to the telemetry

* Latest package lock file

* Set the PostHog key to the prod one

* Changesets

* Formatted
2023-08-02 09:47:08 +01:00
Eric Allam 9544624e00 Adding compound triggers to Stripe and added a WIP express adapter 2023-08-01 16:06:42 +01:00
Matt Aitken a489fd465f @trigger.dev/init and @trigger.dev/internal references updated to the new package names 2023-08-01 12:10:49 +01:00
Matt Aitken 9ff4c0dbd5 Project-wide Prettier setup (#237)
* Setup project-wide prettier

* Remove old workspace file

* Remove old debugging directives

* New top-level .prettierignore

* Updated Prettier config settings

* Contrubuting guide: Fix for some bad code blocks

* Added more ignores

* Improved the format script command

* printWidth set to 100

* Formatted entire repo (pnpm run format)
2023-08-01 10:21:22 +01:00
Eric Allam 36ec16babe feat: encrypt values in SecretStore using an encryption key (#240)
* feat: encrypt values in SecretStore using an encryption key and `aes-256-gcm`

* Stopped using apiCors in the connectionId API endpoint
2023-08-01 10:11:47 +01:00
Matt Aitken 92233f2e90 Core package and move to @latest (#235)
* Changeset should ignore the example projects

* Removed note in Contributing instructions about not adding a changeset for internal

* Renamed @trigger.dev/internal to @trigger.dev/core. Set sdk and internal to be ES2020, so we don’t get errors about private identifiers

* Env vars in nextjs-example use square bracket syntax to avoid Turbo Repo errors

* Set the tsconfigs back for core and sdk

* @examples/nextjs compile error with undefined tasks

* Set the example projects to use ES2015 to avoid private modifier complaints

* package-tester example, which will use built packages

* package-tester package.json

* Created a readme for the package-tester

* Added all the packages to package-tester

* Create .env.local.example and readme instructions

* Added name to the package.json

* Upgraded @types/react and @types/react-dom everywhrre, so we can use server actions

* Upgraded @types/react and @types/react-dom everywhrre, so we can use server actions

* Reworked the react package build, so it generates separate files

* The SDK no longer bundles core

* package-tester setup with a server action and react hooks

* Added new SDK methods with logging

* Working tsup settings for client and server

* Explicit react hooks return types

* Added all the hooks for testing

* Added OpenAI step to the job to check types are still ok in integrations

* Get rid of rogue Changeset ignores

* Changeset: @trigger.dev/core is now a separate package

* Exited prerelease mode, added a changeset

* Changed @next to @latest

* Deleted seed.js, this shouldn’t be committed

* Ignore seed.js

* The webapp was importing @trigger.dev/core with a folder path rather package name…

* More webapp imports instead of @trigger.dev/core were a folder path

* Accidentally edited Stripe internal API url in the comment

* Added “sideEffects”: false so @trigger.dev/core is tree shaken by Remix
2023-07-31 18:47:34 +01:00
Ashutosh Bhadauriya efd590976c Feat: Detect if a Next.js project is running on the specified port before opening a tunnel (#214)
* Feat: Detect nextjs project

* Add check before opening tunnel

* Update dev.ts

* Add changeset
2023-07-31 16:43:44 +01:00
Matt Aitken 463cbed7df Merge pull request #226 from Chigala/feature/multiple-eventname-support
Feature/multiple eventname support in eventDispatcher
2023-07-31 16:14:25 +01:00
Matt Aitken 9138976dad Changeset: Multiple eventname support in eventDispatcher 2023-07-31 16:13:35 +01:00
Matt Aitken ace4d5f6ce Merge pull request #228 from jemiluv8/migration-contribution-guide
chore: add instructions for adding migrations to the project
2023-07-31 16:07:05 +01:00
Matt Aitken b09ecb0b06 Update CONTRIBUTING.md 2023-07-31 16:06:39 +01:00
Matt Aitken 10fef0f667 Improved the migration instructions 2023-07-31 16:06:12 +01:00
Eric Allam 3e5945fb9e Stop storing github access tokens for github authenticated users 2023-07-31 15:41:44 +01:00
Akhil fdf1b2148c feat: added git database tasks for github integration (#204)
* feat: added git database tasks for github integration

* feat: added examples for git database tasks
2023-07-31 09:50:41 +01:00
Eric Allam 7e4d72f959 Made the migration non-destructive and fixed other typechecking issues 2023-07-28 18:19:41 +01:00
Chigala 3e203ea967 Merge branch 'main' into feature/multiple-eventname-support 2023-07-28 17:53:31 +01:00
github-actions[bot] af56598a58 chore: Update version for release (next) (#234)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-07-28 16:27:36 +01:00
Eric Allam 1fef1fa5f8 Adding native property to get access to underlying client in local auth only integrations 2023-07-28 16:12:41 +01:00
github-actions[bot] bd2f68a51d chore: Update version for release (next) (#233)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-07-28 14:48:57 +01:00
Eric Allam 64477f6b3a @trigger.dev/sdk: Adding some type helpers for getting the payload and IO types from jobs and triggers 2023-07-28 14:42:28 +01:00
Eric Allam 8b09dfd697 Fix pnpm lock file 2023-07-27 22:14:40 +01:00
github-actions[bot] f330673143 chore: Update version for release (next) (#232)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-07-27 22:14:06 +01:00
Eric Allam 9351c05126 Initial @trigger.dev/stripe integration, with support for triggers and tasks (#231)
* Initial Stripe integration, with support for triggers and tasks

* Adding stripe integration to the catalog
2023-07-27 22:09:07 +01:00
Matt Aitken af722e54d8 Made the integration items capable of fitting more text 2023-07-27 19:59:20 +01:00
Matt Aitken 1eb89844f4 Added a description to the Supabase Management integration so the differences are obvious 2023-07-27 19:57:03 +01:00
Matt Aitken 004423aea3 Merge pull request #229 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-27 17:14:03 +01:00
github-actions[bot] 369c6245ab chore: Update version for release (next) 2023-07-27 16:07:50 +00:00
Matt Aitken b8ae937966 TSUP working properly 2023-07-27 17:05:43 +01:00
Matt Aitken 3b510a4f3d Put paths back 2023-07-27 16:30:56 +01:00
Matt Aitken b3e609d53d Experimenting with bundling 2023-07-27 16:10:19 +01:00
Matt Aitken 2f07a792e9 Removed some unused vars 2023-07-27 16:10:05 +01:00
Matt Aitken 078bf2bc9c React package bundling changed 2023-07-27 15:14:01 +01:00
Matt Aitken a7c8f0b90e Merge pull request #227 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-27 11:18:56 +01:00
Jemilu Mohammed 495acf4319 modify step 3 of migrations instructions 2023-07-27 10:17:40 +00:00
Jemilu Mohammed dce86119d4 add instructions for adding migrations to the project 2023-07-27 10:14:49 +00:00
github-actions[bot] 2c70b7a360 chore: Update version for release (next) 2023-07-27 10:00:21 +00:00
Matt Aitken c518185947 Merge pull request #221 from triggerdotdev/react-hooks
Get the status of runs and events, using the SDK or @trigger.dev/react hooks
2023-07-27 10:58:37 +01:00
Matt Aitken b314178de2 SDK Changeset: Added getEvent(), getRun() and getRuns() methods to the client 2023-07-27 10:22:52 +01:00
Chigala e0a2cec978 Chore: Modified eventTrigger to accept a string and an array of strings. 2023-07-27 00:09:03 +01:00
Matt Aitken d3608be1a0 Improved the environments help text – it now references server API keys 2023-07-26 22:00:16 +01:00
Matt Aitken 4c79129242 authenticateApiRequest() now returns an object with the apiKey, type and environment 2023-07-26 21:54:20 +01:00
Chigala 8ac83f1d59 added multiple event name support to the eventDispatcher 2023-07-26 21:18:03 +01:00
Matt Aitken 17e6d42989 Removed unused const in RunPresenter 2023-07-26 20:49:09 +01:00
Matt Aitken 0a3bbc1caf Merge remote-tracking branch 'origin/main' into react-hooks
# Conflicts:
#	apps/webapp/app/presenters/RunPresenter.server.ts
#	examples/nextjs-example/src/app/api/trigger/route.ts
#	examples/nextjs-example/tsconfig.json
2023-07-26 20:47:07 +01:00
Matt Aitken 89e1331e49 Better error handling for the job runs endpoint 2023-07-26 18:57:11 +01:00
Matt Aitken d934a53e6d Better error handling for the runs endpoint 2023-07-26 18:57:02 +01:00
Matt Aitken 2398d60b1a Added noExternal for the @trigger.dev/internal package 2023-07-26 18:54:12 +01:00
Matt Aitken 1bd755b628 Example project: Use POST for the test event 2023-07-26 18:52:07 +01:00
Eric Allam 861d5fa1b9 Fixed pnpm lock why does this happen 2023-07-26 18:22:20 +01:00
github-actions[bot] 0239fc6773 chore: Update version for release (next) (#222)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-07-26 18:20:42 +01:00
Eric Allam de57592d79 @trigger.dev/resend now retries failed email sends 2023-07-26 18:17:27 +01:00
Eric Allam f70f3a0a5d Fixed doubling of the params option 2023-07-26 18:14:07 +01:00
Matt Aitken 6c96b331dd Event API endpoint safe parsing and better error handling/responses 2023-07-26 18:03:32 +01:00
Eric Allam 767e09ee18 New integration: @trigger.dev/supabase (#203)
* WIP supabase integration

* supabase oauth working

* Supabase database triggers

* Specify postgres:14

* Limit refreshOAuthToken jobs to 10 attempts

* Better displaying types and removing onChange for now

* WIP on the supabase db client

* Finishing the supabase-js integration

* Adding changeset

* Added supabase to the integration catalogs, and added an optional icon to Integrations

* Reworking how we handle types for the triggers (wip)

* Update fully over to the new way to define supabase triggers

* Go back to using the type for the event name

* Add back in the icon to the JobListPresenter since it was moved from the ProjectPresenter

* Remove unused import
2023-07-26 18:01:27 +01:00
Matt Aitken b2f3ade7c7 Renamed Secret API keys to Server API keys 2023-07-26 17:55:34 +01:00
alubọsa 8f050b40c1 chore(docs): add changeset guide to contributing.md (#219)
* chore(docs): add changeset guide to contributing.md

* chore: text changes to changeset guide

* Update CONTRIBUTING.md

---------

Co-authored-by: Eric Allam <eallam@icloud.com>
2023-07-26 17:30:58 +01:00
Ashutosh Bhadauriya 3cf01ff14c Add testing CLI changes guide to contributing.md (#220)
* Add testing CLI changes guide to contributing.md

* Update backticks
2023-07-26 17:18:42 +01:00
Matt Aitken 73e0084125 New lock file after main merge 2023-07-26 16:44:37 +01:00
Matt Aitken 093c9ec015 Merge remote-tracking branch 'origin/main' into react-hooks
# Conflicts:
#	pnpm-lock.yaml
2023-07-26 16:44:09 +01:00
Matt Aitken 475dddfbe4 Added private API keys to the environment page, with some explanatory text 2023-07-26 16:41:17 +01:00
Matt Aitken 188e4f2740 Added an outline styled for badges 2023-07-26 16:40:51 +01:00
Matt Aitken 4dc2b3184b Fix for missing pkApiKey in seedCloud script 2023-07-26 16:23:40 +01:00
Matt Aitken 139d541d86 Return the pkApiKey and sort the environments correctly (dev, preview, staging, prod) 2023-07-26 15:32:35 +01:00
Eric Allam 10798c0a05 Fixed the pnpm lock file 2023-07-26 14:45:42 +01:00
Matt Aitken 9c6ad11479 Latest lockfile 2023-07-26 14:43:54 +01:00
Matt Aitken 5527ef17f4 Merge remote-tracking branch 'origin/main' into react-hooks 2023-07-26 14:38:55 +01:00
Matt Aitken 981f4010a9 Shortened the delays in the hooks example to make it less annoying when testing 2023-07-26 14:38:05 +01:00
github-actions[bot] db7e8923c0 chore: Update version for release (next) (#212)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-07-26 14:37:48 +01:00
Hans Bignon K. Tognon 0eef5c2f01 Adds steps to contributing guide for running some jobs locally (#209)
* chore(contrib): added a few jobs

* chore(contrib): adds sample jobs for repo setup

* chore(contrib): refactor examples/jobs-starter

* docs(contrib): add steps to add starter jobs

* fix(contrib): typo

* chore(contrib): minor edits

* chore(contrib): update guide and starter code
2023-07-26 14:27:27 +01:00
Matt Aitken 08901f2e8a Merge remote-tracking branch 'origin/main' into react-hooks 2023-07-26 14:07:09 +01:00
Matt Aitken 51b365226d In the Job list, show the latest run across all environments
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-07-26 13:37:48 +01:00
Matt Aitken 0b89ee7eb5 ProjectsMenu truncates long titles and the badge is right-aligned 2023-07-26 13:37:18 +01:00
Sai Hari d7c4b24203 chore: 🤖 replace tsconfig package with tsconfck package (#218) 2023-07-26 07:22:16 +01:00
Matt Aitken d7352867ec Merge pull request #215 from katrieltsepelevish/fix/contributing-readme-running
Fix: Updated contributing README for running in development
2023-07-25 20:31:43 +01:00
Matt Aitken a2b97bd918 First changeset for the react package 2023-07-25 20:08:54 +01:00
Matt Aitken 5991a767f7 TriggerClient method for getRuns with a jobSlug. This will only work with the private API key 2023-07-25 20:00:19 +01:00
Matt Aitken 643eba263e Default to returning 20 tasks and set max to 50 2023-07-25 19:59:42 +01:00
Matt Aitken 4db8a3992b We don’t need the environmentId 2023-07-25 19:26:34 +01:00
Matt Aitken 03f7156749 API endpoint for getting the latest runs 2023-07-25 19:15:15 +01:00
Matt Aitken d9912e5548 jsdocs for the getEvent output 2023-07-25 18:13:14 +01:00
Matt Aitken 3c85c985d9 Added getEvent and getRun methods to TriggerClient. Added JSDocs to the types 2023-07-25 18:11:28 +01:00
Matt Aitken 0cf848b9b9 Show the job output in the example 2023-07-25 17:52:49 +01:00
Matt Aitken ef4056abde Only allow showing the task details if it’s a private API key 2023-07-25 17:52:40 +01:00
Matt Aitken 3a6c25d42d API authentication updated to work correctly with public and private keys 2023-07-25 17:52:20 +01:00
Matt Aitken 642c95027c Return an output from the hook test job 2023-07-25 17:51:25 +01:00
Matt Aitken 8a66a5c6c7 Migrate: Make the pkApiKey unique and non-null 2023-07-25 17:51:14 +01:00
Katriel Tsepelevish 7dcc55a083 Updated README 2023-07-25 19:33:16 +03:00
Matt Aitken 6989fec9d0 New API keys (public or private) now have 20 random characters 2023-07-25 17:06:01 +01:00
Matt Aitken bba190e4e9 Use apiCors function for the event endpoint too 2023-07-25 16:36:19 +01:00
Matt Aitken 6f670c8cc6 Use v5 react-query so we don’t need a QueryClientProvider. Improved the retrying behaviour 2023-07-25 16:36:09 +01:00
Katriel Tsepelevish d8626c624f Updated contributing README 2023-07-25 18:35:18 +03:00
D-K-P 454ad25b1d Updated the ID question in the CLI 2023-07-25 16:30:28 +01:00
D-K-P 4dce703b20 Changed the create a job in code callout from Quick start to Create a Job 2023-07-25 16:17:57 +01:00
D-K-P ce1e911c90 Fixed the github link on the examples job table 2023-07-25 16:13:08 +01:00
D-K-P f84f4dcee6 Updated the blank jobs page instructions 2023-07-25 16:02:03 +01:00
D-K-P bfa3757ee0 Updated the help & feedback copy 2023-07-25 15:16:33 +01:00
Matt Aitken 1fea5d7af3 React hooks are working in the example 2023-07-25 14:38:39 +01:00
Matt Aitken dd33bbf6a8 Reworked the next-js project to just have the app directory 2023-07-25 13:38:46 +01:00
Matt Aitken 74640b1a82 Custom react query context for the package 2023-07-25 13:38:32 +01:00
Eric Allam 51e6a74eda Lock turborepo to a specific version (1.10.10 breaks our Docker builds) 2023-07-25 13:37:40 +01:00
alubọsa 27a9812194 chore: use endpointId if it exists in package.json (#200)
* chore: use endpointId if package.json has it

* minor

* add changeset

* chore: include changeset

* chore: add proper summary to changeset

* chore: remove redundant changeset file
2023-07-25 13:27:35 +01:00
Eric Allam ba03a9ed20 Merge pull request #207 from jemiluv8/js-support-for-init-command
feat: Add Javascript support for init command
2023-07-25 13:09:56 +01:00
Matt Aitken f5c1c62a09 export SentEvent from the SDK 2023-07-24 17:48:07 +01:00
Matt Aitken 420e719db2 useEventRunDetails combines the two hooks 2023-07-24 17:23:32 +01:00
Matt Aitken c448f53964 Run hook fixes 2023-07-24 17:12:16 +01:00
Matt Aitken 72230f67d8 Improved the hook 2023-07-24 17:03:11 +01:00
Matt Aitken 4bdc28d7fc apiCors has 5 min maxAge 2023-07-24 17:03:02 +01:00
Matt Aitken eb5195768b Moved the run query to runs/$runId, instead of /tasks 2023-07-24 13:28:33 +01:00
Matt Aitken 5b6539d799 Improved the display of the react hooks in the example 2023-07-24 13:13:19 +01:00
Matt Aitken b1b471cf63 Removed the optional stuff from react zodfetch function 2023-07-24 13:13:09 +01:00
Matt Aitken bcd80463f3 Removed the parentId from the RunTaskSchema 2023-07-24 13:12:34 +01:00
Matt Aitken e2781cb090 Don’t return the task details unless they’re asked for, fix so the child tasks aren’t returned if they’re not asked for 2023-07-24 13:12:19 +01:00
D-K-P 09f906f7a1 Updated the invitation code page copy 2023-07-24 10:18:11 +01:00
Jemilu Mohammed 706ab20ced add "patch" change set for feature to support nextjs projects using javascript 2023-07-23 19:04:18 +00:00
Jemilu Mohammed 1dde615686 add change set for feature to support nextjs projects using javascript 2023-07-23 18:49:14 +00:00
Matt Aitken dda8be1fd0 Remove log 2023-07-23 19:26:25 +01:00
Matt Aitken 2888877463 Missed a cors response wrapper 2023-07-23 19:26:13 +01:00
Matt Aitken ac4253a187 Only refetch the run if it’s not complete 2023-07-23 19:26:00 +01:00
Matt Aitken a6f79d77d1 Run hook 2023-07-23 19:18:19 +01:00
Matt Aitken 4ca841a1d5 Query to get environment from either the apiKey or the pkApiKey 2023-07-23 19:06:34 +01:00
Matt Aitken 4d2a8728be Getting events is allowed with allowPublicKey 2023-07-23 19:06:18 +01:00
Matt Aitken ae3afdfc7e Allow public key api requests, if the flag is passed 2023-07-23 19:05:30 +01:00
Matt Aitken e135b06e2c Show errors, not working properly yet 2023-07-23 18:42:36 +01:00
Matt Aitken 106843be09 Checks for the correct public key format 2023-07-23 18:42:20 +01:00
Matt Aitken 022021dc4b Allow CORS for the GET events endpoint 2023-07-23 18:27:23 +01:00
Matt Aitken 8815b1608e Set the api url to localhost:3030 2023-07-23 18:26:59 +01:00
Matt Aitken 3dcd7743be Requests are happening but failing CORS 2023-07-23 18:03:39 +01:00
Matt Aitken 66fd838085 Setup the Nextjs example homepage with the TriggerProvider 2023-07-23 17:51:24 +01:00
Matt Aitken b04852c98c useQueryEvent 2023-07-23 17:51:03 +01:00
Matt Aitken ad19bfa283 Added zod fetch function 2023-07-23 17:50:51 +01:00
Matt Aitken ee86910caa Pass in default api url 2023-07-23 17:50:36 +01:00
Matt Aitken 9a4daaf024 Better errors for api key 2023-07-23 17:40:04 +01:00
Matt Aitken fcf1202af3 Added React package to Next.js example project 2023-07-23 17:36:55 +01:00
Matt Aitken 43c402ccae Initial React package with provider 2023-07-23 17:36:20 +01:00
Matt Aitken 24334a1e78 API client methods for getting event and run data 2023-07-23 16:25:13 +01:00
Matt Aitken 37e27510de Return some run info as well 2023-07-23 16:24:11 +01:00
Matt Aitken fe35e8ea39 Return the updatedAt time as well 2023-07-23 16:03:15 +01:00
Matt Aitken db49879584 API endpoint for getting event details 2023-07-23 16:02:02 +01:00
Matt Aitken df68305f28 Don’t get subtasks by default when using GET on API tasks 2023-07-23 15:41:13 +01:00
Matt Aitken 078b10ccea API endpoint for getting tasks changed to return more selective info. Use taskListToTree 2023-07-23 15:34:05 +01:00
Matt Aitken 1f8a36efb4 Changed task query from getting children to creating tree afterwards from all the tasks 2023-07-23 14:27:31 +01:00
Jemilu Mohammed b0c386ff87 fix bug when detecting app dir for js project
fix typo in createTriggerAppRoute
2023-07-22 20:38:10 +00:00
Jemilu Mohammed 8b69e06f79 rely on jsconfig.json file if javascript project revert unnecessary workarounds 2023-07-22 17:39:19 +00:00
Jemilu Mohammed 24aa4c7406 fix error in jobsPathPrefix and routePathPrefix for Javascript projects 2023-07-22 16:38:24 +00:00
Jemilu Mohammed 621c45aaf1 remove redundant Job import from @trigger.dev/sdk in jobsContent template string 2023-07-22 16:09:16 +00:00
Jemilu Mohammed 9f67b83bc5 fix formatting 2023-07-22 16:03:03 +00:00
Jemilu Mohammed da7dfd4bca revert files added wrongly 2023-07-22 16:01:44 +00:00
Jemilu Mohammed 07250f4ace Add support for Javascript nextjs projects in
removed assertion for whether the next project is using typescript
modify getPathAlias to work with non ts projects
2023-07-22 15:58:42 +00:00
Jemilu Mohammed 8b5055d9d3 initial commit for js example 2023-07-22 14:50:22 +00:00
Eric Allam ec36918061 Merge pull request #188 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-21 09:34:04 +01:00
github-actions[bot] c895722ffc chore: Update version for release (next) 2023-07-21 08:26:49 +00:00
James Ritchie 7df34db36b Merge remote-tracking branch 'origin/blank-jobs-page-improvements' 2023-07-21 09:25:14 +01:00
James Ritchie 3008909f02 Moved the example jobs list to the left column and only shows when 1 job is visible 2023-07-20 18:37:01 +01:00
D-K-P 8af381729c Added example projects to the blank jobs page 2023-07-20 17:36:23 +01:00
D-K-P 8ca0aeb1bd Updated the side panel copy 2023-07-20 14:48:33 +01:00
Eric Allam 99f8ec935b Fixed pnpm lock 2023-07-20 14:39:42 +01:00
Eric Allam d07cfe8fdb Merge pull request #194 from dylanrod21/main
[TRI-699] using pathToFileURL on path used in detectPagesOrAppDir
2023-07-20 14:37:36 +01:00
Dylan Rodriguez 2f1b2a32c3 adding changeset 2023-07-20 09:09:21 -04:00
D-K-P b6fd62eb54 Changed ‘Send us feedback’ to ‘Help & feedback’ 2023-07-20 12:17:34 +01:00
Eric Allam 1dfe7e0ab5 Updated dev-compose.yml and added some scripts to run it in package.json 2023-07-20 10:31:39 +01:00
Eric Allam 17c7e9765e Merge pull request #197 from SSHari/patch-700
chore: 🤖 improve migrations for docker container startup
2023-07-20 10:31:22 +01:00
Eric Allam 0ae03477df Merge pull request #196 from SSHari/patch-702
feat: 🎸 filter organization > project > jobs to internal=false
2023-07-20 10:11:48 +01:00
Eric Allam 2348e95b6c Merge pull request #195 from SSHari/patch-701
feat: 🎸 add project job count pill to breadcrumb project menu
2023-07-20 10:10:47 +01:00
SSHari 439ecf4a7f chore: 🤖 improve migrations for docker container startup 2023-07-19 21:34:16 -04:00
Dylan Rodriguez 68750da731 Revert "adding where condition on job count"
This reverts commit 61de39712a.
2023-07-19 19:23:40 -04:00
Dylan Rodriguez 61de39712a adding where condition on job count 2023-07-19 19:11:57 -04:00
SSHari d32e6f9839 feat: 🎸 filter organization > project > jobs to internal=false 2023-07-19 19:05:37 -04:00
SSHari 0cda4621c7 feat: 🎸 add project count pill to breadcrumb project menu 2023-07-19 18:48:07 -04:00
Eric Allam 4bcd654e49 Merge pull request #185 from SSHari/patch-573
feat: 🎸 move get project jobs to lower level in app hierarchy
2023-07-19 22:22:37 +01:00
Dylan Rodriguez bf0a0a17a0 normalizing path in detectPagesOrAppDir 2023-07-19 17:14:25 -04:00
SSHari ca59b6b236 Fix requested changes 2023-07-19 12:24:31 -04:00
Eric Allam 2a6cd98d4e Merge pull request #187 from SSHari/patch-445
feat: 🎸 update Docker image to use best practices
2023-07-19 16:56:36 +01:00
Matt Aitken d4da2f322b Added GitHub getIssue Task (with example Job) 2023-07-19 16:31:55 +01:00
SSHari 04ce02bb5d feat: 🎸 update Docker image to use best practices 2023-07-18 16:10:13 -04:00
SSHari 62e3bb93c1 feat: 🎸 move get project jobs to lower level in app hierarchy 2023-07-18 12:10:45 -04:00
Eric Allam 7da6b94daf Add linux header 2023-07-18 16:14:43 +01:00
Eric Allam e95bd3b6fe Rename docker-setup to DOCKER_INSTALLATION and link to our Docker repo 2023-07-18 16:13:42 +01:00
Eric Allam 8e4c70468d Merge pull request #182 from kaf-lamed-beyt/docker-setup
chore(docs): docker-setup guide
2023-07-18 16:11:07 +01:00
Eric Allam 1ea5082314 Use the typesafe env vars instead of process.env directly
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-07-18 15:43:27 +01:00
Eric Allam 267cbc751c Automatically re-write endpoint url from localhost to host.docker.internal when running in Docker Compose
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-07-18 14:20:52 +01:00
James Ritchie 5e522e1f3e Updated the yarn install to yarn dlx 2023-07-18 10:51:50 +01:00
Eric Allam ba7ef25bcb Merge pull request #184 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-17 17:20:37 +01:00
github-actions[bot] e132ea33f2 chore: Update version for release (next) 2023-07-17 16:18:09 +00:00
Eric Allam d0b19d50e4 @trigger.dev/cli: Add option to specify the path to the handler function in the dev command 2023-07-17 17:16:24 +01:00
Eric Allam 226ded6156 Merge pull request #183 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-17 16:47:31 +01:00
github-actions[bot] 8f5abfd0a6 chore: Update version for release (next) 2023-07-17 15:47:03 +00:00
Eric Allam 1bf2802b67 @trigger.dev/cli: Parse .env files using dotenv instead of hand-parsing 2023-07-17 16:45:12 +01:00
Eric Allam b95826840a Merge pull request #181 from triggerdotdev/changeset-release/main
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
chore: Update version for release (next)
2023-07-17 16:34:23 +01:00
github-actions[bot] 584e2b3ffb chore: Update version for release (next) 2023-07-17 15:29:22 +00:00
Eric Allam 69af845ad1 Make isRetry context property backwards compatible and add it to the TriggerContext type 2023-07-17 16:27:53 +01:00
Eric Allam fba8eec319 Don’t include application/json Content-Type when pinging with no body (fastify doesn’t like that) 2023-07-17 16:23:50 +01:00
Eric Allam 01c0f9b324 Allow the CLI dev command to work outside of a Next.js project 2023-07-17 16:21:21 +01:00
Matt Aitken 86e8ccbbd6 If the run info is missing then don’t render that part of the breadcrumb
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-07-17 14:08:35 +01:00
Eric Allam 0b45338300 Remove the bad RESEND_API_KEY from .env.example 2023-07-17 13:00:38 +01:00
kaf-lamed-beyt eafe6a0d7b chore(docs): add docker setup guide. remove prev code implementation 2023-07-17 12:17:09 +01:00
Eric Allam 3fb41f68fb Merge pull request #180 from SSHari/patch-409
feat: 🎸 add live refreshing to Environments & API key page
2023-07-17 11:52:15 +01:00
Eric Allam f5c819a489 Merge pull request #177 from akhill10/feat/isRetry-on-context-run
feat: added isRetry in context.run
2023-07-17 11:48:33 +01:00
Eric Allam 5336317dbb Merge pull request #176 from akhill10/feat/client-define-job
feat: added defineJob method in TriggerClient
2023-07-17 11:40:44 +01:00
kaf-lamed-beyt 6099e06a71 update JobPresenter query to use findFirst. 2023-07-16 15:21:19 +01:00
Akhil 0066971b77 chore: added changeset 2023-07-16 10:36:27 +00:00
Akhil c417a7f9ab feat: added isRetry in jobRunExecution 2023-07-16 07:19:37 +00:00
Akhil 1961b994d7 chore: added changeset 2023-07-16 05:19:30 +00:00
SSHari 5288ca3840 feat: 🎸 add live refreshing to Environments & API key page 2023-07-15 18:24:33 -04:00
Akhil f985dc93aa fix: defineJob with generic for triggerType 2023-07-15 16:30:11 +00:00
Akhil d6e43c40c9 feat: added defineJob method in TriggerClient 2023-07-15 15:55:53 +00:00
kaf-lamed-beyt 184c24cace refactor: use userId instaed of jobId in JobsPresenter 2023-07-15 13:41:44 +01:00
kaf-lamed-beyt 9861cb9aa7 refactor: rewrite JobsPresenter to return a list of Jobs for the project and direct new contributors to the docker setup guide 2023-07-14 19:23:51 +01:00
Matt Aitken 2d722b94bd Latest lockfile 2023-07-14 17:33:24 +01:00
Matt Aitken 2db67e3b4d Merge pull request #171 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-14 17:29:43 +01:00
github-actions[bot] 6290232858 chore: Update version for release (next) 2023-07-14 16:22:31 +00:00
Matt Aitken 7f6bf992a2 Better visibility into webhook registering, fix for Typeform SDK updating webhook 2023-07-14 17:16:28 +01:00
James Ritchie 1f5bd8d6bb Added some copy and a link to let people join the waitlist if they find themselves on cloud.trigger.dev 2023-07-14 16:59:18 +01:00
kaf-lamed-beyt 46383e57d2 chore: update guide 2023-07-14 16:55:00 +01:00
kaf-lamed-beyt 2611b2c171 chore(docs): add docker setup guideline 2023-07-14 16:49:46 +01:00
kaf-lamed-beyt 229207c8f8 chore: create and consume JobPresenter class 2023-07-14 16:40:06 +01:00
Matt Aitken 2eb0b3abce Merge pull request #168 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-14 15:33:44 +01:00
github-actions[bot] 8b6909b486 chore: Update version for release (next) 2023-07-14 14:32:26 +00:00
Matt Aitken dbb9fe44d8 Fix #158 – @trigger.dev/typeform: Check that webhook has a matching url 2023-07-14 15:30:56 +01:00
James Ritchie bb11001fb7 Added 2 buttons below the list of Integrations
2 CTA to request a missing API and to link to the docs to create your own integration
2023-07-13 18:07:19 +01:00
James Ritchie b35457bb53 export type and fixed typo 2023-07-13 18:07:19 +01:00
James Ritchie 1ea0d39fa2 Added an iconClassName to the NamedIcon component so you can override the colour 2023-07-13 18:07:19 +01:00
Matt Aitken 9193b3c90b Merge pull request #157 from triggerdotdev/changeset-release/main
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
chore: Update version for release (next)
2023-07-13 16:38:10 +01:00
github-actions[bot] c349b50164 chore: Update version for release (next) 2023-07-13 15:36:48 +00:00
Matt Aitken fe3bc6efe4 Missing token/apikey error improved for display in Next.js logs 2023-07-13 16:35:21 +01:00
Matt Aitken df138ee96e Latest lockfile 2023-07-13 16:11:37 +01:00
Matt Aitken d0b8e560c9 Merge pull request #153 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-13 16:09:51 +01:00
github-actions[bot] 537409cec1 chore: Update version for release (next) 2023-07-13 14:36:23 +00:00
Matt Aitken bac8ad1040 Throw if the clients are passed an undefined apikey or token 2023-07-13 15:34:35 +01:00
James Ritchie cc26cbeb7b Fixed nintendo related typo 2023-07-13 15:23:37 +01:00
James Ritchie 3b6c2bd0e8 Update CONTRIBUTING.md to include new steps to login when developing locally 2023-07-13 13:50:46 +01:00
Eric Allam 0b004fbcaf Print out emails instead of sending them through resend if missing resend API key 2023-07-13 12:20:54 +01:00
Eric Allam c72c21e2a9 Only retry runs when the response is a non-400 2023-07-13 11:21:14 +01:00
Eric Allam d6310a79fa @trigger.dev/nextjs and @trigger.dev/sdk: Set duplex "half" when creating fetch based Request objects when they have a body 2023-07-12 21:40:13 +01:00
Eric Allam 953354f367 @trigger.dev/typeform: Update how tasks are exported 2023-07-12 21:01:34 +01:00
James Ritchie f8ddb21510 Added env var instructions to CONTRIBUTING.md 2023-07-12 17:53:09 +01:00
Matt Aitken 761e89108b Docker prisma generate uses the same semver as the package.json 2023-07-12 17:35:27 +01:00
James Ritchie ec34a84d6d Removed the Development guide and pointing to CONTRIBUTING.md instead 2023-07-12 16:45:36 +01:00
Eric Allam 9cb5e6847b Update CONTRIBUTING.md
Remove the Next.js prereq
2023-07-12 16:44:28 +01:00
James Ritchie 43f0c6f7f2 Deleted old file 2023-07-12 16:40:52 +01:00
James Ritchie ffcad81498 Deleted old file 2023-07-12 16:40:28 +01:00
James Ritchie f16a337c50 Created a CONTRIBUTING.md guide 2023-07-12 16:39:19 +01:00
Matt Aitken 30e5303c36 Removed eventTrigger.example idea from the example 2023-07-12 16:36:12 +01:00
Matt Aitken 19d5cb596f Merge remote-tracking branch 'origin/triggers-page' 2023-07-12 15:45:54 +01:00
Matt Aitken ff58925606 The Project side menu now shows an error icon on Triggers and Integrations if action is required 2023-07-12 15:44:13 +01:00
Matt Aitken 12b16a0030 Removed unused imports/code 2023-07-12 15:43:54 +01:00
Matt Aitken b08c10a716 Warnings are triangles, errors are circles 2023-07-12 15:43:40 +01:00
Matt Aitken b878561f65 Added custom ErrorIcon that has a white exclamation so it can be seen on busy backgrounds 2023-07-12 15:43:28 +01:00
Eric Allam 5e36ad961f @trigger.dev/cli: create-integration - Generate the README.md file 2023-07-12 15:34:33 +01:00
Matt Aitken 3dc2f0cfff Scheduled Triggers table 2023-07-12 15:06:52 +01:00
Matt Aitken 073c4fb76e TextLink moved to a separate file, and added a secondary style to it 2023-07-12 15:06:46 +01:00
Matt Aitken cef0bd172d Scheduled Triggers tab 2023-07-12 14:43:48 +01:00
Matt Aitken 23eed197ee Don’t show other user’s Dev external triggers 2023-07-12 14:43:33 +01:00
Matt Aitken 3f8f76df76 Interval Trigger icon is a clock, instead of a calendar to differentiate from CRON 2023-07-12 14:43:16 +01:00
Matt Aitken b047023d9c When registering a ScheduleSource you can associate a DynamicTrigger 2023-07-12 14:43:02 +01:00
Matt Aitken 420655f231 Database migration: relationship between ScheduleSource and DynamicTrigger 2023-07-12 14:42:35 +01:00
Eric Allam 520ab88a97 Adding the create-integration command to scaffold out new integration packages (inside or outside of the monorepo) 2023-07-12 13:38:43 +01:00
Eric Allam f96da50e6a Update the typeform integration package
Now uses a dependency free tsconfig file, and updated the typescript and tsup dev deps
2023-07-12 13:35:19 +01:00
Matt Aitken 1dc42daed4 Added SDK and API support to stop runs when they’re canceled 2023-07-12 13:14:23 +01:00
Matt Aitken 0a80e2f5ec Added CANCELED TaskStatus to the server 2023-07-12 09:18:59 +01:00
Matt Aitken 4661d2019c Canceling runs 2023-07-11 19:50:06 +01:00
Matt Aitken 4e4e7b705d Rerun moved to a resource route 2023-07-11 18:49:00 +01:00
Matt Aitken bae1b0be72 Added action to retry registration 2023-07-11 18:06:42 +01:00
Matt Aitken e890ee01a3 renamed pathBuilder functions to external 2023-07-11 18:06:36 +01:00
Matt Aitken af4b0757a9 Improved spacing and copy 2023-07-11 16:30:39 +01:00
Matt Aitken 6ef62d82c4 You can add containerClassName to a Table 2023-07-11 16:27:05 +01:00
Matt Aitken 44df509b62 Added a code comment to explain the complicated breadcrumb for the extrnal trigger page 2023-07-11 15:56:18 +01:00
Matt Aitken 5d3fe2a5ea Changed paths from “triggersources” to “external” 2023-07-11 15:53:15 +01:00
Matt Aitken 076e6dce73 Cloud seed updates existing secret store values 2023-07-11 15:35:04 +01:00
Matt Aitken f745320456 Added DynamicTrigger column 2023-07-11 14:46:26 +01:00
Matt Aitken 6e64aaa1ee Better explanations of triggers 2023-07-11 14:46:21 +01:00
Matt Aitken 8b68edfc05 Get only the required DynamicTrigger info 2023-07-11 14:46:06 +01:00
Matt Aitken 0a7bae4dac Use the handle to determine if the side menu is expanded 2023-07-11 14:35:14 +01:00
Matt Aitken b925a573f3 Added paginated runs 2023-07-11 13:24:38 +01:00
Eric Allam 0012bb21ce All logs are now structured logs 2023-07-11 13:11:30 +01:00
Matt Aitken 3b3ec9fc4a Run streaming logic moved to a presenter, shared with the External Trigger run page 2023-07-11 13:04:56 +01:00
Matt Aitken 396663d65c Hooks can use passed in matches. Breadcrumb updated to be in the route 2023-07-11 12:46:39 +01:00
Eric Allam f275b47755 Fixed pnpm lock 2023-07-11 11:31:42 +01:00
Eric Allam cfb7481d7e Merge pull request #152 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-11 11:22:55 +01:00
github-actions[bot] 57fcce90d9 chore: Update version for release (next) 2023-07-11 10:22:13 +00:00
Eric Allam 2c0ea0c108 Published packages now work with 16.8 and above 2023-07-11 11:20:47 +01:00
Eric Allam e81317b72c Loosen the @trigger.dev/nextjs next version 2023-07-11 11:04:21 +01:00
Matt Aitken 686cf9dc7e Trigger registration runs displaying 2023-07-10 16:35:48 +01:00
Matt Aitken a9e7cda37d Run page turned into components so it can be shared 2023-07-10 15:47:13 +01:00
Matt Aitken eae0b8a95e The Run page now uses a component so it can be shared 2023-07-10 15:20:01 +01:00
Matt Aitken 1b65b1d596 Deleted legal pages from the app 2023-07-10 15:19:45 +01:00
Matt Aitken d85b1fe2fd Moved components to the components/run folder ready for sharing 2023-07-10 15:02:03 +01:00
Matt Aitken f00006af1b Run summary title made the same size as the others 2023-07-10 14:58:01 +01:00
Matt Aitken 75a07fe4ef RunsTable displaying for registration attempts 2023-07-10 14:40:10 +01:00
James Ritchie 946e429906 Merge pull request #151 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-10 13:44:20 +01:00
github-actions[bot] 2e5a401ff7 chore: Update version for release (next) 2023-07-10 12:42:38 +00:00
James Ritchie b8b84d8d16 CLI: Improved the endpoint prompt 2023-07-10 13:41:04 +01:00
Matt Aitken 4373538476 ClipboardField changed to spans so it can work inside a paragraph 2023-07-10 12:24:11 +01:00
Matt Aitken af79ea2f72 Triggers page now has tabs 2023-07-10 11:49:19 +01:00
Matt Aitken aab859bc20 Added scheduled path 2023-07-10 11:48:58 +01:00
Matt Aitken c692c16183 Trigger red table row and added slug to the Integration 2023-07-10 11:07:08 +01:00
Matt Aitken cb59808be2 Better type for LabelValueStack variations 2023-07-10 11:06:51 +01:00
Matt Aitken 039777bf63 Merge pull request #150 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-10 10:59:15 +01:00
github-actions[bot] 3547ec13c3 chore: Update version for release (next) 2023-07-10 09:58:47 +00:00
Matt Aitken 3763577451 CLI dev: improved spinner and made port clear in logs 2023-07-10 10:57:10 +01:00
Matt Aitken c6618049f2 Merge pull request #149 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-10 10:35:07 +01:00
github-actions[bot] 28d6aa9885 chore: Update version for release (next) 2023-07-10 09:33:29 +00:00
Matt Aitken 568786e4f6 Fix when setting the url as an option 2023-07-10 10:32:07 +01:00
Matt Aitken 2aad2d29de Early work on Trigger detail page 2023-07-10 10:16:44 +01:00
Matt Aitken 400354ee9e Improved the layout 2023-07-09 21:12:46 +01:00
Matt Aitken ea3ba78d1a Started the Triggers page 2023-07-09 20:56:33 +01:00
Eric Allam 38614ee526 Update pnpm lockfile 2023-07-09 20:43:27 +01:00
Eric Allam 15ad6bb5f8 Merge pull request #148 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-09 20:41:41 +01:00
github-actions[bot] 15f431ada6 chore: Update version for release (next) 2023-07-09 18:48:48 +00:00
Matt Aitken 5163acc6ef Plain changed to @latest
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-07-09 19:47:32 +01:00
Matt Aitken f9297d783a Added Plain to the integration catalog 2023-07-08 22:17:58 +01:00
Eric Allam c34a02c06f Improved OpenAI integration task errors
And also now allowing runTask.onError to also return an Error by itself if it wants to not retry the task
2023-07-08 22:14:27 +01:00
Eric Allam 61ed1fb202 Added support for output properties on tasks 2023-07-08 22:14:27 +01:00
Eric Allam 87638ba6c5 Merge pull request #147 from owen-duncan-snobel/main
Update README.md
2023-07-07 21:51:36 +01:00
owen-duncan-snobel 26b4100bb0 Update README.md
Use the permanent link to the discord
2023-07-07 15:26:34 -04:00
Matt Aitken 1157c2adf6 Merge pull request #144 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-07 19:05:26 +01:00
github-actions[bot] 8613d3288b chore: Update version for release (next) 2023-07-07 18:05:13 +00:00
Matt Aitken ab008fbdff Typeform example formId is optional 2023-07-07 19:03:17 +01:00
Matt Aitken 0b30197280 Set schema for passing in the formId 2023-07-07 19:03:17 +01:00
Matt Aitken 89a121f21e Typeform SDK getAllResponses fixed 2023-07-07 19:03:17 +01:00
Matt Aitken 045a8c56af Subtasks are now ordered correctly 2023-07-07 19:03:17 +01:00
Eric Allam d83c11db8c Add back in npm-run-all
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-07-07 16:39:29 +01:00
Eric Allam 7efe14b835 Logging in via github should work even after changing your email address 2023-07-07 16:34:41 +01:00
Matt Aitken 37116aecf9 Latest lockfile 2023-07-07 15:37:51 +01:00
Matt Aitken 9a606e8f2a Merge pull request #143 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-07 15:35:00 +01:00
github-actions[bot] b1e65ed500 chore: Update version for release (next) 2023-07-07 14:34:41 +00:00
Matt Aitken 26f3dbff06 Typeform: safeBodyParse webhook import fixed 2023-07-07 15:32:45 +01:00
Eric Allam 5ee0b188bd Improve the error display when a run cannot connect to an endpoint 2023-07-07 15:32:19 +01:00
Matt Aitken 4692cd6a55 Latest lockfile 2023-07-07 15:20:42 +01:00
Matt Aitken 7ad8c01853 Merge pull request #142 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-07 15:19:13 +01:00
github-actions[bot] bc27b45fd7 chore: Update version for release (next) 2023-07-07 14:18:55 +00:00
Matt Aitken 94cc28d377 Changeset: integration-kit uses webhook package 2023-07-07 15:17:32 +01:00
Matt Aitken 19e80cef3b Removed “internal-queue” from indexEndpoint 2023-07-07 15:16:18 +01:00
James Ritchie 5397cd3194 Added environment labels to the enironment and api keys help panel 2023-07-07 14:51:44 +01:00
Eric Allam f01af9c0ec Remove a bunch of unused webapp deps and upgrade packages to zod 3.21.4 2023-07-07 14:47:28 +01:00
James Ritchie a288010d02 Added a new help panel to the api and endpoints page 2023-07-07 14:20:35 +01:00
James Ritchie b9a7a1c32b Label component now uses the correct <label> html element 2023-07-07 14:20:35 +01:00
James Ritchie 65b9a0dce5 Improved the Header component to make it easier to add more props 2023-07-07 14:20:35 +01:00
Eric Allam 7464006e19 Associated trigger sources and dynamic triggers with their registration job 2023-07-07 13:47:19 +01:00
Matt Aitken 590d56b7e7 Merge pull request #141 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-07 12:18:57 +01:00
github-actions[bot] c75cb1e87e chore: Update version for release (next) 2023-07-07 11:16:51 +00:00
Matt Aitken 597b2f4a6f Plain example Job 2023-07-07 12:15:16 +01:00
Matt Aitken 2e84c6bbb2 Plain: Added upsertCustomTimelineEntry Task and exported the components from the plain package 2023-07-07 12:15:16 +01:00
Matt Aitken 06c0cd5297 Import plain jobs file so it gets run, also alphabetized them 2023-07-07 12:15:16 +01:00
Eric Allam 79eab3d62f Cleanup unused graphile tasks 2023-07-07 11:46:56 +01:00
Eric Allam 6527723a0e Refactor index endpoint to work sequentially so we can add associations between sources and jobs 2023-07-07 11:36:01 +01:00
Eric Allam 3d6652f132 WIP plain integration 2023-07-07 10:59:36 +01:00
Matt Aitken da5d9779d4 Check if the Highlight id is defined before attempting to send the error 2023-07-06 21:03:20 +01:00
Matt Aitken 865399e753 Enabled tracing so we can track down errors between frontend and backend 2023-07-06 20:56:50 +01:00
Matt Aitken 960ea6c8dd Removed the throw button from the NavBar… obvs should never have been committed ;) 2023-07-06 20:56:35 +01:00
Matt Aitken 39ab48f0cb Highlight server-side error tracking 2023-07-06 20:45:20 +01:00
Matt Aitken 7341b4cf61 Highlight identifies users 2023-07-06 20:45:00 +01:00
Matt Aitken 28c5acc6af Added Highlight to the project, with basic client-side tracking 2023-07-06 19:34:53 +01:00
Matt Aitken 4366eefc66 Removed unused import 2023-07-06 19:34:05 +01:00
Matt Aitken cb95e761c1 Added an error boundary to the _app route 2023-07-06 19:33:32 +01:00
Matt Aitken 7136748463 Added an error boundary to org 2023-07-06 19:29:42 +01:00
Matt Aitken b0cacfd75c Added an error boundary to project 2023-07-06 19:29:32 +01:00
Matt Aitken 81f03dac79 Better error when a job isn’t found 2023-07-06 19:29:17 +01:00
Matt Aitken e37d1eadcd Breadcrumb null checks in case error boundaries are hit deep in the app 2023-07-06 19:29:00 +01:00
Matt Aitken 23fb310374 Reusable ErrorDisplay 2023-07-06 19:28:36 +01:00
Matt Aitken 797a1732d2 Organize imports on ProjectSideMenu 2023-07-06 19:08:06 +01:00
Matt Aitken c405a417e9 If an error boundary is hit the meta function can return undefined… 2023-07-06 19:07:46 +01:00
James Ritchie 808deb1d77 Added data attributes to the side menu items 2023-07-06 17:50:44 +01:00
Eric Allam 6ac1473ec3 Merge pull request #139 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-06 15:31:53 +01:00
github-actions[bot] 9c183abf4b chore: Update version for release (next) 2023-07-06 14:27:36 +00:00
Eric Allam 33c33faae9 Adding the typeform integration to the catalog 2023-07-06 15:26:02 +01:00
Matt Aitken 4cccbc2039 PostHog updated to change hooks, also added “job” group 2023-07-06 14:58:29 +01:00
Matt Aitken cc061dedf8 Change hooks for User, Org, Project, Job 2023-07-06 14:58:29 +01:00
Matt Aitken 402ce2210f New hook that lets you trigger an action when an object changes 2023-07-06 14:58:29 +01:00
Matt Aitken 329c5c4070 Updated posthogjs 2023-07-06 14:58:29 +01:00
Matt Aitken 878aeb7a8c useOrganizationChanged 2023-07-06 14:58:29 +01:00
Eric Allam 3ee396d788 Adding the typeform integration with webhook support 2023-07-06 13:42:49 +01:00
Eric Allam 090037602c WIP create-integration CLI command 2023-07-06 13:42:49 +01:00
Matt Aitken bee77051e7 Added UI to guide you to fixing unconfigured integrations 2023-07-06 11:56:19 +01:00
Matt Aitken be6741a4a8 Example Job that has an unconfigured Integration (for testing) 2023-07-06 11:56:19 +01:00
Matt Aitken 3e9b440322 NamedIcon uses the new type 2023-07-06 11:56:19 +01:00
Matt Aitken dfea5bc77c The connection-alert trigger type has an amber icon so it doesn’t look like an error 2023-07-06 11:56:19 +01:00
Matt Aitken 1eef30e298 Callout uses to and supports internal and external links 2023-07-06 11:56:19 +01:00
James Ritchie e5b9a9de3f Noun’d up Job 2023-07-06 11:36:13 +01:00
Matt Aitken dfedd3a6e8 Consistently use “Log in” everywhere 2023-07-06 10:08:09 +01:00
Matt Aitken a19845b4ca Added a jsdoc markr to the source id 2023-07-06 09:32:15 +01:00
Matt Aitken 094f6f5a7a jsdocs for DynamicTrigger and DynamicSchedule changeset 2023-07-06 00:37:01 +01:00
Matt Aitken fa60edce2b jsdocs for DynamicTrigger and DynamicSchedule 2023-07-06 00:36:08 +01:00
Matt Aitken ba44652457 intervalTrigger() jsdocs 2023-07-05 20:17:09 +01:00
Matt Aitken 931be39912 cronTrigger jsdocs 2023-07-05 19:32:35 +01:00
James Ritchie 5048a27acb Capital J for Job 2023-07-05 18:27:04 +01:00
Matt Aitken 71fc615b31 Fix for the profile photo sizing being weird 2023-07-05 18:05:41 +01:00
Eric Allam 20ed4e22ef Implement the cloud private beta invite form
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-07-05 17:27:59 +01:00
Matt Aitken fc2d337a39 Optional trailing icon on a <TextLink> 2023-07-05 17:22:53 +01:00
Matt Aitken 31d96f3862 External icon uses the small version 2023-07-05 17:22:44 +01:00
Matt Aitken 7b43853ec6 Help content for the Job page 2023-07-05 17:11:45 +01:00
Matt Aitken 40fa913272 TextLink can have a to or an href 2023-07-05 17:10:34 +01:00
Matt Aitken cdd5482aad Capitalized Runs 2023-07-05 17:10:17 +01:00
Matt Aitken 4a3fa20ee7 Export the callout styles 2023-07-05 17:10:10 +01:00
Matt Aitken d49ed4cd47 Fix for div inside paragraph error 2023-07-05 17:09:53 +01:00
James Ritchie db3cf77f5b Updated the pagination buttons style 2023-07-05 17:08:35 +01:00
James Ritchie c4a08961d6 Added a Help Panel to the Jobs list page 2023-07-05 17:08:35 +01:00
James Ritchie 5ba1643d46 Added a new qr code named icon 2023-07-05 16:57:33 +01:00
Eric Allam d189f425e8 Limit access to the cloud product to people who have invite codes 2023-07-05 16:31:41 +01:00
Matt Aitken 0fe6fb83ac The test help panel is open when you load the page 2023-07-05 16:09:20 +01:00
Matt Aitken f15ae41f48 Help lightbulb is always yellow 2023-07-05 16:09:20 +01:00
Eric Allam 46a07fc72e Merge pull request #138 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-05 15:59:30 +01:00
github-actions[bot] 83af317739 chore: Update version for release (next) 2023-07-05 14:57:17 +00:00
Eric Allam f4db1b2735 @trigger.dev/cli init - Create a better file structure 2023-07-05 15:54:58 +01:00
Eric Allam 6d4922f419 api.trigger.dev is now the default cloud url 2023-07-05 14:47:41 +01:00
Eric Allam 6af098ee8a Default the apiUrl to cloud.trigger.dev 2023-07-05 12:29:48 +01:00
Eric Allam 1dcb2ebcac Update pnpm lock file 2023-07-05 12:25:10 +01:00
Eric Allam f65cb463cc Merge pull request #137 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-05 12:20:43 +01:00
github-actions[bot] 2b4ce97f8a chore: Update version for release (next) 2023-07-05 11:12:37 +00:00
Eric Allam 25abf319ab PageInfoProperty not puts the value inside a paragraph even if it’s a react node
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-07-05 12:11:12 +01:00
James Ritchie 77807ab42a Changed ‘Clients’ to ‘Endpoints’ on the API keys page and reordered URL in table 2023-07-05 11:38:06 +01:00
Eric Allam f21990b14f Removed the datetime logging
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-07-05 11:36:44 +01:00
Eric Allam 1873d10e95 Normalize the whitespace characters in formatted date times 2023-07-05 11:13:26 +01:00
Matt Aitken 32ff3f3136 @trigger.dev/github: Fixed some properties that had API urls instead of HTML urls 2023-07-05 11:12:27 +01:00
Matt Aitken 354b0aefb0 “This Run returned nothing.” 2023-07-05 10:59:37 +01:00
Matt Aitken aaa70a9aab eventTrigger() jsdocs 2023-07-05 10:59:37 +01:00
Eric Allam 3b90739087 Rework the DateTime component to use a Fragment and render the correct datetime timezone in a useEffect 2023-07-05 10:51:08 +01:00
Matt Aitken acaae993a5 Run context jsdocs 2023-07-04 22:55:49 +01:00
Eric Allam a74f0322e2 Attempt to fix the prisma “Transaction already closed: Could not perform operation” error
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
- Removes the transaction stuff from StartRunService (can try putting it back more granularly)
- Uses $transaction in TestJobService
- Better queue names for the startRun and deliverEvent worker job
2023-07-04 22:11:53 +01:00
Matt Aitken 1a0286f6b0 Run pnpm i 2023-07-04 18:52:54 +01:00
Matt Aitken 64182483e2 Merge pull request #136 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-04 18:37:46 +01:00
github-actions[bot] 87a25fba62 chore: Update version for release (next) 2023-07-04 17:34:44 +00:00
Matt Aitken 12803536fa OpenAI integration: listModels returns the response.data instead of response.data.data 2023-07-04 18:33:27 +01:00
Matt Aitken f160b34b34 isTriggerError jsdocs 2023-07-04 16:28:58 +01:00
Matt Aitken cca7da9da2 Better docs for io.try 2023-07-04 16:15:47 +01:00
Matt Aitken 01cf5f3bdc io.try jsdocs 2023-07-04 16:14:31 +01:00
Matt Aitken 33a928a9ea Removed new job examples from general 2023-07-04 15:30:56 +01:00
Matt Aitken c83443a41a io.runTask and io.registerTrigger jsdocs 2023-07-04 15:30:06 +01:00
Eric Allam 374007bffd Fixed incorrectly scoping job test runs to the specific selected project
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-07-04 15:23:19 +01:00
Eric Allam 092382f319 Cleanup some of the date times 2023-07-04 15:14:45 +01:00
Eric Allam 79a0532e1d Handle OS signals in the docker container
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
2023-07-04 14:36:59 +01:00
Eric Allam 56c7c8b1ee Better handle interactive transaction errors and adding increased timeouts 2023-07-04 14:36:59 +01:00
Matt Aitken 722fe7b71e registerCron and unregisterCron jsdocs 2023-07-04 12:48:32 +01:00
Eric Allam 759793b2e3 Fix hydration errors by using the LocaleProvider for all rendered dates, and always use UTC to prevent timezone mismatches 2023-07-04 12:36:42 +01:00
Matt Aitken 99c6cd0371 io.registerInterval and io.unregisterInterval jsdocs 2023-07-04 11:22:28 +01:00
Eric Allam 9fbc5ab8de Adding logging to investigate hydration errors 2023-07-04 11:09:47 +01:00
Eric Allam 75ac2c9961 Scheduled triggers are now disabled on dev env by default
Also added pk api key to the environments now
2023-07-04 10:59:05 +01:00
Eric Allam 87330dd863 Merge pull request #135 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-04 10:50:18 +01:00
github-actions[bot] 38fe9302cf chore: Update version for release (next) 2023-07-04 09:36:25 +00:00
Eric Allam 33a455c593 pnpm i 2023-07-04 10:34:29 +01:00
Eric Allam 37db0ac58d Remove @trigger.dev/internal changeset 2023-07-04 10:33:00 +01:00
Eric Allam 2cbf50b1cc @trigger.dev/sdk: deliverAt and timestamp event properties are now dates 2023-07-04 10:32:08 +01:00
Matt Aitken e26923eb19 backgroundFetch jsdocs 2023-07-04 10:31:44 +01:00
Eric Allam 3e63bcfb11 Merge pull request #134 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-03 22:50:55 +01:00
github-actions[bot] 1e1c18c4a1 chore: Update version for release (next) 2023-07-03 21:49:48 +00:00
Eric Allam 953e7fc918 Allow scheduled jobs to have their schedule updated
Also added human readable cron property to cron triggers
2023-07-03 22:48:03 +01:00
Matt Aitken 8e147dbe0c io.sendEvent jsdocs 2023-07-03 19:19:56 +01:00
Matt Aitken 86dbd5d1dc Added JSdocs for io.wait and io.logger 2023-07-03 19:02:58 +01:00
Eric Allam e85ecfacba Remove the commented out jobs 2023-07-03 17:49:00 +01:00
Eric Allam f210532870 @trigger.dev/slack: Added joinConversation task, and automatically try and join a public conversation if the bot is not in it when posting a message 2023-07-03 17:48:14 +01:00
James Ritchie 6c9ca686cb Tweaked callout icon margin 2023-07-03 16:39:21 +01:00
James Ritchie 35b556d4a3 Using the path builder for URLs on the Jobs page 2023-07-03 16:39:21 +01:00
James Ritchie c83339404a Using the path builder for the integration docs URL 2023-07-03 16:39:21 +01:00
James Ritchie 4172def1a3 Added a docs root path to the path builder 2023-07-03 16:39:21 +01:00
James Ritchie c99481ea8d Added a callout to link to the docs 2023-07-03 16:39:21 +01:00
Matt Aitken a11ddf6564 Added JSDocs related to logging 2023-07-03 16:21:14 +01:00
Matt Aitken 917a70fbe9 Docs for the Job constructor() 2023-07-03 16:12:21 +01:00
Eric Allam 486d6818ba SDK: IO Logging now respects the job and client logLevel, and only outputs locally when ioLogLocalEnabled is true 2023-07-03 16:00:18 +01:00
Matt Aitken 807b9d4c45 SDK changeset: Added jsdocs for TriggerClient() and sendEvent() 2023-07-03 15:37:36 +01:00
Matt Aitken 0013e78b1a CLI changeset: Export the client from the generated code and added code comments 2023-07-03 15:37:25 +01:00
Matt Aitken 9dd46c83fd Added code comments to the CLI generated code, and exported the client 2023-07-03 15:35:40 +01:00
Matt Aitken 1eb6bb8aa9 Added JSDocs for TriggerCient() and client.sendEvent() 2023-07-03 15:35:40 +01:00
Eric Allam 6c86946614 SDK: Fixes issue with PING response
CLI: improves how the dev command handles register errors, also doesn’t create a tunnel when hitting local trigger.dev, and improves the dev command output
2023-07-03 15:33:44 +01:00
Eric Allam 612b016a15 When registering a schedule source < 60 seconds, make it 60 seconds 2023-07-03 14:00:46 +01:00
Eric Allam be8beacaec chore: update to Remix 1.18.1 2023-07-03 13:53:38 +01:00
Eric Allam 4d316c5524 Fixed the OAuth2 callback urls by constructing URL using x-forwarded-proto header 2023-07-03 13:47:58 +01:00
Eric Allam 7fee5d6a87 Remove logging of headers and replace integration list date with DateTime component 2023-07-03 13:26:53 +01:00
Eric Allam 0dd1aa5a5b Log out the server locale context 2023-07-03 13:11:32 +01:00
Eric Allam ed65ba4a73 isManagedCloud should be true when in the test cloud 2023-07-03 11:53:23 +01:00
Matt Aitken d39020370c Merge pull request #133 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-07-03 11:43:28 +01:00
github-actions[bot] c18ba11819 chore: Update version for release (next) 2023-07-03 10:29:42 +00:00
Matt Aitken 5fbd7226eb Changeset: @trigger.dev/cli: Added retrying and better messaging 2023-07-03 11:28:22 +01:00
Matt Aitken c9e27fd586 Improved the loading state of the CLI dev command. Fail after 10 connection attempts 2023-07-03 11:27:36 +01:00
Matt Aitken 51b80eb09b Deleted old CLI createProject file 2023-07-03 11:27:22 +01:00
Matt Aitken f409e9f329 Improved the messaging when it’s connecting with a retry 2023-07-02 18:54:25 +01:00
Matt Aitken 304e6aaad5 Only triggers a refresh when a relevant file is changed, retries with exponential backoff 2023-07-02 18:45:34 +01:00
Eric Allam 3c5d02043e Merge pull request #132 from triggerdotdev/changeset-release/main 2023-06-30 22:07:19 +01:00
github-actions[bot] 63980f63d4 chore: Update version for release (next) 2023-06-30 18:45:02 +00:00
Eric Allam facd2b2131 Update lockfile 2023-06-30 19:43:20 +01:00
Matt Aitken 25452588cc Update the sdk version in peer dependencies of @trigger.dev/nextjs 2023-06-30 18:05:53 +01:00
Matt Aitken 195d8c42fc Updated posthog-js to the latest 2023-06-30 18:02:03 +01:00
Matt Aitken fe04b9d32d Next.js changeset: adaptors no longer take an options object 2023-06-30 17:44:55 +01:00
Matt Aitken d03b3aeb5f Latets lockfile 2023-06-30 17:29:04 +01:00
Matt Aitken 2ee33e70f7 Fixed Slack help line highlighting 2023-06-30 17:25:57 +01:00
Matt Aitken e9209629f7 Show contextual help for an Integration 2023-06-30 17:24:55 +01:00
Matt Aitken fa1e6bf5e6 The new fields from the Integration catalog are now in the database 2023-06-30 17:24:40 +01:00
Matt Aitken 93c3b10bf7 Improved the help text some more
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-06-30 15:43:45 +01:00
Matt Aitken 56cb2e3b07 Updated the in-app quick start instructions 2023-06-30 15:38:40 +01:00
Eric Allam eabfb2457a Remove pushing to ECR 2023-06-30 15:35:20 +01:00
Eric Allam 317ab442ee Merge pull request #131 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-06-30 15:12:43 +01:00
github-actions[bot] 2b24b36da6 chore: Update version for release (next) 2023-06-30 14:10:09 +00:00
Eric Allam 161d59d01d Added better Next Steps in the init cli command 2023-06-30 15:07:46 +01:00
Eric Allam 821b75ed26 Merge pull request #130 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-06-30 14:30:38 +01:00
github-actions[bot] 1f901e68d3 chore: Update version for release (next) 2023-06-30 13:27:31 +00:00
Eric Allam 46d94a6a8f Fixed type errors 2023-06-30 14:26:07 +01:00
Eric Allam 44c2146505 Merge pull request #129 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-06-30 14:14:32 +01:00
Matt Aitken ec2f1f5931 Support for Integrations that are incomplete on the integrations page 2023-06-30 14:13:23 +01:00
Matt Aitken e86c59f4ec If logging is on show Posthogs logs 2023-06-30 14:13:23 +01:00
James Ritchie 6df6813a17 Styled scroll bar for the test json 2023-06-30 14:06:10 +01:00
James Ritchie f73679e2a6 Updated help image 2023-06-30 14:06:10 +01:00
Eric Allam 68b866921a Remove triggering a test deploy on publishing 2023-06-30 13:48:08 +01:00
James Ritchie 35364d615a Custom scrollbars now on the Job and Project navbar menus 2023-06-30 13:18:13 +01:00
Matt Aitken f64dd2a99c Added nice scrollbar, commented out missing integration stuff for now 2023-06-30 12:56:10 +01:00
Matt Aitken a309a75a4d NamedIcon now gives autocomplete in the editor (but also accepts any string) 2023-06-30 12:18:19 +01:00
Matt Aitken c2e2f7cad9 CLI: removed —tunnel param as we currently just support ngrok 2023-06-30 12:18:19 +01:00
Matt Aitken f69b92b153 Uncommented the jobs 2023-06-30 12:18:19 +01:00
Matt Aitken f8760fdd6b Moved the jobs so they’re imported and can be easily commented out 2023-06-30 12:18:19 +01:00
Matt Aitken caa4daabe2 Use the id as the temporary name 2023-06-30 12:18:19 +01:00
github-actions[bot] 67f685af26 chore: Update version for release (next) 2023-06-30 11:11:54 +00:00
Eric Allam b2a8b5653f Adding changeset for the new dev command 2023-06-30 12:10:30 +01:00
Eric Allam 9232f019e1 Fixed a couple type errors in the @trigger.dev/cli 2023-06-30 11:29:25 +01:00
Eric Allam ac371664af Better handle input for the --trigger-url option 2023-06-30 11:26:46 +01:00
Matt Aitken e4cca81124 Integrations page: added a Connections column and deal with local auth better 2023-06-30 11:11:28 +01:00
Matt Aitken d76d2b86d2 Indexing endpoints happens in a transaction 2023-06-30 11:11:28 +01:00
Matt Aitken fcd2d6eea2 Integrations now have a setupStatus and can be missing fields 2023-06-30 11:11:28 +01:00
Matt Aitken 067064d19c Include Slack jobs 2023-06-30 11:11:28 +01:00
Matt Aitken 52cdfb98a4 Added extra error checking to the refresh endpoint call 2023-06-30 11:11:28 +01:00
Eric Allam 41261afcc4 Fix the pnpm lock file AGAIN 2023-06-30 11:10:13 +01:00
James Ritchie 77f71fdeb7 WIP adding 2 links below the api list 2023-06-30 11:09:15 +01:00
James Ritchie ce0032e7e5 Minor copy tweaks 2023-06-30 10:33:05 +01:00
Matt Aitken c97ca350ad The endpoint gets automatically refreshed when files are changed, with a throttle 2023-06-29 22:19:55 +01:00
Matt Aitken 90abcb2cf7 Improved messages 2023-06-29 21:53:16 +01:00
Matt Aitken 8626172faa Installed packages 2023-06-29 21:53:09 +01:00
Matt Aitken 44ef97c656 Set the nextjs-example packages to workspace again 🤦‍♂️ 2023-06-29 21:53:05 +01:00
Matt Aitken 7661fe5309 CLI dev command is creating a tunnel and attempting to connect to the API 2023-06-29 21:29:28 +01:00
Matt Aitken beb02c871d Added the CLI to the nextjs-example project 2023-06-29 21:12:21 +01:00
Matt Aitken 8a47320272 WIP on dev CLI command 2023-06-29 20:32:07 +01:00
Matt Aitken 114c8990a3 Change the main header to h1 to stop eslint complaining 2023-06-29 19:34:00 +01:00
Eric Allam 7e2d48ac6a Adding SDK changeset for trigger client url 2023-06-29 18:26:53 +01:00
Eric Allam dbb6667889 Couple of changes for matt 2023-06-29 18:25:31 +01:00
Eric Allam 29a02131d2 WIP converting the init into a multi-command CLI to support dev 2023-06-29 18:15:19 +01:00
James Ritchie 5d887f1cfb Improved the sheet style 2023-06-29 17:29:46 +01:00
James Ritchie 18f0e73ed4 Added yarn and pnpm options for installing the package 2023-06-29 16:41:19 +01:00
James Ritchie c4c1425c9b WIP making the 2 styles of dropdowns similar. Bare minimum for now for launch. 2023-06-29 15:55:15 +01:00
James Ritchie 00bb3934ad import cleanup 2023-06-29 15:27:59 +01:00
James Ritchie 324096e14e typo 2023-06-29 15:27:48 +01:00
James Ritchie 9cad2bb308 scopes title style update 2023-06-29 15:15:13 +01:00
James Ritchie eec537135a fixed radio button alignment 2023-06-29 15:13:04 +01:00
James Ritchie 53e42d3350 Integration page layout now uses 2 and 1 col grid layout 2023-06-29 15:01:00 +01:00
James Ritchie e74122977a logo alignment fix 2023-06-29 15:00:10 +01:00
James Ritchie f32c3ebe2c higher res help images 2023-06-29 14:48:58 +01:00
James Ritchie d07ac4fef0 Added a callout link to the docs 2023-06-29 14:42:49 +01:00
James Ritchie 183761b01f Aligned the callout icon top 2023-06-29 14:42:39 +01:00
James Ritchie 361ef70ce8 api key fields not fullwidth 2023-06-29 14:42:31 +01:00
James Ritchie 2bac0a4e5b Added content to the Test help panel and made the -t dynamic 2023-06-29 14:35:34 +01:00
James Ritchie b89a68bb9c Added a hook for appOrigin 2023-06-29 14:35:34 +01:00
James Ritchie 496dadebbd Fixed the page layout to work with 1 or 2 col grid layout 2023-06-29 14:35:34 +01:00
Eric Allam 155a4eecd4 Merge pull request #128 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-06-29 14:02:45 +01:00
github-actions[bot] 5eec1b6f7b chore: Update version for release (next) 2023-06-29 12:39:46 +00:00
Eric Allam e2ce9472cf @trigger.dev/init: a number of improvements
- Detect middleware usage and warn about how it could conflict with Trigger.dev and with a link to the docs
- Lookup package versions and use the latest versions
- Better error messages when registering an endpoint doesn't work
2023-06-29 13:37:58 +01:00
James Ritchie 06f0b69cfb Small copy correction 2023-06-29 11:52:06 +01:00
James Ritchie 0ae43fde72 Added pnpm and yarn CLI install options 2023-06-29 11:50:17 +01:00
James Ritchie 32f5b7e5c4 Updated the ngrok image 2023-06-29 11:50:04 +01:00
James Ritchie e3a804ca64 Added mac and windows tab options to the ngrok install step 2023-06-29 11:07:48 +01:00
James Ritchie 6a3ee289b3 Styled the client tabs component 2023-06-29 11:07:48 +01:00
James Ritchie 02a8605fec step number takes a classname 2023-06-29 11:07:48 +01:00
James Ritchie dbd72e6bbf Added some margin to the bottom of the scopes list so it doesn’t crop the last entries 2023-06-29 11:07:48 +01:00
Matt Aitken d629c95daf Added Resend to integrations list, got rid of Airtable (for now) 2023-06-29 10:52:55 +01:00
Eric Allam 04d6e8e7f0 Set the package manager to pnpm 7.18.1 2023-06-29 10:35:22 +01:00
James Ritchie 7caf95158d Improvements to the Jobs help text 2023-06-29 10:08:52 +01:00
James Ritchie 8245448f29 Added a new image for the Jobs help text 2023-06-29 10:08:52 +01:00
Matt Aitken 4d85bcd60e OAuth slug/id field is now visible (must be unique, errors if it’s not) 2023-06-28 22:43:13 +01:00
Matt Aitken d8d156adac Connect integration button now locked to the bottom of the sheet 2023-06-28 22:07:48 +01:00
Matt Aitken 7d02c84c47 Latest package install 2023-06-28 22:07:32 +01:00
Matt Aitken a5d70b8c37 Added Slack jobs file 2023-06-28 22:00:08 +01:00
Matt Aitken d42cd9ffac New star sends Slack message 2023-06-28 22:00:00 +01:00
Matt Aitken 1b19c83998 Changesd “Slug” to “ID” on the integration page. We call it id in the code 2023-06-28 19:21:12 +01:00
Matt Aitken c0be8bef23 Added ID to the connected integrations list 2023-06-28 19:21:12 +01:00
James Ritchie 90bc2d0b60 Added more brand colours to the confetti 2023-06-28 18:00:45 +01:00
Eric Allam 1c747f69f5 Fixing pnpm lock once again 2023-06-28 17:57:28 +01:00
Eric Allam 57914c7488 Merge pull request #127 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-06-28 17:56:11 +01:00
James Ritchie 1939222d31 Obfuscate the API key in the input 2023-06-28 17:55:44 +01:00
James Ritchie c29f5fab7a Clipboard component can now be full width or fit the content (default is full width) 2023-06-28 17:55:44 +01:00
James Ritchie adb2cda614 Copy updates to the Job help panel 2023-06-28 17:55:44 +01:00
James Ritchie c462441f9e Added a todo for the confetti 2023-06-28 17:55:44 +01:00
James Ritchie 2681f6897d Added some confetti to the Jobs page 2023-06-28 17:55:44 +01:00
github-actions[bot] 2322c67aff chore: Update version for release (next) 2023-06-28 16:55:39 +00:00
Eric Allam f645663fd8 Fixed the lockfile 2023-06-28 17:54:18 +01:00
Eric Allam f2f4d4b827 @trigger.dev/sdk, webapp: Adding more granular error messages around unauthorized requests 2023-06-28 17:53:40 +01:00
Eric Allam 85108cfcb5 @trigger.dev/init: Remove the localhost default for endpoint URL 2023-06-28 17:11:35 +01:00
Matt Aitken 308bd355e2 ClipboardField allows passing in a secure string 2023-06-28 17:05:05 +01:00
Matt Aitken 4ab032c717 Latest lockfile 2023-06-28 17:04:56 +01:00
Eric Allam 17a117d1ee Merge pull request #126 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-06-28 16:53:29 +01:00
github-actions[bot] bc43cc232d chore: Update version for release (next) 2023-06-28 15:40:08 +00:00
Eric Allam 94ae9e65f4 Fixed an issue in @trigger.dev/init that cause environment variables to be incorrectly added to .env.local 2023-06-28 16:38:51 +01:00
James Ritchie 2ed7158cf1 Fleshed out the ngrok section some more 2023-06-28 16:14:41 +01:00
James Ritchie 9d8a21a3de Added an ngrok image 2023-06-28 16:14:41 +01:00
Eric Allam d313eaa742 Update the performRunExecution import 2023-06-28 15:50:02 +01:00
Eric Allam c5d91e7cca Adding the resend package and fixing issues with the webapp 2023-06-28 15:48:23 +01:00
James Ritchie cc668a1624 Added a refresh page button 2023-06-28 15:34:31 +01:00
James Ritchie d17173ec0a Added another namedIcon 2023-06-28 15:34:21 +01:00
James Ritchie ebcd886d20 More Jobs help content 2023-06-28 15:15:48 +01:00
James Ritchie 4976bd1889 Show a callout link to the docs when you have 0 or >0 Jobs 2023-06-28 15:15:48 +01:00
James Ritchie 9da6d92fb3 useEnvironments hook now works as intended 2023-06-28 15:15:48 +01:00
Eric Allam 9dee5429d5 Move error formatting to a server file 2023-06-28 14:28:11 +01:00
James Ritchie ebe90aac5c WIP writing the setup Project help text 2023-06-28 14:08:35 +01:00
James Ritchie 289d69c79d Show 3 different CTAs for creating a Job depending on how many Jobs you currently have 2023-06-28 14:08:35 +01:00
James Ritchie 5bdaf4f662 Added a new namedIcon 2023-06-28 14:08:35 +01:00
James Ritchie 67f47bc3df Removed the Jobs skeleton and added a dashed outline version 2023-06-28 14:08:35 +01:00
James Ritchie 67ddd76ff3 Optionally set an isOpen conditional for when the Help panel is toggled open 2023-06-28 14:08:35 +01:00
James Ritchie 95de883879 Updated the terms links 2023-06-28 14:08:35 +01:00
James Ritchie 3227da122e If the integration connection is local, don’t show the irrelevant tabs 2023-06-28 14:08:35 +01:00
Eric Allam ae243c783a Merge pull request #125 from triggerdotdev/changeset-release/main
chore: Update version for release (next)
2023-06-28 14:01:17 +01:00
github-actions[bot] eb3b7f5146 chore: Update version for release (next) 2023-06-28 12:31:20 +00:00
Eric Allam 414439cac9 Upgrade to Remix 1.18.0 and try out the new dev server 2023-06-28 13:29:46 +01:00
Eric Allam 7dacccb70e Tag the main html title with the app env 2023-06-28 13:16:15 +01:00
Eric Allam a5e1d0595e Trigger a test deploy if a push to main happens 2023-06-28 12:13:44 +01:00
Eric Allam 7e8c6e92a2 Fixed seeding the cloud user github integration connection 2023-06-28 12:07:47 +01:00
Eric Allam 24542d4e21 Adding support for trigger source in the run context 2023-06-28 12:07:47 +01:00
Eric Allam b975125af5 Merge pull request #124 from triggerdotdev/changeset-release/main 2023-06-27 19:36:36 +01:00
github-actions[bot] cc8c60605b chore: Update version for release (next) 2023-06-27 16:43:11 +00:00
Eric Allam 23adc15ce3 Fixed the broken export issue with two of the new github tasks 2023-06-27 17:41:49 +01:00
Eric Allam 7204aa0c9a Push commit hash image tag to ECR
🚀 Publish Trigger.dev Docker / ʦ TypeScript (push) Has been cancelled
🚀 Publish Trigger.dev Docker / publish (push) Has been cancelled
2023-06-27 16:37:39 +01:00
Eric Allam 6750429cd4 Fixed the slack env vars for oauth2User 2023-06-27 16:24:10 +01:00
James Ritchie cfe0a6cbb8 Copy changes 2023-06-27 15:44:46 +01:00
James Ritchie a9f95971e8 Added an integration button image 2023-06-27 15:44:46 +01:00
James Ritchie d7eee844b7 Callout now has a docs variant which can take an href 2023-06-27 15:44:46 +01:00
James Ritchie 4c52731d16 Exported the integration icon to use in the help text 2023-06-27 15:44:46 +01:00
James Ritchie e53447d0bf Replaced all the inline help content on the route pages with components 2023-06-27 15:44:46 +01:00
James Ritchie 53ed23ac58 Initial setup for localising the help content into one component 2023-06-27 15:44:46 +01:00
Eric Allam 226fb4a349 Fallback to using the url passed in if the appHostEnvName isn’t in the environment 2023-06-27 15:30:01 +01:00
Eric Allam d89632eb9d Create latest and tagged images if in a versioned tag 2023-06-27 14:11:16 +01:00
Eric Allam 4621196993 Revert "Try publishing to ECR using good ole fashioned aws credentials"
This reverts commit 988e753c74.
2023-06-27 13:52:43 +01:00
Eric Allam 988e753c74 Try publishing to ECR using good ole fashioned aws credentials 2023-06-27 13:51:20 +01:00
Eric Allam aa49b2ca76 Do docker commands manually in publish.yml 2023-06-27 13:37:52 +01:00
Eric Allam fdcd2fdb27 Try removing logging in to the Github Container registry 2023-06-27 13:13:40 +01:00
Eric Allam 62f94206bb Fixed CLI showing undefined when not specifying a trigger-url flag 2023-06-27 13:00:06 +01:00
Eric Allam 7b6647cfd4 Fixed syntax error with publish.yml 2023-06-27 12:44:50 +01:00
Eric Allam 73828c5db7 Add a docker/login-action for logging into ECR 2023-06-27 12:36:03 +01:00
Eric Allam e1d942bb3a Add pnpm run db:studio command to open prisma studio 2023-06-27 11:27:31 +01:00
Eric Allam a764cf64b3 Remove docker hub container push and try to fix ECR 2023-06-27 11:20:16 +01:00
Eric Allam 018d51993a Need to login to ECR before pushing 2023-06-27 10:30:11 +01:00
Eric Allam 4ce51291de Try pushing to a private ECR registry 2023-06-27 09:56:34 +01:00
Eric Allam e0cd68787d Adding publishing docker images to a public ECR registry 2023-06-27 09:40:39 +01:00
James Ritchie 6601f4c505 Deleted empty old folders and files 2023-06-26 17:59:15 +01:00
James Ritchie 6f62f0e2f1 Updated docs links to the new docs URL 2023-06-26 16:53:56 +01:00
James Ritchie c00026e203 Fixed some issues with the developing readme guide 2023-06-26 16:43:55 +01:00
James Ritchie 38ac365953 Added a database .env example file 2023-06-26 16:40:30 +01:00
James Ritchie 7cfb0f7d2d Improvements to the readme, including better headings 2023-06-26 16:17:51 +01:00
James Ritchie bae194f366 Updated the README to include a development guide 2023-06-26 15:40:17 +01:00
Eric Allam 398d95528d Adding back in multiplatform support 2023-06-26 15:33:05 +01:00
Eric Allam d1b2ee5490 Remove multi-platform for now to test something 2023-06-26 15:20:22 +01:00
James Ritchie d39b9bc060 Made the default port 3030 2023-06-26 15:10:10 +01:00
James Ritchie 0c0b7d86ee Deleted old infisical files 2023-06-26 15:10:10 +01:00
Eric Allam 03c4d9504f Cleanup the docker compose services stuff 2023-06-26 15:09:31 +01:00
Eric Allam 0737bfc5fe Add QEMU for multi-arch builds 2023-06-26 14:45:21 +01:00
James Ritchie 80b4916094 docker .env links to root .env 2023-06-26 14:45:03 +01:00
James Ritchie 00845b43b4 Renamed the .example env file and added instructions for getting your Resend API 2023-06-26 14:31:27 +01:00
James Ritchie 83a74808d5 Added an example .env 2023-06-26 13:30:34 +01:00
Eric Allam 951679cc10 Fix pnpm i 2023-06-26 12:10:55 +01:00
D-K-P 3cd95f06b2 Added new companyicons 2023-06-26 11:54:15 +01:00
Eric Allam de00fa91ae Generate db client before typecheck 2023-06-26 11:53:31 +01:00
Eric Allam 25d4f0b347 Fixed CLI typescript errors 2023-06-26 11:49:01 +01:00
Eric Allam 413aa28594 Fixed typescript error 2023-06-26 11:45:50 +01:00
Eric Allam 29e153bc54 Fixed pnpm lock file OUTDATED 2023-06-26 11:42:35 +01:00
Eric Allam 7b1a2f60d0 Adding changesets workflow to automatically version/release package changes 2023-06-26 11:41:40 +01:00
Matt Aitken 2302626703 Added line highlighting to the API Key code samples 2023-06-26 11:18:26 +01:00
Matt Aitken 28b3193743 Docs links use the pathBuilder 2023-06-26 11:18:26 +01:00
Eric Allam 0fdf8d0f6a Another fix for the CI docker build caching 2023-06-26 11:17:09 +01:00
D-K-P 890c93a820 Added Resend 2023-06-26 11:16:35 +01:00
Eric Allam 3bfcde99dc Update LICENSE to Apache 2.0 2023-06-26 10:42:07 +01:00
Eric Allam d5a8d19b66 Trying to fix the cache 2023-06-26 10:18:39 +01:00
Eric Allam 7a3a9a6f7c CI: Docker improvements
- Multiple arches in the docker image
- Use the docker@metadata-action github action to create the tags and labels
- Push to Docker Hub and Github Container Repository
2023-06-24 10:15:52 +01:00
Eric Allam a816c52699 Update docs link 2023-06-23 17:32:10 +01:00
Eric Allam bdd3157a45 Merge branch 'main' into dev-q22023 2023-06-23 17:27:48 +01:00
Eric Allam 7337e75d1e Add link to the fly.io repo 2023-06-23 17:10:40 +01:00
Eric Allam b39f1694c3 Fixed the version of the @trigger.dev/nextjs package 2023-06-23 17:02:39 +01:00
Eric Allam b3a919293c Update the devDependency on nextjs to be more permissive 2023-06-23 16:59:55 +01:00
D-K-P 927eb1d0ba changed green to toxic 2023-06-23 15:27:07 +01:00
D-K-P b812c6d984 Updated gradient 2023-06-23 15:25:16 +01:00
Eric Allam 6a768c3f84 Create LICENSE 2023-06-23 15:11:00 +01:00
Eric Allam 83f4e65bc3 Remove license and update README 2023-06-23 15:08:37 +01:00
Eric Allam ad33abe6bc Use the REMIX_APP_PORT for the Remix app server port when developing locally 2023-06-23 14:53:41 +01:00
Eric Allam 2e1624235c Improved the CLI prompts 2023-06-23 14:41:58 +01:00
Eric Allam 647f09f2f3 Remove staging from flightcontrol.json and only deploy prod on pushes to v1 branch 2023-06-23 12:32:35 +01:00
Eric Allam d0ad2bd38b Fixed the init help text 2023-06-23 12:22:35 +01:00
Eric Allam 3ae4e11bbe Changeset: version 2023-06-23 12:20:20 +01:00
Eric Allam 6f19a3e750 Fix for the init CLI for next.js projects that use the src directory 2023-06-23 12:20:06 +01:00
Eric Allam e8442eedad Commenting these out for now because they break build 2023-06-23 11:59:30 +01:00
Eric Allam a606db25f6 Changeset: version 2023-06-23 11:41:11 +01:00
Eric Allam 82f715bab6 Removed cli package from todo-example 2023-06-23 11:40:53 +01:00
Eric Allam 28914b878c Adding the @trigger.dev/init CLI package 2023-06-23 11:40:26 +01:00
Eric Allam 3c2f1709cc Remove welcome email (need to add back in for cloud) 2023-06-22 22:57:09 +01:00
Eric Allam 40ffde33b6 Add isManagedCloud feature, remove sentry, and require custom oauth app on self-hosting 2023-06-22 22:48:57 +01:00
Eric Allam 8184c21a80 Build the oauth2 callback url from the server (and use env.APP_ORIGIN) 2023-06-22 21:54:01 +01:00
Eric Allam 5c13d0c2df Fixed pnpm lock file again 2023-06-22 21:37:09 +01:00
Eric Allam fd8fd22bdc Fixed https missing from url 2023-06-22 21:35:49 +01:00
Eric Allam 31d8669c9d Make github auth optional and better name the env vars 2023-06-22 17:42:51 +01:00
D-K-P 59e1fbf565 Removed import 2023-06-22 17:10:10 +01:00
D-K-P 80c9bb0317 Added new components to the to do page and lots of improvements 2023-06-22 17:09:42 +01:00
Matt Aitken 6c71bad8ef Update Job in app folder to use owner + repo 2023-06-22 17:08:10 +01:00
Eric Allam 0e82f6287a Try and fix the fly entrypoint issues 2023-06-22 16:54:14 +01:00
Matt Aitken 52aacc1e1d OpenAI: createEmbedding 2023-06-22 16:29:00 +01:00
Eric Allam 909b4a5432 More fly work 2023-06-22 16:26:55 +01:00
Matt Aitken b48b724c01 OpenAI: createImage 2023-06-22 16:12:02 +01:00
Matt Aitken 91ac1567d4 OpenAI: createEdit 2023-06-22 16:12:02 +01:00
Eric Allam c034035aba Working on deploying to fly 2023-06-22 16:09:08 +01:00
Matt Aitken cd852f9563 OpenAI: retrieveModel 2023-06-22 15:51:31 +01:00
Matt Aitken 010ac6e5b6 OpenAI tasks: createFineTune, listFineTunes, retrieveFineTune, cancelFineTune, listFineTuneEvents, deleteFineTune 2023-06-22 15:45:09 +01:00
Eric Allam 0a3cf46068 Try this for publishing public images 2023-06-22 15:17:27 +01:00
Matt Aitken 2bbeeb860d Fixed gitignore for tmp folders 2023-06-22 15:10:19 +01:00
Matt Aitken b74045fe55 Ignore tmp folders 2023-06-22 15:10:19 +01:00
Matt Aitken a940102d83 Max lines before scrolling on the task input is 35 lines 2023-06-22 15:10:19 +01:00
Matt Aitken 74e9d5eb3c New OpenAI tasks: listModels, createFile, listFiles, createFineTuneFile 2023-06-22 15:10:19 +01:00
Matt Aitken b256d66374 Subtasks should always be set to last=false so you get the line at the bottom 2023-06-22 15:10:19 +01:00
Matt Aitken 5b23e60b04 Created an OpenAI example file 2023-06-22 15:10:19 +01:00
Eric Allam 4cd71decbc Starting to build fly demo 2023-06-22 15:03:13 +01:00
Eric Allam 1ba372e2c3 Unbreak the build 2023-06-22 14:33:08 +01:00
Eric Allam d88f8c87f6 Don’t cancel in progress runs 2023-06-22 14:31:52 +01:00
D-K-P ff02ab2aa0 Updated pnpm 2023-06-22 14:29:33 +01:00
D-K-P 38c71bdb3b Added logo / to do icon and style updates 2023-06-22 14:29:33 +01:00
Eric Allam b68ce9695c Try and fix the cache-from cause of Adam 2023-06-22 14:28:15 +01:00
Eric Allam 0d3e7bd996 Use docker/build-push-action 2023-06-22 14:17:30 +01:00
Eric Allam 1e0acf4ce8 Add back in the build:server script to webapp 2023-06-22 14:05:47 +01:00
Eric Allam b9e8e084a8 chmod the wait-for-it script 2023-06-22 13:54:47 +01:00
Eric Allam 1701d4253d Remove prisma config in package.json 2023-06-22 13:53:46 +01:00
Eric Allam ff60b71321 Quiet npx output 2023-06-22 13:48:19 +01:00
Eric Allam f68439b936 Adopt buildjet for faster CI builds 2023-06-22 13:46:34 +01:00
D-K-P a3fe3944b7 Style updates 2023-06-22 13:37:03 +01:00
D-K-P 9cf44777e1 Added to do custom input 2023-06-22 13:37:03 +01:00
D-K-P 5206c2c971 Removed shadcn input 2023-06-22 13:37:03 +01:00
Eric Allam 294fd10304 Use pnpm 7.18 in the docker workflow 2023-06-22 13:36:00 +01:00
Eric Allam 32650f8b9a Fix lockfile 2023-06-22 13:34:27 +01:00
Eric Allam c5d96db9a8 WIP docker github workflow 2023-06-22 13:11:43 +01:00
D-K-P d04c66006b Updated companyicons package 2023-06-22 12:03:13 +01:00
Matt Aitken d43529dce9 Added some GitHub property helpers 2023-06-22 12:02:08 +01:00
Matt Aitken 5ba95f3cbc Link to the run trigger, so it’s selected 2023-06-22 12:02:08 +01:00
Matt Aitken 7381e5b393 GitHub addIssueAssignees and addIssueLabels 2023-06-22 12:02:08 +01:00
Eric Allam b62f00dfd7 Implemented seeding the cloud based on env vars 2023-06-22 12:00:18 +01:00
Matt Aitken 95787fcc66 Make the tasks user a separate owner and repo too 2023-06-22 10:49:50 +01:00
Matt Aitken 4ef76f72dc Separate GitHub repo into owner and repo, to match official SDK/API 2023-06-22 10:49:50 +01:00
Matt Aitken 939f33e791 Added scrolling to the Jobs menu (I have a ton) 2023-06-22 10:49:50 +01:00
D-K-P e15ade91d4 Added Trigger sync card and made lots of general improvements 2023-06-21 21:54:53 +01:00
Matt Aitken 0776cc884d Pull request review 2023-06-21 19:50:20 +01:00
Matt Aitken 0ad09eb11f Pull request event 2023-06-21 19:41:33 +01:00
Matt Aitken 9e8b37c6cf Added push event 2023-06-21 19:29:02 +01:00
Matt Aitken c2839934b4 Added branch and tag events 2023-06-21 19:04:14 +01:00
Matt Aitken e2e3c3a9b3 Latest lock file 2023-06-21 19:04:03 +01:00
Matt Aitken 9b3f4bc1a3 Next generates a weird .next/package.json when running, so need to restrict example workspaces 2023-06-21 19:03:53 +01:00
Matt Aitken cf9c34950f Show more of the comment body 2023-06-21 18:44:08 +01:00
Matt Aitken d4a2927279 Fix for integration-kit issues 2023-06-21 18:43:58 +01:00
Matt Aitken 56172b1e5c Star examples 2023-06-21 18:24:38 +01:00
Matt Aitken 7def5437fd Try and bundle up the integration-kit with the github package 2023-06-21 18:24:38 +01:00
D-K-P d21e364f11 Added trigger cards wip 2023-06-21 18:05:26 +01:00
D-K-P 7c6440fd9a Added cards / input / button / accordian and updated page 2023-06-21 18:05:04 +01:00
Matt Aitken 0b61207ecf Latest installs 2023-06-21 17:55:16 +01:00
Matt Aitken fff2f40924 Added issue commented example job 2023-06-21 17:55:16 +01:00
Matt Aitken 2166929fa8 Issue commented event, not working properly because of truncate function issue 2023-06-21 17:55:16 +01:00
Matt Aitken 5aa53da864 Next.js project using the latest eslint setup that Vercel recommend 2023-06-21 17:55:16 +01:00
Matt Aitken 21d7ff2f74 Added a function to truncate a string with an ellipsis 2023-06-21 17:55:16 +01:00
Eric Allam 8bba30e290 Initial Docker and docker compose setup 2023-06-21 17:07:17 +01:00
Eric Allam fd94a32b95 Removing a bunch of old stuff 2023-06-21 17:07:17 +01:00
Matt Aitken 25f9aa8c2d Started fleshing out GitHub events with examples and more events 2023-06-21 17:00:29 +01:00
Matt Aitken 172bb4527c Export the EventSpecificationExample type so it can be used in integrations 2023-06-21 17:00:15 +01:00
Matt Aitken 8ad769569c Spaced the properties out a bit vertically 2023-06-21 16:59:55 +01:00
Matt Aitken 32eba22628 Remove old oauth files 2023-06-21 16:59:32 +01:00
Matt Aitken 8d4179b5df Improved the coming soon billing description 2023-06-21 14:49:20 +01:00
Matt Aitken b7385825b6 Added missing auth param to GitHub integration 2023-06-21 14:11:52 +01:00
Matt Aitken 5a20528cc8 @trigger.dev/github package now uses integration-kit 2023-06-21 14:02:16 +01:00
Matt Aitken 324cf161ec Added @trigger.dev/integration-kit package 2023-06-21 14:02:16 +01:00
D-K-P 9f84e77f57 Replaced the fire icon with the td triangle on the integrations page 2023-06-21 13:56:11 +01:00
Matt Aitken beaf0a9ecb Coming soon is now nicer 2023-06-21 13:09:46 +01:00
Matt Aitken fb308e8038 Sent a notification when the feedback form is submitted, even if that custoemr is already active 2023-06-21 13:04:38 +01:00
Matt Aitken d2d15dae9f Added coming soon pages 2023-06-21 13:04:26 +01:00
Matt Aitken 977f064157 Added “background” icon 2023-06-21 10:53:46 +01:00
Matt Aitken 8d23dd0186 Set the user id in Plain 2023-06-21 10:53:41 +01:00
Matt Aitken 90ae06df2a Improved the feedback form 2023-06-21 10:33:01 +01:00
D-K-P 2cf253a914 Added new integrations / icons 2023-06-21 10:18:59 +01:00
D-K-P 9e462cc329 Minor updates 2023-06-21 10:17:59 +01:00
Matt Aitken 36ae8910b6 Added the help type 2023-06-20 22:45:09 +01:00
Matt Aitken fe0ed0bc9a The Plain feedback form is working 2023-06-20 22:43:33 +01:00
Matt Aitken ec738515b7 Initial work on feedback form 2023-06-20 22:21:36 +01:00
Matt Aitken 287b6c6bc7 Remove user agent/platform logging 2023-06-20 21:04:09 +01:00
Matt Aitken aad93b9147 Updated the replacement data format 2023-06-20 20:15:47 +01:00
Matt Aitken 31176245bd Changed the format slightly, added timestamps as further examples 2023-06-20 20:15:39 +01:00
Matt Aitken da45c7e2b9 Added support for replacements in examples, added __CURRENT_DATE__ to start 2023-06-20 20:11:06 +01:00
Matt Aitken 3c73cb3fed Example payloads are now any so we can do replacements 2023-06-20 20:10:34 +01:00
Matt Aitken 275d01421e Improved Windows shortcut modifier display 2023-06-20 17:51:19 +01:00
Matt Aitken 75edfccc31 Shortcut keys are working 2023-06-20 17:45:24 +01:00
Matt Aitken 1d230d9fed Nicely formatted shortcut in buttons 2023-06-20 15:17:29 +01:00
Matt Aitken 7d87dbf2ed Updated packages 2023-06-20 14:48:10 +01:00
Matt Aitken 44467331a2 Improved the ShortcutKey display 2023-06-20 14:47:47 +01:00
Matt Aitken 29cbfd4fb3 Use ClipboardField for Integration package installation 2023-06-20 13:48:34 +01:00
Matt Aitken d946408105 Integration sheet: show “View docs” button and the description 2023-06-20 13:48:21 +01:00
Matt Aitken 6101372ba8 Added OpenAI integration 2023-06-20 13:48:04 +01:00
Matt Aitken 4993860a18 Added optional description to an integration 2023-06-20 13:47:56 +01:00
Matt Aitken 5e29119e83 You can now only show integrations in the integrations list 2023-06-20 13:38:54 +01:00
Matt Aitken fe14664cfd Moved the logo-icon to be in alphabetical order 2023-06-20 13:38:54 +01:00
Matt Aitken f871817a2f Use geometricPrecision on Company icon svgs 2023-06-20 13:38:54 +01:00
Matt Aitken 6ccacaa92e Switch labels now supported and more complete styling 2023-06-20 13:38:54 +01:00
D-K-P 24e0f04aca Updated pnpm-lock file 2023-06-20 13:34:32 +01:00
D-K-P f878d499a7 Added ToDoRow component 2023-06-20 13:34:02 +01:00
D-K-P c24cd1c02b Added HeroIcons 2023-06-20 13:34:01 +01:00
D-K-P c6028fca44 Updated Paragraph and TextStyling 2023-06-20 13:33:45 +01:00
Matt Aitken 25daa5b358 Added Switch component with small and large variants 2023-06-20 12:20:03 +01:00
Matt Aitken 0503a2a517 Moved ClipboardField into primities 2023-06-20 12:04:49 +01:00
Matt Aitken 28fd3d9b18 Fix for re-runs linking to the incorrect detail panels 2023-06-20 12:00:17 +01:00
Matt Aitken 1a9af1dee4 Fix for Retry table not having key and header row 2023-06-20 11:55:28 +01:00
Matt Aitken ce27de1af6 Removed todo that has been done 2023-06-20 11:55:16 +01:00
Matt Aitken c9d5334a38 Improved the style of the “Rerun job” popover 2023-06-20 11:51:03 +01:00
Matt Aitken bd20b7b8e0 Show the event name in the Run Trigger cell on the left 2023-06-20 11:39:44 +01:00
Matt Aitken 52f40c8c26 Only show the retries table if there was > 1 2023-06-20 11:33:05 +01:00
Matt Aitken 622dd6aba4 Show a table of Task retries if there were some 2023-06-20 11:30:07 +01:00
Matt Aitken 969a6a1f2c Fix for the final retry 2023-06-20 11:29:51 +01:00
Matt Aitken 08eab9622d Improved the webhook instruction text 2023-06-20 10:41:37 +01:00
Matt Aitken 107960b67c Endpoint sheet shows the webhook URL 2023-06-20 10:40:01 +01:00
Matt Aitken b394f5e43f ClipboardField works when full width, has scrolling if the content is too large 2023-06-20 10:39:43 +01:00
Matt Aitken 4d71a5c9d4 Refreshing endpoints is working 2023-06-20 10:26:35 +01:00
Matt Aitken 59e2216861 Streaming working for the endpoint sheet 2023-06-20 10:26:35 +01:00
Matt Aitken 2fba5da04e sse function makes it much easier to do ServerSentEvents 2023-06-20 10:26:35 +01:00
Matt Aitken efbe2ddbf7 The AbortController approach causes the stream endpoint to be called all the time 2023-06-20 10:26:35 +01:00
Matt Aitken 7f353723eb Improved the environments form/page 2023-06-20 10:26:35 +01:00
Matt Aitken a94d50f3cd Made the sheet wider 2023-06-20 10:26:35 +01:00
Eric Allam ae66e6f01a Run pnpm i 2023-06-19 17:22:53 +01:00
Eric Allam e4b0b1e305 Add support for background task operations, starting with fetch 2023-06-19 17:22:18 +01:00
D-K-P 65ca2560fc Started adding the first col to the page 2023-06-19 17:19:16 +01:00
D-K-P bdbf04efe9 Added clsx / tailwind-merge to the package.json 2023-06-19 17:18:55 +01:00
D-K-P 4b56671d2d Added tailwind config / clsx / tailwind-merge 2023-06-19 17:18:35 +01:00
D-K-P f2b190b21a Replaced to-do folder with a blank nextjs project 2023-06-19 16:38:30 +01:00
D-K-P 4f5cf931be Duplicated the nextjs example folder for the to-do app 2023-06-19 15:28:03 +01:00
D-K-P 68beefdaf2 Added new integration logos and upped the companyicons package number 2023-06-19 15:05:15 +01:00
Matt Aitken 4a52fd2edc Added errors in the form if creating the endpoint fails 2023-06-19 12:17:58 +01:00
Matt Aitken 47fdfb344d Progress displaying endpoints and editing them 2023-06-19 11:48:33 +01:00
Matt Aitken ebbbc85d7b Added a success Callout variant 2023-06-19 11:48:14 +01:00
Matt Aitken 22ff2c36d9 Open a sheet when you click a row 2023-06-16 19:33:40 +01:00
Matt Aitken 5db2a1bb84 Improved the spacing 2023-06-16 19:19:10 +01:00
Matt Aitken 8a4ae0df20 WIP on the Environment clients 2023-06-16 19:17:30 +01:00
Matt Aitken 80c3e48f5c Tables can now have onClick events 2023-06-16 19:17:11 +01:00
Matt Aitken a7244032e4 Updated the variant for the CLipboardField 2023-06-16 16:37:50 +01:00
Matt Aitken 7fc3ff26bc Rejigged database migrate deploy scripts 2023-06-16 16:30:35 +01:00
Matt Aitken 0648d230fc WIP on environment page 2023-06-16 16:30:35 +01:00
Matt Aitken 2626608200 Renamed “Environments” to “Environments & API Keys” 2023-06-16 16:30:35 +01:00
Matt Aitken 081ef45047 Deleted org environment page, they are at the Project level 2023-06-16 16:30:35 +01:00
James Ritchie 9aa9ebc23f Minor tweak to the button min width 2023-06-16 16:26:58 +01:00
James Ritchie f664a10024 Final style improvements for the clipboard component 2023-06-16 16:22:33 +01:00
James Ritchie 52beb2f012 Removed borders on the icon 2023-06-16 16:14:03 +01:00
James Ritchie 149e3c2d84 Style updates and you can now click the icon to focus the field 2023-06-16 16:06:50 +01:00
James Ritchie 223965757c Making the clipboard component work with icons and larger sizes 2023-06-16 15:04:03 +01:00
James Ritchie 27c1d2516b More variants to the clipboard field 2023-06-16 15:04:03 +01:00
James Ritchie 014a97fcdc improved the env labels 2023-06-16 15:04:03 +01:00
James Ritchie eb85cc5c14 Adding new variants to the clipboard component 2023-06-16 15:04:03 +01:00
James Ritchie b1d49d71ea Removed import 2023-06-16 15:04:03 +01:00
James Ritchie 9a0a6305e7 Added a clipboard field story 2023-06-16 15:04:03 +01:00
James Ritchie a218bce73b Added prisma migrate deploy to package 2023-06-16 15:04:03 +01:00
Eric Allam c94ca54aff Add chat completion task 2023-06-16 15:02:24 +01:00
Eric Allam 2e8cd805fd Fixed for the new integrations stuff 2023-06-16 14:49:52 +01:00
Eric Allam 1a9bb4ddc5 Fix for seeds 2023-06-16 14:49:37 +01:00
Eric Allam e7f7c0704a Revamped the integration schema and local only integrations now work in the UI 2023-06-16 14:15:17 +01:00
Matt Aitken b5e0fb0e97 Tightened up the API grid 2023-06-16 11:53:13 +01:00
Matt Aitken f555989a5c Added a full stop 2023-06-16 11:53:03 +01:00
Matt Aitken 2e0ea4520c Updated to the latest @trigger.dev/companyicons package 2023-06-16 11:41:38 +01:00
Matt Aitken 31a9164df1 Added API integration voting functionality 2023-06-16 11:32:38 +01:00
Matt Aitken b363a1e60d Remove coming soon message from the OAuth form 2023-06-16 11:32:26 +01:00
Matt Aitken e5714f9047 Call them APIs in the list 2023-06-16 11:32:13 +01:00
Matt Aitken e9b9c77edc Added a NoIntegrationSheet 2023-06-16 10:10:06 +01:00
Matt Aitken acd49994bd WIP on showing APIs we don’t yet have an integration for 2023-06-15 17:38:56 +01:00
Matt Aitken 5264674cda Improved the spacing of the LabelValueStack 2023-06-15 17:22:49 +01:00
Matt Aitken 2825925781 Removed a ton of unused imports 2023-06-15 17:22:38 +01:00
Matt Aitken 083bd7f1cf Limit the height of the run output in the left-hand column 2023-06-15 17:03:57 +01:00
Matt Aitken 3f90fe04b4 The OAuth form is back and a coming soon for end-user OAuth 2023-06-15 17:03:57 +01:00
Matt Aitken a63a247b22 The flow is now roughly setup 2023-06-15 17:03:57 +01:00
Matt Aitken 7bb589b8f7 Multiple samples for API Keys 2023-06-15 17:03:57 +01:00
Matt Aitken 7c94ea3ec5 Added CustomHelp 2023-06-15 17:03:57 +01:00
Matt Aitken 5789ae3c73 Sheet scrolling should now work properly… painful 2023-06-15 17:03:57 +01:00
Matt Aitken 95fad3deb8 API auth help 2023-06-15 17:03:57 +01:00
Matt Aitken 2b5b8d7931 Added Paragraph spacing 2023-06-15 17:03:57 +01:00
Matt Aitken 96e0fb81ae Updated packages 2023-06-15 17:03:57 +01:00
Matt Aitken e5a568f510 Improved the radio button styling 2023-06-15 17:03:57 +01:00
Matt Aitken 8cb3155ea6 WIP on new integration flow 2023-06-15 17:03:57 +01:00
Matt Aitken 52c5d93449 Added a RadioGroup component with the same variants as Checkbox 2023-06-15 17:03:57 +01:00
Matt Aitken 5e3502f589 Removed badge prop from Checkbox (it had badges already) 2023-06-15 17:03:56 +01:00
Matt Aitken f1fd36d3a1 Checkbox description style doesn’t use mono font 2023-06-15 17:03:56 +01:00
Eric Allam 9f49b7f4c0 Move prisma to an internal database package 2023-06-15 14:18:34 +01:00
Eric Allam eca89e538b Convert to useTypedRouteLoaderData and improve the hydrateDates function 2023-06-14 21:53:04 +01:00
Eric Allam bbac63e162 Use /trigger to select the trigger details pane, and no longer redirecting when you land on the run page (can just link directly to /trigger if we want to) 2023-06-14 21:42:39 +01:00
Eric Allam ed3123470a Replaced manual hydration with using remix-typedjson (fixes error on run page) 2023-06-14 18:04:28 +01:00
Eric Allam 170bda3158 Only show the retry job button when status is failed 2023-06-14 17:09:19 +01:00
Eric Allam b5a8eec650 Implement the continue run service 2023-06-14 17:03:15 +01:00
Eric Allam 817b4ed133 Endpoint registration and indexing now is only initiated outside of clients 2023-06-14 16:07:10 +01:00
Matt Aitken e4837cea9d Run left-hand scrollbar now positioned better 2023-06-14 15:48:06 +01:00
Matt Aitken e1cdeb284f Created the ContinueRunService for Eric to implement 2023-06-14 14:18:28 +01:00
Matt Aitken f195933cb6 Rerunning from scratch is working 2023-06-14 14:16:44 +01:00
Matt Aitken 6e1d91b413 Moved the ReRunPopover to a component to make the page easier to work with 2023-06-14 12:47:52 +01:00
Matt Aitken d4e39de67e WIP on Rerun/continue functionality 2023-06-14 12:46:17 +01:00
Matt Aitken 4903cfc689 Don’t let Callout icons shrink when the space is small 2023-06-14 12:45:56 +01:00
Matt Aitken 54a8e26c7c Organized imports 2023-06-14 12:02:17 +01:00
Matt Aitken 4cc9006c8e Added test help panel. Defaults open if there haven’t been any test runs yet 2023-06-14 12:00:43 +01:00
Matt Aitken bc6492b1c4 Improved the test layout so the examples are more obvious 2023-06-14 11:52:11 +01:00
Matt Aitken afd05f93fc Tried to improve the environment label but it’s a bit fooked 2023-06-14 11:52:11 +01:00
Matt Aitken e83f5e7cca Fix for DynamicTriggerIcon non camelCase attributes 2023-06-14 11:52:11 +01:00
Matt Aitken 7b8e02023e Default icon for an example is the beaker 2023-06-14 11:52:11 +01:00
Matt Aitken 3882f531cf Environment is now in the rounded rectangle so it’s consistent 2023-06-14 11:52:11 +01:00
Matt Aitken 0ce58b5c0f Better spacing for PageHeader buttons 2023-06-14 11:52:11 +01:00
Eric Allam f36a1c60f4 Changeset: version nextjs 2023-06-14 09:55:02 +01:00
Eric Allam 98fcc5d2d4 Make sure nextjs app routes have the correct types 2023-06-14 09:55:02 +01:00
Matt Aitken 6ff2ee23f8 Hide the test button if you’re on the /test page 2023-06-14 09:15:19 +01:00
Matt Aitken e1405b140f Better test layout 2023-06-14 09:13:15 +01:00
Matt Aitken 04ab709ddd Better test styling 2023-06-14 09:09:43 +01:00
Eric Allam 0736c68d77 Fixed duplicate export issue 2023-06-14 08:08:52 +01:00
Eric Allam 34ccf345cd Changeset version: implement task errors and retrying 2023-06-14 08:07:19 +01:00
Matt Aitken 605a38d8ab Trying to make a good layout for the test page 2023-06-13 18:16:07 +01:00
Matt Aitken c9fd8ccae2 Running tests is working 2023-06-13 16:33:42 +01:00
Matt Aitken 43482b1b96 Get some errors if you’ve used invalid JSON 2023-06-13 15:52:58 +01:00
Matt Aitken 81912b2530 Test page is working with a ref 2023-06-13 15:52:58 +01:00
Matt Aitken 2db2e7a369 First version of the Test page with example and environment selection 2023-06-13 15:52:58 +01:00
Eric Allam 3589d26fb3 Implement task retrying to recording task attempts 2023-06-13 15:48:07 +01:00
Matt Aitken e5282fb264 Get the example data for the test page 2023-06-13 11:48:39 +01:00
Matt Aitken 61fddbb8af Added name and icon to the EventExamples 2023-06-13 11:48:27 +01:00
Matt Aitken e141aa3ff4 Added an GitHub Issue opened example 2023-06-13 10:57:06 +01:00
Matt Aitken 2fa1536315 EventExamples are now in a separate table (upserted on job register) 2023-06-13 10:56:57 +01:00
Matt Aitken 5607dcfae9 Created useFilterJobs which also searches the job slug 2023-06-13 10:11:34 +01:00
Eric Allam bd103802f9 Better logging of errors so we can debug delivery issues to hosts 2023-06-12 21:11:44 +01:00
Matt Aitken 0cbf427a58 Added “Test” to the breadcrumb 2023-06-12 18:18:23 +01:00
Matt Aitken e53cd477f9 Added a dynamic property to the Job page header 2023-06-12 18:15:45 +01:00
Matt Aitken df61f29a02 Added Dynamic markers to the jobs table 2023-06-12 18:12:52 +01:00
Matt Aitken feda01ab3b Don’t count internal or other project jobs in the integration table 2023-06-12 16:28:42 +01:00
Matt Aitken fb2684c0b3 Added the placeholder for help using an integration 2023-06-12 16:19:52 +01:00
Matt Aitken 89e4b80e65 Added integration breadcrumbs 2023-06-12 16:12:07 +01:00
Matt Aitken d55fe2d100 Added scopes page 2023-06-12 15:59:34 +01:00
Matt Aitken 49a510aaf9 Client Connections page is working 2023-06-12 15:34:51 +01:00
Matt Aitken 16a5504a32 Connection client jobs page 2023-06-12 14:47:47 +01:00
Matt Aitken b720c27c2a Show the slug in a ClipboardField 2023-06-12 14:12:51 +01:00
Matt Aitken cad3453e32 Created the ClipboardField 2023-06-12 14:05:38 +01:00
Matt Aitken afe0a8a159 Run page streaming runs just once if run is completed 2023-06-12 12:04:36 +01:00
Matt Aitken 2487e815a3 Use zod for integration client page params parsing 2023-06-12 12:04:36 +01:00
Eric Allam 771348dd5e Handle task errors and update the task status and add errors to the task output 2023-06-12 09:31:47 +01:00
Matt Aitken 1f76e1228a Added connection client Jobs table 2023-06-12 09:26:15 +01:00
Eric Allam fe782e5ff8 Scope finding projects and runs by the project and org 2023-06-09 21:14:40 +01:00
Eric Allam b4167a38f2 Fixed the event trigger name 2023-06-09 21:14:15 +01:00
Matt Aitken 61459a197f Started working on the Integration client page 2023-06-09 19:23:53 +01:00
Matt Aitken 30b6cc646a Improved the integrations page layout 2023-06-09 17:53:02 +01:00
Matt Aitken df95d4e29f Changed to using the job slug in the urls 2023-06-09 17:26:52 +01:00
Eric Allam 5090b64e57 Store the graphile job ID on the executions to be able to fast-forward delayed tasks 2023-06-09 16:56:45 +01:00
Matt Aitken 12d188d85a When accepting an invite it creates the RuntimeEnvironment for each project 2023-06-09 16:51:26 +01:00
Matt Aitken ab3e45d933 Import tidying 2023-06-09 16:40:47 +01:00
Matt Aitken 8c979cabd7 Added the realtime duration to the detail panel 2023-06-09 16:39:15 +01:00
Matt Aitken a617922c1d Handles closing out the realtime connection better 2023-06-09 16:37:18 +01:00
Matt Aitken fec7cd65a7 The Run page now live updates 2023-06-09 16:21:36 +01:00
Matt Aitken 10cfdb2fa2 Tweaked the countdown 2023-06-09 16:21:36 +01:00
Eric Allam 43a62d8bec Always create environments when creating a project 2023-06-09 15:40:18 +01:00
Matt Aitken 7b32b7ecd6 Delays display well now with countdowns 2023-06-09 15:25:34 +01:00
Eric Allam 2fcd166d32 Upgrade nextjs package to not require a specific next version 2023-06-09 14:42:50 +01:00
Eric Allam d8c673157b Changset: versions 2023-06-09 14:42:50 +01:00
Eric Allam 99316df879 Adding changeset for v2 2023-06-09 14:42:50 +01:00
Matt Aitken 5a4fa3d2b3 Return data from schedule job 2 2023-06-09 12:11:38 +01:00
Matt Aitken 71ececd7ce Added completed detail panel, improved panels 2023-06-09 12:09:28 +01:00
Matt Aitken 74519c08f0 Task errors are now parsed and displayed using the error component 2023-06-09 11:42:15 +01:00
Matt Aitken a85f19e016 The schedule job throws a task error 2023-06-09 11:41:58 +01:00
Matt Aitken cfe887341d Latest lockfile from running pnpm i 2023-06-09 11:22:07 +01:00
Matt Aitken eab17c3467 Added a state when there are no tasks 2023-06-09 11:20:15 +01:00
Matt Aitken 87c598627f Added a TaskCardSkeleton, it needs making good 2023-06-09 11:20:15 +01:00
Matt Aitken 30dc840144 Export the RunBasicStatus 2023-06-09 11:20:15 +01:00
Matt Aitken dd0e2d0bd2 Improved the run output 2023-06-09 11:20:15 +01:00
Eric Allam bf0da9ccff More renaming element to property 2023-06-09 11:08:21 +01:00
Eric Allam f430bcf54a Renamed elements to properties 2023-06-09 11:04:22 +01:00
Eric Allam ec4ef9ab7e Cleanup zodWorker a bit 2023-06-09 10:39:33 +01:00
Matt Aitken d01432e742 Added basic info to the completed panel 2023-06-09 10:24:15 +01:00
Matt Aitken cbb3e17e5d Added RunPanelError. Added Run complete panel with error 2023-06-09 10:10:57 +01:00
Matt Aitken 618bc927e9 Export ErrorWIthStack type 2023-06-09 10:10:57 +01:00
Matt Aitken 047c4f4baa Improved Callout 2023-06-09 10:10:57 +01:00
Eric Allam 3aea158edc Turn off bodyParser for realz 2023-06-08 17:29:06 +01:00
Eric Allam ed3b93493d Improved nextjs function names 2023-06-08 17:17:36 +01:00
Eric Allam 410efe1192 Implement @trigger.dev/nextjs package and make it work with the Next.js 13 app dir 2023-06-08 17:15:05 +01:00
Matt Aitken 58473f1cce Added properties to the event detail 2023-06-08 16:07:41 +01:00
Matt Aitken 399c9df1f3 Fix for LabelValue value just saying “value” if it didn’t have a link… 2023-06-08 16:07:32 +01:00
Matt Aitken cdfb2d1263 Added an external link icon and show the url on hover 2023-06-08 16:03:02 +01:00
Matt Aitken 9073a60ce6 Added links to properties with underline 2023-06-08 15:53:01 +01:00
Matt Aitken e9295bee2e Added a code comment explaining a redirect 2023-06-08 15:34:53 +01:00
Matt Aitken d1321106c2 Added description and improved no params for DetailView 2023-06-08 15:34:44 +01:00
Matt Aitken 8d2dec28e8 The run detail column is now a separate outlet with event and task routes 2023-06-08 15:09:08 +01:00
Matt Aitken ea426965de Remove date-fns, not being used 2023-06-08 14:20:48 +01:00
Matt Aitken 86dfeae727 Styled the subtasks and added a very simple animation 2023-06-08 00:26:58 +01:00
Matt Aitken 861cd6acee Use accurate times in the detail view 2023-06-08 00:08:43 +01:00
Matt Aitken e9055f0914 Selection is working with subtasks 2023-06-08 00:04:40 +01:00
Matt Aitken 9e4ada241c Recursive task cards are now working 2023-06-07 23:58:39 +01:00
Matt Aitken b13fc5cfe8 Added lots of subtasks to the 60s CRON job 2023-06-07 19:53:27 +01:00
Matt Aitken 35641e3af6 Added parentId and filter by it at the top-level 2023-06-07 19:53:10 +01:00
Matt Aitken df86706199 Moved TaskCard to a separate file to make it easier to work on the subtasks 2023-06-07 19:53:01 +01:00
Matt Aitken 1f3251ceea “Event name” not jiust “Name” 2023-06-07 19:03:28 +01:00
Matt Aitken a1917da1b1 Use the id logo for the Trigger name 2023-06-07 19:03:01 +01:00
Matt Aitken e9208bdeaa The trigger should be selected on page load 2023-06-07 19:02:37 +01:00
Matt Aitken 9ad86e6a62 Added the Run detail view for Triggers 2023-06-07 18:59:45 +01:00
Matt Aitken a9bcb00d8b Added new JobRunStatus cases to switches 2023-06-07 16:55:30 +01:00
Matt Aitken 1a0b2aeee1 Added Trigger elements 2023-06-07 16:51:49 +01:00
Matt Aitken 7d45996bf1 Updated Job to a new repo/id 2023-06-07 16:46:41 +01:00
Matt Aitken 594d7f94a2 Added the id icon 2023-06-07 16:40:21 +01:00
Matt Aitken 5252da6abb Merge the run and version elements 2023-06-07 16:40:16 +01:00
Matt Aitken 4fa3b2161f Display the Trigger elements 2023-06-07 16:40:01 +01:00
Matt Aitken 87732f25ba Added the Job id to the header 2023-06-07 16:39:33 +01:00
Matt Aitken a4a0958ba4 Allow a ReactNode to be used in a PopoverMenuItem 2023-06-07 16:22:51 +01:00
Matt Aitken e2c8b82ed2 Job menu now has the slug as well as the Job title 2023-06-07 16:22:38 +01:00
Matt Aitken 8f060f6868 Allow any string for popover and button icons 2023-06-07 16:07:02 +01:00
Matt Aitken 6ae783c03e Fix for the company icon collapsing to 0x0 pixels 2023-06-07 16:06:46 +01:00
Matt Aitken ed1d9d88de Added a created at column to the Runs table 2023-06-07 16:06:34 +01:00
Matt Aitken f6565eb8ea Removed blank line 2023-06-07 15:08:40 +01:00
Matt Aitken a47cdb5a15 Improved the filtered empty state for the Jobs table 2023-06-07 15:01:07 +01:00
Matt Aitken 6d45c9966e Deleted old png icons 2023-06-07 14:48:42 +01:00
Matt Aitken 77753aa5d7 Use @trigger.dev/companyicons for API icons 2023-06-07 14:48:38 +01:00
Matt Aitken 9e00992387 Jobs are now shown in a table 2023-06-07 14:33:53 +01:00
Eric Allam 2ef99d8383 Re-architect pre-processing and executing jobs, and gather run elements 2023-06-07 13:12:02 +01:00
Matt Aitken a03912b804 Added minimal styling for tasks 2023-06-06 18:19:31 +01:00
Matt Aitken d0ffedfef7 If a task succeeeded don’t show the tick 2023-06-06 17:59:58 +01:00
Matt Aitken d68f093c90 Tidied up imports 2023-06-06 17:59:45 +01:00
Matt Aitken 2fc948de76 Added log icon 2023-06-06 17:59:37 +01:00
Matt Aitken 1dc4783459 Moved the task.connection to the presenter 2023-06-06 17:40:09 +01:00
Matt Aitken 18a22001bd Job filtering now uses the filter hook too 2023-06-06 17:33:14 +01:00
Matt Aitken 1e4bf3043c Use the Filter hook for scope filtering 2023-06-06 17:30:29 +01:00
Matt Aitken ad48f9bb19 slate-1000 and slate-950 replaced with midnight-900 and midnight-850 2023-06-06 17:25:14 +01:00
Matt Aitken 0349f949c4 Improved the connection filtering 2023-06-06 16:50:33 +01:00
Matt Aitken 9b2f741df0 Added text filtering and improved the integrations page 2023-06-06 16:48:35 +01:00
Matt Aitken 0da4b43d25 Created reusable useTextFilter hook 2023-06-06 16:48:25 +01:00
Matt Aitken c8f46ed760 Fix for Tailwind config and missing slate[1000]s 2023-06-06 16:48:07 +01:00
Matt Aitken fb036e0712 Table of connected integrations 2023-06-06 15:59:53 +01:00
Matt Aitken ed966f0d18 The table now correctly scrolls horizontally if its parent is constrained and has overflow on it 2023-06-06 15:59:53 +01:00
James Ritchie 05c4076a5f A new midnight color palette for the app 2023-06-06 14:22:49 +01:00
Matt Aitken ac054705a1 Added TableCellChevron and the ability to hide a header cell label 2023-06-06 14:16:43 +01:00
Matt Aitken ab66372ebc Improved the run table blank state 2023-06-06 14:07:31 +01:00
Matt Aitken 2ff093e0ff Use smaller icons for the callout, they look a lot clearer 2023-06-06 14:07:31 +01:00
D-K-P 3a13a22f8a Updated the readme 2023-06-06 14:05:29 +01:00
Matt Aitken 24d2739480 Added loading state to the runs table 2023-06-06 13:16:52 +01:00
Matt Aitken 7f15cee11a RunsTable now uses the Table primitives 2023-06-06 12:55:45 +01:00
Matt Aitken c389fdce04 Initial work on reusable Table components 2023-06-06 12:48:22 +01:00
Matt Aitken e87d926a5a Created a presenter for the integrations page, updated the Integrations page to use it 2023-06-06 11:22:50 +01:00
Matt Aitken 0bbbc91e53 Removed getAllClients() from APIAuthenticationRepository 2023-06-06 11:22:33 +01:00
Matt Aitken d0edb4489c Custom Custom OAuth clients are working 2023-06-06 10:32:46 +01:00
Matt Aitken 4bff8b98db More work on the custom client id/secret 2023-06-05 19:15:33 +01:00
Matt Aitken 03d832ddc1 WIP on custom OAuth client 2023-06-05 19:15:33 +01:00
Matt Aitken ab01ef855b Started adding the extra fields for connections 2023-06-05 19:15:33 +01:00
Matt Aitken 9e2b2d3b42 Export the ApiConnectionType type 2023-06-05 19:15:33 +01:00
Matt Aitken ce749a0f11 Added validation to the custom OAuth app 2023-06-05 19:15:33 +01:00
Eric Allam d0e52f6186 Added style to tasks and made logs and wait minimal 2023-06-05 17:14:17 +01:00
Eric Allam 6cc5808139 Link the task to the RunConnection instead of storing the connection key 2023-06-05 17:03:37 +01:00
Eric Allam 8a2cd974fd Remove comboTrigger and add elements to JobVersion 2023-06-05 16:43:32 +01:00
Eric Allam 8e189cbf2b Rename sendEvent to sendCustomEvent and don’t use private class fields in IO because Proxy breaks 2023-06-05 14:26:03 +01:00
Matt Aitken 83b7eb8163 Created Callout component and added Storybook 2023-06-05 14:17:29 +01:00
Matt Aitken eb8350647e APIConnectionClient: added clientType and renamed credentialsReference 2023-06-05 13:35:25 +01:00
Matt Aitken 69e0f43326 The duration is calculated from the start and completed time 2023-06-05 12:05:11 +01:00
Matt Aitken 7c81259d76 Removed unused Slack scope annotations 2023-06-05 12:04:07 +01:00
Matt Aitken b1868a7e62 Removed color from the scope annotation type 2023-06-02 17:38:39 +01:00
Matt Aitken 63156f5140 Removed unnecessary tags on the Slack scopes 2023-06-02 17:36:20 +01:00
Matt Aitken 40bf79a5a2 Removed BasicConnectButton 2023-06-02 17:33:43 +01:00
James Ritchie 621350e0fc Improved the org and account page and added a logout button 2023-06-02 17:31:51 +01:00
James Ritchie b698da85d1 Badge doesn’t wrap 2023-06-02 17:31:51 +01:00
James Ritchie 36c1b30910 Added a the boxshadow colours from the marketing site 2023-06-02 17:31:51 +01:00
James Ritchie c6b208b577 Cleaned up imports 2023-06-02 17:31:51 +01:00
James Ritchie 6940e8c9c1 Small tweak to the login magic link form 2023-06-02 17:31:51 +01:00
James Ritchie 575875e807 Layout mprovements to the login 2023-06-02 17:31:51 +01:00
Matt Aitken 158504b5c9 Better error when there are no aliases in a job 2023-06-02 17:21:51 +01:00
Matt Aitken 611505d43c Prevent environments from getting deleted when team members leave 2023-06-02 17:21:20 +01:00
Matt Aitken 244efd2ae3 Prevent environments from getting deleted when team members leave 2023-06-02 17:21:02 +01:00
Matt Aitken 7cd2fae578 Fix the import of OAuthConnectSheet 2023-06-02 16:50:54 +01:00
Matt Aitken 6fa22bb7e4 Improved the error display a lot 2023-06-02 16:50:28 +01:00
Matt Aitken d0c04275f6 Renamed ConnectButton to OAuthConnectSheet 2023-06-02 16:04:14 +01:00
Matt Aitken d62eaa2e30 Check for already taken emails on the account form 2023-06-02 15:43:25 +01:00
Matt Aitken 09a40b8d36 Trimmed imports 2023-06-02 15:43:14 +01:00
Matt Aitken 9eb194bac2 Fix for incorrect message 2023-06-02 15:30:47 +01:00
Matt Aitken 1113cac7ff Confirming details prevents you from submitting an already taken email address 2023-06-02 15:29:17 +01:00
Matt Aitken 769068e93c Remove log 2023-06-02 15:29:17 +01:00
James Ritchie 881689e497 Minor fix on the login page 2023-06-02 15:01:17 +01:00
James Ritchie 1af6530888 Improvements to the magic email login page layout 2023-06-02 15:01:17 +01:00
Matt Aitken 003fa52793 Set confirmed basic details to true 2023-06-02 14:59:46 +01:00
Matt Aitken a54552c451 FormTitle can have a component icon 2023-06-02 14:58:31 +01:00
Matt Aitken 26c3a84bfd Added some named icons 2023-06-02 14:58:31 +01:00
Matt Aitken be3c060f38 Can update user with optional marketing email field 2023-06-02 14:58:31 +01:00
Matt Aitken 435f67c5ab Confirming details works 2023-06-02 14:58:31 +01:00
Matt Aitken 1ea3f3d755 Added a special big of magic 2023-06-02 14:58:31 +01:00
Matt Aitken 8a2dde52f8 Invite toasts display until closed 2023-06-02 14:58:31 +01:00
Matt Aitken 7622f48c00 WIP on user basic details 2023-06-02 14:58:31 +01:00
Matt Aitken 4876d76a49 Toast now has an option to display until closed 2023-06-02 14:58:31 +01:00
James Ritchie 0b05355e25 Fixed the layout for when you have multiple team members 2023-06-02 14:37:30 +01:00
James Ritchie 89690d76b5 Fixed name of email field 2023-06-02 14:21:23 +01:00
James Ritchie a9cf074d82 Improved the invitation accept page 2023-06-02 14:15:06 +01:00
James Ritchie 86f46f5162 Changed the icon colour 2023-06-02 14:14:46 +01:00
James Ritchie 693abac7fc Change icon to NamedIcon 2023-06-02 14:14:29 +01:00
James Ritchie f79d90bfc3 Copy tweak 2023-06-02 14:14:19 +01:00
James Ritchie bf347aa5d3 Improvements to the layout of members and pending invites 2023-06-02 13:31:26 +01:00
James Ritchie b2f350f3f7 Improvements to the members and pending invites list 2023-06-02 12:24:12 +01:00
James Ritchie d5f359d59d Renamed invite-accept file 2023-06-02 12:21:24 +01:00
James Ritchie ab4cb6d484 Fixed the focus states on input fields 2023-06-02 11:56:18 +01:00
Matt Aitken 33517b2c0e Resending invites working 2023-06-02 11:31:14 +01:00
Matt Aitken a9193cfe15 Added (You) to team page and improved the not allowed to leave team UX 2023-06-02 11:12:05 +01:00
Matt Aitken 10c2870d8a Button hover bg changes use group 2023-06-02 11:12:05 +01:00
James Ritchie 6894965575 Improved the Organization item on the Orgs and Account page 2023-06-02 10:58:40 +01:00
James Ritchie 8631a8c559 Added a back link to the Org page 2023-06-02 10:58:40 +01:00
James Ritchie a0418c7f5c Added a notification heading on accounts page 2023-06-02 10:58:40 +01:00
Matt Aitken ad86902073 User profile avatar has padding so it matches the hero icons 2023-06-02 10:51:56 +01:00
Matt Aitken c7d274117c Joining and declining invites is working 2023-06-02 10:44:24 +01:00
Matt Aitken 67606e7cee Accepting invites is working 2023-06-02 09:26:16 +01:00
Matt Aitken e0baafeb7d Improved the layout 2023-06-01 22:05:27 +01:00
Matt Aitken 795577ede0 Show the pending invites on the team page 2023-06-01 22:04:22 +01:00
Matt Aitken 9a4094d115 /accept-invite redirects with messages based on the invite and logged in status 2023-06-01 21:40:28 +01:00
Matt Aitken b3ccfeb015 A lot of work on email invites 2023-06-01 19:12:58 +01:00
Matt Aitken bfaf75c8dd Invite form with expanding fields is working 2023-06-01 17:19:30 +01:00
Matt Aitken 35b669eae8 WIP adding invite page 2023-06-01 17:19:30 +01:00
Matt Aitken 1893afbdbb Improved the remove user messaging 2023-06-01 17:19:30 +01:00
James Ritchie 17430fb921 Stop selecting the text inside a checkbox 2023-06-01 16:38:49 +01:00
James Ritchie f09d7254a7 Added a search bar to the scopes list 2023-06-01 16:36:30 +01:00
James Ritchie 4fe10eb8fa Built out the integration form 2023-06-01 15:58:17 +01:00
James Ritchie 562ba869e2 Segmented controller now has onChange prop 2023-06-01 15:58:17 +01:00
James Ritchie bcf5313498 Small form error style fix 2023-06-01 15:58:17 +01:00
James Ritchie 97bf4d00b1 Fieldset style improvement 2023-06-01 15:58:17 +01:00
James Ritchie 37486dc87e Checkbox has onChange and another style available 2023-06-01 15:58:17 +01:00
James Ritchie 2b15edb75a Added a small variant to form label 2023-06-01 15:58:17 +01:00
James Ritchie 926a9c7c78 Form labels can now have 2 sizes 2023-06-01 15:58:17 +01:00
James Ritchie 07f146e86d Added another input size per the design 2023-06-01 15:58:17 +01:00
James Ritchie cb6d412002 Improved checkbox description font size 2023-06-01 15:58:17 +01:00
James Ritchie d4fcf043ad Fixed alignment of segmented controller 2023-06-01 15:58:17 +01:00
James Ritchie 6947292adf Inline code component now has size variants to match the paragraph it’s inlined with 2023-06-01 15:58:17 +01:00
Matt Aitken 2270fcdc67 Made the form reusable for kicking other members 2023-06-01 14:42:26 +01:00
Matt Aitken cff0498646 Leaving a team works 2023-06-01 14:34:46 +01:00
Matt Aitken 62c7db3650 Made the <Button> a forwardRef so it can work with things like Alert 2023-06-01 12:23:23 +01:00
Matt Aitken 3a91f03340 Created the Org projects page 2023-06-01 11:44:21 +01:00
Matt Aitken 7bcd0b350e Added a cancel button to the New project page 2023-06-01 10:21:13 +01:00
James Ritchie 99fb735b5b input group can be full width 2023-06-01 08:47:47 +01:00
Matt Aitken 8e25e3f9a0 Improved the layout of the Help component 2023-05-31 21:51:34 +01:00
Matt Aitken a43512b117 Added help placeholder content 2023-05-31 21:47:36 +01:00
Matt Aitken da67607eda Added filtering to the Job list 2023-05-31 21:45:51 +01:00
Matt Aitken 8e98810682 No jobs blank state 2023-05-31 21:29:01 +01:00
Matt Aitken eb1804339c Added Active jobs property the the job list 2023-05-31 21:17:53 +01:00
Matt Aitken f63df323cf When creating an org, show a toast 2023-05-31 21:13:08 +01:00
Matt Aitken 468487d815 The divider in the project popover is clearer 2023-05-31 21:13:00 +01:00
Matt Aitken 0ff8f72668 Added a success toast to project creation 2023-05-31 21:09:35 +01:00
Matt Aitken 8df7018b4f Create project page working 2023-05-31 21:08:12 +01:00
Matt Aitken b5cc1b4c6d FormTitle now supports a description too (per design) 2023-05-31 21:08:05 +01:00
Matt Aitken 2b655707e4 Fix for The JobItem tooltip throwing error about div in p 2023-05-31 20:47:09 +01:00
Matt Aitken 853132453e Improve the logic for showing the background gradient 2023-05-31 20:46:53 +01:00
Matt Aitken a922f28e86 Added a dismiss button and improved the text 2023-05-31 20:14:27 +01:00
Matt Aitken 26e4f2b9f7 Styling on the toast 2023-05-31 20:11:23 +01:00
Matt Aitken 1030662c93 Tightened up the animation 2023-05-31 19:55:27 +01:00
Matt Aitken db3de3841f Updating account, including marketing prefs is working 2023-05-31 19:53:10 +01:00
Matt Aitken 3d9d6982e4 The user’s account image shouldn’t be in NamedIcon 2023-05-31 19:53:09 +01:00
Matt Aitken d8a5ad7107 Update lucide-react icons… 2023-05-31 19:53:09 +01:00
Matt Aitken e9b9bd8ff9 Restructured the routes so Orgs and Account are at the top-level under tabs 2023-05-31 19:53:09 +01:00
James Ritchie 43a94bfa2c segmented controller now takes label, value and name props 2023-05-31 18:28:53 +01:00
James Ritchie b75401bc7b New segmented control form component 2023-05-31 17:35:50 +01:00
James Ritchie 1cebf76b85 Changed the way badges work so they can be mapped over 2023-05-31 16:34:54 +01:00
James Ritchie c113e78c33 Addded an optional className 2023-05-31 15:48:08 +01:00
James Ritchie 4abdc51934 Improved the badge 2023-05-31 15:37:17 +01:00
James Ritchie a7c10e1c80 Improved the disabled and default checked checkbox 2023-05-31 15:37:09 +01:00
James Ritchie a9bb37416a Improved the way the checkbox logic works 2023-05-31 13:49:04 +01:00
James Ritchie 400836841a Got the checkbox behaviour working and new styles for the variants in 2023-05-31 13:03:09 +01:00
James Ritchie 81b37f3408 Small style update to the side menu buttons 2023-05-31 09:53:44 +01:00
James Ritchie 7fa663f1af Improved the integration button states 2023-05-31 09:05:44 +01:00
Matt Aitken b6b6005c7d Added Trigger panel, but it’s a bit light on content right now 2023-05-30 19:03:58 +01:00
James Ritchie 4015a4eac7 More WIP on the checkbox 2023-05-30 18:19:28 +01:00
Matt Aitken b458316bef Added Run breadcrumb 2023-05-30 17:57:22 +01:00
James Ritchie ec819c66d8 WIP new checkbox component 2023-05-30 17:45:32 +01:00
James Ritchie c4d678c439 Fixed shortcut positioning inside small buttons 2023-05-30 17:45:32 +01:00
Matt Aitken 6edbafff47 Fix for RunPanel title type 2023-05-30 17:43:42 +01:00
Matt Aitken 5439611d83 Slate colours updated 2023-05-30 17:43:16 +01:00
Matt Aitken b0f9fe9265 Major layout shifts to deal with scrollable areas 2023-05-30 17:32:55 +01:00
Matt Aitken f10501b9cc Added message element to slack post message 2023-05-30 16:50:15 +01:00
Matt Aitken 3400d6c9ab Detail view fleshed out 2023-05-30 16:50:05 +01:00
Matt Aitken 8aeead7e5e Padding for task description improved 2023-05-30 16:16:04 +01:00
Matt Aitken 41d9498999 Add a Task description 2023-05-30 16:14:46 +01:00
Matt Aitken 284f217163 Added a todo because logging isn’t working in the run function 2023-05-30 16:14:46 +01:00
James Ritchie b35d5e35fe Improved Sheet background visibility 2023-05-30 16:05:11 +01:00
James Ritchie 499ae4213a Made the Sheet header match the design 2023-05-30 15:59:12 +01:00
James Ritchie 9f1681a89c Improvements to positioning of the Sheet and footer button placement 2023-05-30 15:50:16 +01:00
Matt Aitken baeb11d7fb Layout improvements with flowing content 2023-05-30 15:45:28 +01:00
Matt Aitken c1907d4e00 Improved the task display with connections and task icon 2023-05-30 15:35:11 +01:00
Matt Aitken 0a898900bf Added connectionKey to Task so we can tell which connection is associated with a task 2023-05-30 14:57:33 +01:00
Matt Aitken 0258c394b6 Display the elements from the task 2023-05-29 13:19:21 +01:00
Matt Aitken 9b6991504c Moved the key to the right place 2023-05-27 19:14:38 +01:00
Matt Aitken 18d0de2366 Attempt at elements, but layout is funky 2023-05-27 19:12:12 +01:00
Matt Aitken 5f6352b123 Deal with the delay slightly differently, not sure if this is best or not 2023-05-27 18:39:55 +01:00
Matt Aitken 9a5c8cbbb7 Added TaskSeparator 2023-05-27 18:34:21 +01:00
Matt Aitken 9d7cfb39aa More progress on run page 2023-05-27 18:19:22 +01:00
Matt Aitken f3f65068fa Started work on the run page panels 2023-05-27 18:00:24 +01:00
Matt Aitken c74a456168 Status first as it’s most important 2023-05-27 13:50:54 +01:00
Matt Aitken 5806c687b6 Run header in, except the rerun button 2023-05-27 13:49:45 +01:00
Matt Aitken 3436a5ec8e Started building up the run header 2023-05-27 13:34:32 +01:00
Matt Aitken e6de29a5ab Basic run page header 2023-05-27 13:25:50 +01:00
Matt Aitken 7e2b134991 Can’t use the nested layoutless routing because it scrubs all the loading data. So instead conditional hide the Job header 2023-05-27 13:22:46 +01:00
Matt Aitken 288a891c8a useRun hook 2023-05-27 13:18:39 +01:00
Matt Aitken 25fbc80dd7 Run page placeholder 2023-05-27 13:06:07 +01:00
Matt Aitken 3e032e4fca Move the DirectionSchema so it can be accessed client-side 2023-05-27 13:04:58 +01:00
Matt Aitken b391b81209 Moved the pagination components to a separate file alongside the route 2023-05-26 18:45:10 +01:00
Matt Aitken bbd0d9d31f Pagination working with controls 2023-05-26 18:23:24 +01:00
Matt Aitken b8c09f6784 NamedIcons: chevron-left and chevron-right 2023-05-26 18:23:17 +01:00
Matt Aitken d217535fcd Added tabs for Trigger and Settings. They 404 for now 2023-05-26 16:55:40 +01:00
Matt Aitken f9b106642d PageContainer now takes up the full height 2023-05-26 16:36:29 +01:00
Matt Aitken 1dac117ed3 JobItem integrations aren’t optional 2023-05-26 16:35:14 +01:00
Matt Aitken 0392c7c6c6 Added WAITING_ON_CONNECTIONS status to the components 2023-05-26 16:24:21 +01:00
Eric Allam 5ba72a59c4 Use reverse DNS for all internal events 2023-05-26 16:18:47 +01:00
Matt Aitken bfdd3bc361 Oops I’d flipped isTest while… testing. Irony 2023-05-26 16:15:01 +01:00
Matt Aitken e06b4cfc84 Test column looked weird with zero ticks 2023-05-26 16:14:06 +01:00
Matt Aitken 0153c4f900 Nice status and environment components 2023-05-26 16:10:14 +01:00
Eric Allam 85f74ce761 Gracefully handle missing run connections and resume runs once the connections have been created 2023-05-26 16:00:04 +01:00
Matt Aitken 639c88d3c9 Nice duration formatter 2023-05-26 15:38:48 +01:00
Matt Aitken 4aac1f9662 Improved styles, using pathBuilder 2023-05-26 15:01:50 +01:00
Matt Aitken 38244b8f98 Added integrations to the Job page header 2023-05-26 14:51:34 +01:00
Matt Aitken 593372a508 useOptionalJob in Breadcrumb 2023-05-26 14:47:41 +01:00
Matt Aitken c24a9695b6 Fixed the “Rubs” breadcrumb link 2023-05-26 14:43:08 +01:00
Matt Aitken f7516db415 Very ugly run table working 2023-05-26 14:40:28 +01:00
Matt Aitken 3d520a8867 Removed extra border when showing the PageTabs 2023-05-26 13:40:30 +01:00
Matt Aitken 3a152d0d80 PageTabs have padding for use in the header 2023-05-26 13:40:08 +01:00
Matt Aitken 787cc20028 Fix for Project side menu hover area being too large when minimised 2023-05-26 13:39:55 +01:00
Matt Aitken 6d28e5f7f0 Created routing tabs that have an animating underline when page switching 2023-05-26 13:34:30 +01:00
Matt Aitken e57769d90c Renamed Tabs to ClientTabs, they’re only to be used for client side tabs 2023-05-26 13:04:30 +01:00
Matt Aitken b65aa5f9cf Improved Job page header 2023-05-26 13:04:10 +01:00
Matt Aitken a95e3855c0 Added PageHeader property display 2023-05-26 12:54:14 +01:00
Matt Aitken 50a3868c67 useJob and useOptionalJob hooks 2023-05-26 12:28:57 +01:00
Matt Aitken 4f3e314063 Split into useProject and useOptionalProject 2023-05-26 12:26:43 +01:00
Matt Aitken 885aeb542a Renamed useCurrentProject to useProject 2023-05-26 12:22:43 +01:00
Matt Aitken 933e91e45c We now have useOrganization and useOptionalOrganization hooks 2023-05-26 12:22:08 +01:00
Matt Aitken 3b8ea9b712 Renamed useCurrentOrganization to useOrganization 2023-05-26 11:58:13 +01:00
Matt Aitken 09e67dfba9 Added useOptionalOrganizations hook 2023-05-26 11:57:21 +01:00
Matt Aitken a12f464c4a Added notes for the implementation of the run list 2023-05-26 11:52:08 +01:00
Matt Aitken 08bd69ddf8 Fixed the conditional hook error in ProjectSideMenu 2023-05-26 11:51:31 +01:00
Matt Aitken 3862cc069c Started adding PageInfo rows and groups 2023-05-26 11:51:15 +01:00
Matt Aitken cb37705085 Start on the Job page 2023-05-25 19:20:06 +01:00
Matt Aitken 06785525eb Jobs menu working 2023-05-25 19:08:06 +01:00
Matt Aitken b046e4a110 Breadcrumb improvements. Also added temporary job page ready to build 2023-05-25 18:21:14 +01:00
Matt Aitken 92fba7b0b8 Added the missing icons for the different trigger types 2023-05-25 17:57:12 +01:00
Matt Aitken 976c56a6bb Upgraded Remix to 1.16.1 2023-05-25 17:45:43 +01:00
Matt Aitken 50ddfb8a2e Remove the log of the project 2023-05-25 17:30:45 +01:00
Matt Aitken 84f41eb69f The JobList is displaying 2023-05-25 17:30:33 +01:00
Matt Aitken bb18f18d22 The JobList is displaying, needs icons hooking up 2023-05-25 16:56:05 +01:00
Matt Aitken 94d17dd033 Added icon to the EventSpecificationSchema 2023-05-25 16:56:05 +01:00
Eric Allam e340abd386 Run jobs as users (custom events, and dynamic triggers/schedules) 2023-05-25 13:57:07 +01:00
Matt Aitken 2231fc23e1 Updated Sentry and Posthog to the latest 2023-05-25 13:00:46 +01:00
Matt Aitken f73ecb6898 Cast the cloned logger args 2023-05-25 13:00:34 +01:00
Matt Aitken fc33d3e2ca Cast the PostHog Sentry plugin because it’s causing typecheck issues 2023-05-25 13:00:22 +01:00
Matt Aitken 88c249299f Remove unused CacheService 2023-05-25 12:54:15 +01:00
Matt Aitken 224e5e412a Fix for JSONEditor errors 2023-05-25 12:54:09 +01:00
Matt Aitken c6545d5d6f Deleted old files (RunsTable and JobsMenu) 2023-05-25 12:53:30 +01:00
Matt Aitken e0b1e021ec Added Project slug, WIP on Jobs/Runs presenters 2023-05-25 12:53:16 +01:00
Matt Aitken 235dc6cd02 Updated the seed script so the DATABASE provider is correct and has project slugs 2023-05-25 12:52:29 +01:00
Matt Aitken 2858d742e1 Comment out unused GitHub connectiom 2023-05-25 12:52:01 +01:00
Matt Aitken df26167474 Added @uiw/react-codemirror back, we’ll need it for the Test code editor 2023-05-25 12:47:20 +01:00
Matt Aitken a11dea6e7f Added icon to the GitHub events 2023-05-25 12:46:58 +01:00
Matt Aitken 6d705e5db7 Added icon to the EventSpecification 2023-05-25 12:46:58 +01:00
Eric Allam d636360ec5 Only ever trigger scheduled events that are in the future 2023-05-25 09:59:19 +01:00
Eric Allam 3693df7ad2 Fixed getting access to the raw integration client 2023-05-24 12:59:47 +01:00
Eric Allam d15b6ac79f Dynamic schedules 2023-05-23 15:59:06 +01:00
Eric Allam 786f2e16ef Static scheduled triggers are working, and now adding graphile worker jobs are done in prisma txs 2023-05-23 14:00:26 +01:00
Eric Allam 7c5eb6a3a3 Fixed dynamic triggers to be unregisterable (and a start on scheduled triggers) 2023-05-22 11:02:58 +01:00
Eric Allam af258acf3a Dynamic triggers can now be initialize via the API 2023-05-19 11:57:41 +01:00
James Ritchie 21e6f8668d Using the simple tooltip component instead 2023-05-19 11:39:56 +01:00
Eric Allam d123d1cddd Move all API routes to v1 from v3 2023-05-19 10:08:00 +01:00
James Ritchie e4aa66e213 Integrations now have a tooltip to show the names on hover 2023-05-19 09:55:03 +01:00
Eric Allam 8e8c6641aa Adding back in the ctx functions to IO 2023-05-19 09:53:12 +01:00
James Ritchie 9e3b5707cf Added integrations into the job item 2023-05-18 17:47:10 +01:00
James Ritchie bc1e0bed1d Renamed RunStatus file 2023-05-18 17:12:25 +01:00
James Ritchie 2306650aa5 Added some responsivness to the Job item 2023-05-18 17:08:26 +01:00
James Ritchie 5136dd6698 Wrapped storybook in LocalContextProvider 2023-05-18 17:08:26 +01:00
James Ritchie 50622ff917 removed imports 2023-05-18 17:08:26 +01:00
Matt Aitken 1f217ed4a5 Connection form, lots of improvements to Sheet 2023-05-18 16:40:50 +01:00
Matt Aitken 8666358722 Improvements to the integration auth method selector 2023-05-18 16:40:50 +01:00
Eric Allam 70b850140d Refactor event dispatching to work with dynamic triggers 2023-05-18 16:25:29 +01:00
James Ritchie 2d411b4924 Data props now accessible in the Job Item component 2023-05-18 14:27:54 +01:00
James Ritchie 4a15d0e822 Removed leading overrides from paragraph component 2023-05-18 14:27:54 +01:00
James Ritchie 258c027b2d removed margin bottom from paragraph text 2023-05-18 14:27:54 +01:00
James Ritchie 114c23ab09 Removed margin bottom from headers 2023-05-18 14:27:54 +01:00
Eric Allam 396206ca03 Dynamic triggers now can be registered at runtime and trigger jobs 2023-05-18 14:00:54 +01:00
James Ritchie 1412feba15 Adding new job list and item components 2023-05-18 12:32:59 +01:00
Matt Aitken 4b1fcb7ec6 Help panel can now be undismissable 2023-05-18 08:47:32 +01:00
James Ritchie e927f5df5e small animation tweaks 2023-05-17 17:46:00 +01:00
James Ritchie f238d6bfb9 Hover state added for the popover 2023-05-17 17:31:02 +01:00
James Ritchie 2c0f3ac905 Style improvements to the select component 2023-05-17 16:58:47 +01:00
James Ritchie 7f08400432 select menus take a size and width 2023-05-17 15:35:47 +01:00
Matt Aitken f16c2ea0cf Added help panel to the integrations page 2023-05-17 15:07:28 +01:00
Matt Aitken c2d61f1011 Revert "Experiment building a Radix like component for help"
This reverts commit b50c3d8378916435d6e3d52ccaff379235e76588.
2023-05-17 15:07:28 +01:00
Matt Aitken c458ee780b Experiment building a Radix like component for help 2023-05-17 15:07:28 +01:00
Matt Aitken 10674786e2 WIP on help component 2023-05-17 15:07:28 +01:00
James Ritchie 65aa12de02 Added styling for a select component 2023-05-17 14:03:06 +01:00
James Ritchie df29a37c6c Fix for extra tailwind colors in the config 2023-05-17 14:03:06 +01:00
Eric Allam 6cafe077b4 Rename job connections to job integrations and get local integration triggers working 2023-05-17 13:52:03 +01:00
Matt Aitken 7a0c33cd49 Layout fixes for the integrations page 2023-05-17 11:00:20 +01:00
Matt Aitken 4b7c16641b More work on the integrations page 2023-05-17 09:30:13 +01:00
Matt Aitken 5cfd895f0e Updated the header for the integrations page 2023-05-16 18:49:37 +01:00
Matt Aitken 08e8ccb3f0 Integrations route moved to project path, add breadcrumb 2023-05-16 18:42:44 +01:00
Matt Aitken 973bb8a076 Fix for changes to Label and FormError 2023-05-16 18:42:44 +01:00
James Ritchie efe84d6a0c Improvements to the popover menu 2023-05-16 18:36:44 +01:00
James Ritchie 7823041b4c Improved the all caps style and font sizing 2023-05-16 18:36:44 +01:00
Eric Allam 055b742b66 Add description to clients and add orgid to params 2023-05-16 18:21:51 +01:00
Eric Allam fa0c9015ae Update the auth repository to work with the new client/connection split 2023-05-16 18:00:51 +01:00
Matt Aitken c6372bfc0b ProjectsMenu now uses some reusable components 2023-05-16 18:00:37 +01:00
Matt Aitken a46bb7c2f7 Added autodocs to a couple of Storybook pages 2023-05-16 18:00:27 +01:00
Matt Aitken 1a010b7f12 Breadcrumb changed to a component and simplified the page to just a slug 2023-05-16 17:12:39 +01:00
Matt Aitken da7b020dbb Added an animation when showing form errors, hide totally when undefined/null 2023-05-16 16:54:29 +01:00
Matt Aitken f88952d8f6 Remove log of email 2023-05-16 16:54:29 +01:00
Matt Aitken 064cbce172 Redirect to new org form if the user has no orgs 2023-05-16 16:54:29 +01:00
James Ritchie a42a1b231e Fixed button disabled states 2023-05-16 16:50:35 +01:00
Eric Allam e0e618ac1c Get webhook deliveries working again 2023-05-16 16:34:51 +01:00
Eric Allam f6ea37381a Re-work how triggers work to better support dynamic triggers 2023-05-16 16:34:51 +01:00
Eric Allam 214546d17a WIP new stuff 2023-05-16 16:34:51 +01:00
James Ritchie e851cefb39 fixed text colour 2023-05-16 16:33:42 +01:00
James Ritchie 7030acfa77 Added leading to paragraph text 2023-05-16 16:33:35 +01:00
James Ritchie efe23c01a7 Label component not using cva anymore 2023-05-16 16:27:25 +01:00
James Ritchie 45e4bf0b97 improved the field labels 2023-05-16 16:17:38 +01:00
James Ritchie b679539c0f added field hover states 2023-05-16 16:03:04 +01:00
James Ritchie de8421d966 Fix for a merge conflict 2023-05-16 15:57:58 +01:00
James Ritchie 8c6f8c3b01 Inputs now have size variants 2023-05-16 15:52:21 +01:00
Matt Aitken 504682e9bf Remove old internal event when a user was created 2023-05-16 15:31:06 +01:00
Matt Aitken f0090ca7b5 Force the User profile icon to be square 2023-05-16 14:56:41 +01:00
Matt Aitken fb862123db Delete old user menu 2023-05-16 14:56:28 +01:00
Matt Aitken 89981810d1 Login pages styled 2023-05-16 14:51:34 +01:00
Matt Aitken cd916fdca2 Lazy load integration icons 2023-05-16 13:18:00 +01:00
Matt Aitken a3ccb9950f Add NavBar to the error boundary 2023-05-16 12:21:13 +01:00
Matt Aitken 036bb523bd v2 errors and made a nicer error page 2023-05-16 12:19:28 +01:00
Matt Aitken b24317bf9b Enabled remix v2_normalizeFormMethod future flag 2023-05-16 12:19:27 +01:00
Matt Aitken 354e3090bf Remove unused useProject code 2023-05-16 12:19:27 +01:00
James Ritchie 337a0b9cb5 More Named icons 2023-05-16 11:56:39 +01:00
James Ritchie 626ee69dea Forms can take an optional shortcut icon 2023-05-16 11:56:39 +01:00
Matt Aitken bd2727415f Collapsing is determined correctly, not by a click on the menu 2023-05-16 11:34:05 +01:00
Matt Aitken ec541338b6 Tailwind formatted 2023-05-16 11:33:04 +01:00
Matt Aitken c4fbd92b49 Added a tooltip when the side menu is collapsed. Refined the icon padding 2023-05-16 11:28:02 +01:00
James Ritchie e49a392e8e Added an icon to the form error 2023-05-16 11:11:50 +01:00
James Ritchie 6374ef5e6d Inputs take an optional leading icon 2023-05-16 11:11:50 +01:00
James Ritchie c8e3894559 Updated the form focus color 2023-05-16 11:11:50 +01:00
Matt Aitken f4216b98ec Use framer motion for the menu collapsing 2023-05-16 11:09:07 +01:00
Matt Aitken 3dfecdf5d2 Installed framer motion 2023-05-16 11:08:58 +01:00
Matt Aitken fbcbd456e3 The Jobs side menu item active state works differently as it’s the root 2023-05-16 10:51:22 +01:00
Matt Aitken 18afbdec46 Use NavLink for the ProjectSideMenu 2023-05-16 10:09:27 +01:00
Matt Aitken 7db43b91f1 Created the Environments page stub 2023-05-16 10:09:18 +01:00
Matt Aitken 4071a8c280 Added NavLinkButton 2023-05-16 10:08:00 +01:00
Matt Aitken 3b7028618c Renamed handle.breadcrumb to handle.useBreadcrumbElement to stop the annoying hook naming warnings 2023-05-16 10:07:47 +01:00
Matt Aitken 0715fdaaba Added some structure to the path builder file 2023-05-16 10:07:12 +01:00
Matt Aitken 888810c5ae Removed @react-email package from webapp 2023-05-16 10:06:58 +01:00
Matt Aitken 5cef31f1bd Stripped whitespace 2023-05-16 09:17:55 +01:00
Matt Aitken 3d0ae35156 Added @typescript-eslint/strict-boolean-expressions rule for booleans, string and numbers 2023-05-16 09:17:55 +01:00
James Ritchie a3d03bdb35 Created a login form 2023-05-15 18:22:30 +01:00
James Ritchie 5d52b206c4 The divider on the form title is now optional 2023-05-15 18:22:30 +01:00
James Ritchie f05a8cd823 Added an anchor tag component 2023-05-15 18:22:30 +01:00
Matt Aitken 664f2e6623 Breadcrumb now uses the route handle 2023-05-15 17:49:10 +01:00
Matt Aitken 389d6fe9c6 Started building out the side menu 2023-05-15 16:45:19 +01:00
James Ritchie d3c767362c NamedIcons now have padding like hero icons 2023-05-15 15:35:20 +01:00
Matt Aitken 2892e3b36f Initial work on project page with side menu 2023-05-15 15:34:52 +01:00
Matt Aitken b17de99331 Set the popover background color 2023-05-15 15:34:52 +01:00
James Ritchie 9d8557fbed Added disabled button examples to storybook 2023-05-15 14:47:54 +01:00
James Ritchie 35c3a4e613 Menu items can be disabled or selected 2023-05-15 14:38:19 +01:00
Matt Aitken 00c9da8de9 Form story updated 2023-05-15 14:20:18 +01:00
Matt Aitken dfc5fec14a Storybook no longer opens a new browser window when run 2023-05-15 14:20:06 +01:00
Matt Aitken 85eca607a1 Fix for spinner white name change 2023-05-15 14:07:36 +01:00
Matt Aitken 8973001ec8 WIP on new org form 2023-05-15 14:07:05 +01:00
Matt Aitken 5a1e7412d2 Paragraph accepts all props a <p> accepts 2023-05-15 14:06:31 +01:00
Matt Aitken 8095612d30 Use a NamedIcon in the org grid 2023-05-15 14:06:31 +01:00
Matt Aitken 2259b812a2 Don’t create an org when a user first registers 2023-05-15 14:06:31 +01:00
Matt Aitken 5af6549a0f Added conform package 2023-05-15 14:06:31 +01:00
Matt Aitken 6d3a590ce8 Fix for hover states on the page header back button 2023-05-15 14:06:31 +01:00
Matt Aitken ce5be558e3 Don’t duplicate the orgs grid items 2023-05-15 14:06:31 +01:00
Matt Aitken eb6f1dadd1 Fixed the page backgrounds 2023-05-15 14:06:31 +01:00
Matt Aitken 2ed7e9f724 Show a background gradient if it’s a top-level page 2023-05-15 14:06:31 +01:00
James Ritchie ecea028fc0 Added another spinner variant to namedIcons 2023-05-15 13:57:35 +01:00
James Ritchie c76a7343f9 spinner now takes a colour 2023-05-15 13:52:50 +01:00
James Ritchie 1281a5e9aa Added loading buttons and improved the disabled states 2023-05-15 13:52:40 +01:00
James Ritchie 763d09b952 Added reduce motion support for spinner 2023-05-15 12:12:04 +01:00
James Ritchie 6d3b96aa20 Removed unused styles 2023-05-15 11:42:34 +01:00
James Ritchie 7f9447f403 Buttons now have selected state 2023-05-15 11:33:32 +01:00
James Ritchie 37836b938b Fixed icon hover state on the secondary large button 2023-05-15 11:09:16 +01:00
Matt Aitken b8605f82a8 Org grid item headers are clickable 2023-05-12 18:46:14 +01:00
Matt Aitken c81b5931c8 Brighter gradient 2023-05-12 18:43:34 +01:00
Matt Aitken 3d4aa61a3d Extended the gradient a bit 2023-05-12 18:43:16 +01:00
Matt Aitken 21ee76b6b2 Use simplur to deal with singular/plurals 2023-05-12 18:42:31 +01:00
Matt Aitken c4b65e0b96 Updated button to “menu-item” 2023-05-12 18:34:17 +01:00
Matt Aitken 11e2d2d0e1 Org grid looking ok 2023-05-12 18:33:11 +01:00
James Ritchie 149a849a7e Added a large button set and more styling for the menu item buttons 2023-05-12 18:31:58 +01:00
James Ritchie 18c4ede771 Added new menu item button 2023-05-12 17:31:19 +01:00
Matt Aitken 6c3cb7f5d1 Early org grid 2023-05-12 17:25:48 +01:00
Matt Aitken 945854c671 Upgraded Tailwind to 3.3.2 – gradient stop position support 2023-05-12 17:25:35 +01:00
James Ritchie 52460e5977 icon and style improvements to the popover 2023-05-12 16:52:38 +01:00
James Ritchie 60d571198f WIP new menu item button 2023-05-12 16:52:38 +01:00
James Ritchie 54f73a5fd5 added a menu item button to storybook 2023-05-12 16:52:38 +01:00
James Ritchie ac6d7d7a7a Improvements to the nav bar styling 2023-05-12 16:52:38 +01:00
James Ritchie 9c35cae103 added back in the shadcn background variable 2023-05-12 16:52:38 +01:00
James Ritchie ae358f9d41 Added 2 more colours for background and dividers between sections as separate variables 2023-05-12 16:52:38 +01:00
James Ritchie 786731b4e1 Increased stroke width of breadcrumb divider icon 2023-05-12 16:52:38 +01:00
James Ritchie 3af3db6a4a Added a min width do the shortcuts so narrow characters stay in a square 2023-05-12 16:52:38 +01:00
James Ritchie 4c889cf6f0 Changed the icon in the code block for copy/paste 2023-05-12 16:52:38 +01:00
Matt Aitken 89aa546b42 Added PageBody 2023-05-12 16:46:31 +01:00
Matt Aitken 695c4a928d Removed old layout components 2023-05-12 16:46:22 +01:00
Matt Aitken ec24dbeef2 Tweaked Storybook to work with <Link> elements. Added PageHeaders storybook page 2023-05-12 16:23:10 +01:00
Matt Aitken 43dc022675 Added Create new org button 2023-05-12 15:24:35 +01:00
Matt Aitken b3486a9b7f Orgs page layout started 2023-05-12 15:11:48 +01:00
Matt Aitken 46c1d2484a PageHeader supports a title, back and set of buttons 2023-05-12 15:11:48 +01:00
James Ritchie c9e402be57 Updated all buttons to use the new component props and children 2023-05-12 14:45:17 +01:00
James Ritchie cfb9fffb47 Better storybook layout for buttons 2023-05-12 14:45:17 +01:00
James Ritchie 9a531dd7f6 Improved the line height on the shortcut icno 2023-05-12 14:45:17 +01:00
James Ritchie 1f7b581208 Named icons inside buttons keep their specified colours 2023-05-12 14:45:17 +01:00
James Ritchie 7a474d45c6 Reformatted the button in Stories to take updated children 2023-05-12 14:45:17 +01:00
James Ritchie ea04d13a60 Shortcut icon style improvement 2023-05-12 14:45:17 +01:00
James Ritchie ec825ebb9d More button improvements 2023-05-12 14:45:17 +01:00
James Ritchie a873d6dfca Improved the image inside a button 2023-05-12 14:45:17 +01:00
James Ritchie fb687f3760 Added a button with an image inside 2023-05-12 14:45:17 +01:00
James Ritchie f00cf33c3a Fixed Storybook tailwind 2023-05-12 14:45:17 +01:00
James Ritchie 61a8768f9f Updated the buttons component inline with the designs 2023-05-12 14:45:17 +01:00
James Ritchie 07b4a4af73 Updated typography to use new bright/dimmed colours 2023-05-12 14:45:17 +01:00
James Ritchie 14e2829635 Added new colours to the config: “dimmed” and “bright” 2023-05-12 14:45:17 +01:00
James Ritchie 23d721a5ed WIP setting up the app buttons 2023-05-12 14:45:17 +01:00
Matt Aitken 8dc78776b3 Added breadcrumb to the nav 2023-05-12 14:14:38 +01:00
Matt Aitken 722b4b8e2d BreadcrumbIcon 2023-05-12 14:10:27 +01:00
Matt Aitken 260ed6ed8c Created MainContainer 2023-05-12 14:10:17 +01:00
Matt Aitken 4710e31c45 Added slate-650 2023-05-12 14:09:26 +01:00
Matt Aitken a1585dfa17 Hide the project menu on the Organization list page 2023-05-12 13:49:02 +01:00
Matt Aitken 34dfedd2e0 Use the pathBuilder for org/project paths 2023-05-12 13:17:36 +01:00
Matt Aitken f08c4e2354 Move path building to a file so we don’t have lots of them floating around 2023-05-12 13:17:21 +01:00
Matt Aitken 482760aeed Added a todo to the ProjectsMenu 2023-05-12 12:52:49 +01:00
Matt Aitken 5814b60370 Project menu functionality 2023-05-12 12:14:31 +01:00
Matt Aitken 21c2a7da25 Popover style with arrow 2023-05-12 11:00:26 +01:00
Matt Aitken d7e32348ee Logic for the ProjectsMenu working 2023-05-12 09:17:42 +01:00
Matt Aitken e0a824cf40 Removed useMatches log 2023-05-11 17:18:09 +01:00
Matt Aitken a85509ea80 Stripped out more old files, updated env vars file 2023-05-11 17:13:14 +01:00
Matt Aitken 5193fe0775 Updated routing to v2 2023-05-11 16:44:12 +01:00
Matt Aitken 6078d15aa1 Upgraded Remix, using new Tailwind compilation 2023-05-11 15:56:46 +01:00
Matt Aitken d6622accce Removed Nango 2023-05-11 15:31:31 +01:00
Matt Aitken 9805721498 Updated Remix packages 2023-05-11 15:10:29 +01:00
Matt Aitken 8f9a5e7009 More updated files 2023-05-11 15:04:04 +01:00
Matt Aitken 37bae77faa Deleted more old stuff 2023-05-11 14:59:52 +01:00
Matt Aitken cca8c60fbf Lots of compile fixes and deleted old stuff 2023-05-11 14:55:09 +01:00
Matt Aitken a30cc3332a Fixed some compile errors 2023-05-11 13:43:52 +01:00
Matt Aitken 77046470ea Added optional chrome to the CodeBlock 2023-05-11 13:43:42 +01:00
Matt Aitken 27c9e63e46 Fancy animated code highlight 2023-05-11 11:50:22 +01:00
James Ritchie ebe1fb516c More typography improvments 2023-05-11 11:49:14 +01:00
James Ritchie 5fda10806d Fixed tailwindMerge to work with the additional xxs font size 2023-05-11 11:49:14 +01:00
James Ritchie 92a8927162 Added more styles to Storybook 2023-05-11 11:49:14 +01:00
Eric Allam bcbb63f585 Removed trigger variants (moving to dynamic triggers instead) 2023-05-11 11:34:11 +01:00
Matt Aitken c67a465e3e Example of a CodeBlock that changes the highlighted range using buttons 2023-05-11 11:25:03 +01:00
Matt Aitken 83b79610af Line highlighting now takes ranges 2023-05-11 10:50:57 +01:00
Matt Aitken 4fa3ea2491 Improved size of clipboard icon 2023-05-11 09:48:06 +01:00
Matt Aitken 7a4742a314 Made inline code sky blue 2023-05-11 09:48:06 +01:00
Matt Aitken b24df76fca Started refactoring the index page 2023-05-11 09:48:06 +01:00
Matt Aitken 9e30d7a117 Tooltip story and created SimpleTooltip 2023-05-11 09:48:06 +01:00
Matt Aitken 789fab5b96 Added extension to the Tailwind merge plugin 2023-05-11 09:48:06 +01:00
Matt Aitken 07fa597755 Deleted old template presenters 2023-05-11 09:48:06 +01:00
Matt Aitken 62dd433de4 Zod is only being used as a type 2023-05-11 09:48:06 +01:00
Matt Aitken 713e85347c Cleaned up some hooks 2023-05-11 09:48:06 +01:00
Matt Aitken 13c2ba7dcd Deleted cloud projects folder 2023-05-11 09:48:06 +01:00
Matt Aitken 9b4d4090d7 Moved more components 2023-05-11 09:48:06 +01:00
James Ritchie f662e02cb1 Added a new xxs font size 2023-05-11 09:20:58 +01:00
Matt Aitken 35fce5a89d Inline code style updated and created a story 2023-05-11 08:38:14 +01:00
Matt Aitken 39bbf108a3 Updated more old components 2023-05-11 08:31:45 +01:00
Matt Aitken b1cf4cc042 Created a form story 2023-05-10 19:37:56 +01:00
Matt Aitken c24faa2e52 Delete old Copy buttons 2023-05-10 19:37:56 +01:00
James Ritchie 777f38a5ee Added new heading and paragraph styles 2023-05-10 19:03:18 +01:00
James Ritchie a79eb76fa9 Removed Poppins font from the import 2023-05-10 19:03:18 +01:00
Matt Aitken 22c3584988 One liner code looks good too 2023-05-10 18:46:07 +01:00
Matt Aitken 85f7ad871d You can set the max lines to display on a CodeBlock 2023-05-10 18:44:15 +01:00
Matt Aitken bfac524c75 Getting the copy button to work well 2023-05-10 18:20:30 +01:00
Matt Aitken 2a93c10828 Set the default language to TypeScript 2023-05-10 17:45:54 +01:00
Matt Aitken 833c509606 CodeBlock working well, except syntax highlighting is broken somehow 2023-05-10 17:44:49 +01:00
Matt Aitken 1b010571c9 CodeBlock is working with the @mantine/prism package 2023-05-10 15:39:40 +01:00
Matt Aitken 2765fe12cd Tidied up more old components 2023-05-10 08:44:45 +01:00
Matt Aitken 6f35b2e17d Merge pull request #123 from alexdanilowicz/patch-1
Fix storybook root alias by removing trailing slashes
2023-05-10 10:43:52 +03:00
Alex Danilowicz 35261ffc75 Fix storybook root alias by removing trailing slashes 2023-05-09 11:57:18 -07:00
Matt Aitken 60309677fe Deleted a ton of old components, started tidying things up 2023-05-09 18:50:46 +01:00
Matt Aitken 1f1cf0cb74 Added Storybook to turbo so you can call it from the root folder 2023-05-09 15:04:30 +01:00
Matt Aitken 0a1d3ed5ef Removed generate-integrations 2023-05-09 14:42:38 +01:00
Matt Aitken ab46981182 Updated pnpm-lock from the q2 branch 2023-05-09 14:36:38 +01:00
Matt Aitken b0f609dc15 Merge pull request #122 from Teddarific/teddy/storybook
Adding a component playground via Storybook
2023-05-09 16:34:41 +03:00
Matt Aitken 7ee305dfc6 Merge branch 'dev-q22023' into teddy/storybook 2023-05-09 16:34:30 +03:00
Matt Aitken 3f51835bea pnpm-lock.yaml from the q2 branch 2023-05-09 14:33:42 +01:00
Eric Allam 0a7ad96dcc Variants working in the new internal job system 2023-05-05 16:46:38 +01:00
Eric Allam 6d7f20b527 Moved over external source preparing and handling events into the internal job system 2023-05-05 16:09:42 +01:00
Eric Allam 8b7d847291 Added job queue system (needed for internal jobs but useful for our users as well) 2023-05-05 12:34:14 +01:00
Eric Allam c77dfae653 WIP new internal job system 2023-05-04 21:18:19 +01:00
Eric Allam 3e87e832c7 WIP trigger variants 2023-05-04 10:06:06 +01:00
Eric Allam eb83f941d2 Fixed Connection generic 2023-05-02 14:59:43 +01:00
Eric Allam b1a6ada443 Implement GitHub oauth and add it to the github integration 2023-05-02 13:53:37 +01:00
teddarific dc3306fb95 Lock file update 2023-05-01 11:01:02 -07:00
Alex Danilowicz faaaf253b2 Merge pull request #2 from Teddarific/alex/storybook
Clean up storybook gitignore
2023-05-01 10:58:23 -07:00
alexdanilowicz 2242ca3bf0 Cleanup gitignore 2023-05-01 10:53:40 -07:00
teddarific 258eda5bdb Storybook 2023-05-01 10:26:30 -07:00
teddarific 95ed5bacaa Initial implementation 2023-05-01 10:11:19 -07:00
Eric Allam a87fd6d4bd Create a single ApiCatalog (and keep the Api naming consistent) 2023-04-29 17:27:06 +01:00
Matt Aitken ea6bb4b467 Added a badge to indicate the name of the authentication method 2023-04-28 21:36:37 +01:00
Matt Aitken eb5d960f3a Use pointers to get data from token, support different scope param name 2023-04-28 21:30:57 +01:00
Matt Aitken 844c99ddc7 Split Slack into two separate auth methods. Added UI support for this with a popover. 2023-04-28 21:11:18 +01:00
Matt Aitken 232b9e97eb Added the User/Bot badges to the scopes list 2023-04-28 18:39:32 +01:00
Matt Aitken c288397048 Added Shadcn Badge component 2023-04-28 18:39:23 +01:00
Matt Aitken 7ec084c1a9 Added scope annotations to Slack 2023-04-28 18:29:11 +01:00
Matt Aitken b37d2a0ea2 Improved the NamedIcon to use an object and not use the API Store 2023-04-28 18:29:11 +01:00
Eric Allam 26d537867e Integrate with the new ApiConnection system to authenticate with Slack using OAuth 2023-04-28 16:44:52 +01:00
Matt Aitken c98ec1f1a8 Deal with APIs that reuse AccessTokens (like Slack)
- Re-use the same SecretReference and the actual stored secret
- Update any existing ApiConnections that are using the existing AccessToken
2023-04-28 15:27:33 +01:00
Matt Aitken ed0bc153da Added some js-doc annotations explaining when to use database secret store 2023-04-28 13:59:04 +01:00
Eric Allam 7ec4584d71 Added slug to ApiConnection (and renamed APIConnection to ApiConnection) 2023-04-28 13:49:19 +01:00
Eric Allam d75ee3a3dd 6 layers of child tasks 2023-04-28 09:30:18 +01:00
Matt Aitken ad722f1c8c Created Paragraph component with variant functionality 2023-04-27 18:30:38 +01:00
Matt Aitken 5ed5e8352d Getting credentials (with refreshing) 2023-04-27 17:28:40 +01:00
Eric Allam 51dd20424c Implemented subtasks 2023-04-27 17:25:19 +01:00
Eric Allam 1bba822e20 Added projects, moved envs to projects, and renamed executions to runs 2023-04-27 13:50:22 +01:00
Matt Aitken a119e79a49 Tokens are refreshing in a background job 2023-04-27 13:48:17 +01:00
Matt Aitken 52f9b16003 Added expiresAt column to the APIConnection table for refresh job 2023-04-26 19:31:20 +01:00
Matt Aitken 44dba712d1 Added Airtable 2023-04-26 18:17:57 +01:00
Matt Aitken e28a3566b6 Moved slack to its own file 2023-04-26 15:58:13 +01:00
Matt Aitken eb4f272d80 Add metadata and scopes to the connection 2023-04-26 14:43:50 +01:00
Eric Allam 3d38b95276 Continuing nextjs support, as well as moving event matching up to the server to support tasks that can wait for a trigger 2023-04-26 14:27:34 +01:00
Eric Allam 38e0460878 nextjs support WIP 2023-04-26 14:27:34 +01:00
Matt Aitken d8e29a9fa7 Added PKCE support (default on) 2023-04-26 11:58:42 +01:00
Matt Aitken fb36b68179 Setup the Shadcn styles, but not using CSS vars 2023-04-25 21:48:51 +01:00
Matt Aitken e14a2554ad Update Slack scope separator to be a comma 2023-04-25 19:52:17 +01:00
Matt Aitken b91a6548cb Delete credential file that was just a list of todos 2023-04-25 19:52:02 +01:00
Matt Aitken ee8aedea73 expires_in key fix 2023-04-25 18:04:04 +01:00
Matt Aitken 1fa39c875b Added scope description and use expiresIn for token payload 2023-04-25 18:03:39 +01:00
Matt Aitken 06741e14b7 db.server uses process.env directly 2023-04-25 14:26:46 +01:00
Matt Aitken 8e1929dbec Removed optional fields for Slack in app catalog 2023-04-25 14:26:39 +01:00
Matt Aitken 08abc86201 Token being stored correctly in the secret store with refresh and expire info where relevant 2023-04-25 14:08:28 +01:00
Matt Aitken 01a4ff387f The API connection icon is now visible 2023-04-24 18:35:23 +01:00
Matt Aitken cb026c51f3 OAuth connections are getting made and tokens are being stored 2023-04-24 18:34:09 +01:00
Matt Aitken 3fdb894296 Connection attempts are being created with redirects and errors 2023-04-23 15:29:07 -07:00
Eric Allam da0290e494 Adding support for connections, integrations, webhooks 2023-04-22 09:52:45 -07:00
Matt Aitken 5d081b2ef0 We’re now redirecting to the OAuth provider 2023-04-21 17:24:27 -07:00
Matt Aitken b087b5cdee More progress on oauth and started on the api UI 2023-04-21 16:00:25 -07:00
Matt Aitken cb18ee94bf WIP on oauth authorization 2023-04-19 21:05:46 +01:00
Matt Aitken 3142891b6a Stubs for authentication 2023-04-19 15:28:55 +01:00
Matt Aitken 7191697d70 Updated db schema for APIConnection and added Secret related tables 2023-04-19 15:27:42 +01:00
Matt Aitken 88f4ac7bc2 Added simple-oauth2 package 2023-04-19 15:24:39 +01:00
Matt Aitken fd9fc1f471 API store and stubs for the authentication service 2023-04-18 15:53:02 +01:00
Matt Aitken 3f6ee25fc4 First version of the info required to do OAuth2 for an external API 2023-04-18 13:42:54 +01:00
Matt Aitken c7c0f5e7f9 Removed fetch from the SDK 2023-04-18 11:45:26 +01:00
Eric Allam 98c8893046 WIP connections with authenticated tasks and http triggers 2023-04-06 16:15:17 +01:00
Eric Allam d0b8f827aa Implement better cursor pagination 2023-04-01 20:32:44 +01:00
Eric Allam d4eac626ec Removed ts in favor of ulid’s, and starting to implement the task list api #117 2023-03-31 16:38:30 +01:00
Eric Allam 43ca0b7e2a Implement sendEvent using the new Tasks API (#113 ) 2023-03-31 15:45:52 +01:00
Eric Allam 2d5c2394c8 Initial commit of the new serverless execution runtime 2023-03-31 14:32:00 +01:00
Eric Allam 746e4ae088 New serverless execution WIP 2023-03-23 20:35:56 +00:00
Eric Allam 1e12366e5a Merge pull request #81 from triggerdotdev/dev
Environment improvements
2023-03-23 10:37:41 +00:00
Eric Allam 98978a9992 Add a message about test events still working 2023-03-23 09:58:35 +00:00
Eric Allam d7dcb1bf61 Couple of copy tweats 2023-03-23 09:54:07 +00:00
James Ritchie 3bece03c7f Fixed ‘Configure connected github accounts’ button 2023-03-23 09:41:56 +00:00
James Ritchie 60fdde1919 Fixed the Request workflow and Integration typeforms on the integration page 2023-03-23 09:32:03 +00:00
James Ritchie c42d03a4a6 Made the copy text more obvious for the api key 2023-03-22 18:25:29 +00:00
James Ritchie 58a6ef436a Added a test page blank state 2023-03-22 18:19:45 +00:00
James Ritchie 3ab542b03f Small style improvements to the environments menu items 2023-03-22 17:47:40 +00:00
Eric Allam 2a760f1f2a Added conditional for test blank slate 2023-03-22 16:23:57 +00:00
Eric Allam 0a06e84350 Implement new env specific API key copy menu item 2023-03-22 16:20:27 +00:00
James Ritchie f2c07c1a31 Added a Testing message if you haven’t connected your workflow to Live yet 2023-03-22 16:14:36 +00:00
James Ritchie 829b851588 Small style tweak to the environments 2023-03-22 16:09:33 +00:00
James Ritchie 8f524f8c21 Style tweak to the environment banner 2023-03-22 15:44:50 +00:00
James Ritchie 0e2a7313c6 Toggle switch now clearer when disabled 2023-03-22 15:42:17 +00:00
Eric Allam 9ab7530070 Current environment is now workflow specific 2023-03-22 15:11:37 +00:00
Eric Allam f4833d3c1c Only show the “how to deploy cloud” section for enabled customers 2023-03-22 15:10:29 +00:00
Eric Allam 6d01f2ab0c Better logging when dispatching events 2023-03-22 15:10:29 +00:00
James Ritchie 6b5ebe79f4 Removed the Live and Cloud Deployed badges from the Workflows list 2023-03-22 12:20:50 +00:00
James Ritchie 83dece4617 Added a copy/paste api key button to the side menu of a workflow 2023-03-22 11:55:52 +00:00
James Ritchie 0b66a9ab37 Added API Keys into the Org menu if you don’t have a workflow 2023-03-21 13:01:30 +00:00
Eric Allam 4b50bf777f Prevent scheduled events from getting sent multiple times 2023-03-21 11:12:55 +00:00
Eric Allam 77a8505098 Don’t paginate logs 2023-03-21 11:12:55 +00:00
Eric Allam 1da4797835 Update server.ts 2023-03-21 11:12:55 +00:00
Eric Allam 410b282d38 Update zodPublisher to try and flush out retrying messages 2023-03-21 11:12:55 +00:00
Eric Allam 5d012a483d Prevent scheduled events from getting sent multiple times 2023-03-21 11:12:13 +00:00
Eric Allam 0feb793ce5 Don’t paginate logs 2023-03-21 11:11:33 +00:00
Eric Allam 26cccd15f9 Update server.ts 2023-03-20 23:40:09 +00:00
Eric Allam be4da5661e Update zodPublisher to try and flush out retrying messages 2023-03-20 23:03:08 +00:00
James Ritchie e5717080f2 Removed pulse animation from dropdown 2023-03-20 14:48:36 +00:00
James Ritchie de87d71e63 Made the enable workflow switcher disabled state more obvious 2023-03-20 14:05:52 +00:00
James Ritchie e93ecf4f8d Removed import 2023-03-20 14:05:23 +00:00
James Ritchie dae3edd3cd Mobile dropdown menus now work 2023-03-20 13:43:22 +00:00
James Ritchie af445a8f6d added padding to the public templates page 2023-03-20 13:16:51 +00:00
James Ritchie 02d114d6f0 Removed import 2023-03-20 12:59:18 +00:00
James Ritchie 8518531cf4 WIP added a new Cloud concertina panel to the Workflow Overview page 2023-03-17 17:29:33 +00:00
James Ritchie 192aad66b3 Moved up the API Keys page to the org level 2023-03-17 15:53:54 +00:00
James Ritchie 872b4a5e4d Added an environment disable/enable switcher to the side nav 2023-03-17 15:44:46 +00:00
James Ritchie 63a11f3f1b Added a Cloud Deployed badge to the workflows liist 2023-03-17 14:06:13 +00:00
James Ritchie 6d1bb15d46 Tools tips now takes Classname prop 2023-03-17 13:46:46 +00:00
James Ritchie aba95aaa04 Added a Live banner to the Workflows list 2023-03-17 13:46:22 +00:00
James Ritchie 338c0f0d4e Better organized the info on the repo settings screen 2023-03-16 19:40:55 +00:00
James Ritchie fd61a002a9 Moved the configure Github accounts button up to the top 2023-03-16 18:43:34 +00:00
James Ritchie fec7a0c96f Moved an if statement below the hooks 2023-03-16 17:28:15 +00:00
James Ritchie d06e9194c9 Removed the API keys from the org page 2023-03-16 16:56:11 +00:00
James Ritchie f8374783c1 Updated the layout of the Live overview page 2023-03-16 16:21:18 +00:00
James Ritchie 6f3be0138d Added the environment banner to the api key page 2023-03-16 16:13:02 +00:00
James Ritchie 15e527456d Moved API keys to their own page 2023-03-16 16:02:05 +00:00
James Ritchie 7d7e7ba078 Updated the colours for the environments (trying pink for dev) 2023-03-16 14:52:15 +00:00
D-K-P 1af020f8b8 Updated buttons from ‘grant access’ to ‘grant repo access’ 2023-03-16 14:20:30 +00:00
Eric Allam 79a1f5daea Set a max height on the KV step output 2023-03-15 16:29:57 +00:00
Eric Allam cee489025f Set a max height on the KV step output 2023-03-15 16:29:40 +00:00
Eric Allam e00a048afc Add new env vars to production env 2023-03-15 15:50:31 +00:00
Eric Allam 0ecebabd3f Add new env vars to production env 2023-03-15 15:50:12 +00:00
Eric Allam a9591ca396 Merge pull request #80 from triggerdotdev/dev
Technology Preview: Live repositories
2023-03-15 15:31:28 +00:00
Eric Allam db6be0f7cb Changeset: back to normal and cutting version @trigger.dev/sdk v0.2.22
- ab512157: Fixed an error message
- 1673d452: Added kv storage to persist data in between runs and between workflows
- 0b67b51a: Fix ESM error by dynamically importing ESM packages (chalk, terminal-link, etc.)
- f39bc44e: SDK now passes through the project ID from the env var
2023-03-15 15:05:43 +00:00
Eric Allam 683f24d4e4 Getting ready to update all templates to the newest SDK after it’s released 2023-03-15 15:05:43 +00:00
James Ritchie c4249d9e78 Made the progress icons on a deployment solid 2023-03-15 15:03:57 +00:00
James Ritchie e714b69896 Added the Refresh page button to a Pending workflow run 2023-03-15 14:56:51 +00:00
Eric Allam 378a7e390e Adding in good structured logging for the projects feature 2023-03-15 14:48:39 +00:00
James Ritchie 96a5ccd715 Fixed a layout issue with the main Org page 2023-03-15 14:25:41 +00:00
James Ritchie d3be9dc294 Fixed a bug with the layout on some pages 2023-03-15 14:23:35 +00:00
Eric Allam 3f60917d17 Disable scheduled triggers in development by default 2023-03-15 11:44:20 +00:00
James Ritchie 8430820faf Typo fixes in the custom event md files 2023-03-15 11:26:08 +00:00
D-K-P 7f5151dcf2 Added case sensitive comment to gh issues to slack 2023-03-15 11:13:44 +00:00
Eric Allam 8725a80d78 Better handle publishing messages to pulsar with a retry and better logging 2023-03-15 10:00:35 +00:00
Eric Allam fd85667515 Add UID to the workflow overview page to make my life easier 2023-03-15 09:05:17 +00:00
Eric Allam 16107fa5e6 Fixed staging webapp/wss CPU settings 2023-03-15 09:01:28 +00:00
Eric Allam ec727646fe Try out 2 min instances on staging 2023-03-15 08:59:47 +00:00
Eric Allam a7f4362a8b Unsubscribe from run command responses when a run is complete 2023-03-15 08:58:04 +00:00
James Ritchie 7c5d97c603 Uppercased a word 2023-03-14 22:11:19 +00:00
D-K-P f7850c14f9 Added more instructions to the Notion readme 2023-03-14 22:02:22 +00:00
James Ritchie a4813fe141 Changed the dev env colour back to green 2023-03-14 21:35:20 +00:00
Eric Allam 5e45309b81 Add the fixed live TRIGGER_API_KEY to project settings 2023-03-14 21:09:39 +00:00
Eric Allam 5f0cebc879 Don’t accidentally re-enable a disabled workflow if it’s registered again 2023-03-14 21:03:30 +00:00
James Ritchie 122020e66b added an environment banner to the top of every workflow page 2023-03-14 19:00:05 +00:00
Eric Allam c166ca6aa5 Show deploy logs when stopped and stopping 2023-03-14 18:49:00 +00:00
Eric Allam 7bbe42935e Got typecheck to pass 2023-03-14 18:46:25 +00:00
Eric Allam decb17c1ab Improve blank state copy (thanks to GPT-4) 2023-03-14 18:42:09 +00:00
Eric Allam 61246dcfb4 Filter out undefined steps after the Promise.all returns 2023-03-14 18:36:40 +00:00
Eric Allam 9625258394 Only show the environment picker on the workflow side menu 2023-03-14 18:27:44 +00:00
James Ritchie c051aa284a Moved the environment dropdown into the sidebar 2023-03-14 17:04:27 +00:00
Eric Allam b605ecdaaa Add sentry to WSS 2023-03-14 16:05:34 +00:00
James Ritchie 27d8742829 Fixed a Safari bug with missing arrow 2023-03-14 15:05:42 +00:00
Eric Allam 7cb350e37b Show last 3 deploys on project overview, and move deploys above workflows 2023-03-14 14:55:12 +00:00
James Ritchie e400d2f1fb Improved the header on mobile 2023-03-14 14:35:16 +00:00
Eric Allam 221370ba9e Fixed issue with handling installation.deleted github events 2023-03-14 14:32:50 +00:00
Eric Allam a446367514 Better handle redelivering messages instead of swalloing them up 2023-03-14 14:26:24 +00:00
James Ritchie 50e6d37780 Fixed 2 broken login links 2023-03-14 14:23:31 +00:00
James Ritchie 4803ad3c9a Small UI update to the Build logs layout 2023-03-14 14:18:24 +00:00
Eric Allam 7db68764ac Structure debug logs and retry workflow registration up to 4 times 2023-03-14 13:57:25 +00:00
Eric Allam ef48592a73 WorkflowRunSteps can be created in an “incomplete” state, so let’s not throw an exception when in that state 2023-03-14 12:43:31 +00:00
Eric Allam d0dd3d5acf Implement logout user tooltip 2023-03-14 11:55:51 +00:00
James Ritchie 0c74035a8f Added the username to the logout button and added a logout to the main org page 2023-03-14 11:50:59 +00:00
Eric Allam 213012b66e Implement repo blank state conditional 2023-03-14 11:27:45 +00:00
James Ritchie 2022d0ba56 Added a new state for connecting your github account to the main repo page 2023-03-14 11:16:09 +00:00
Eric Allam ae68825306 Decorate workflow registered logs 2023-03-14 10:51:32 +00:00
Eric Allam aa575b0d79 Better dockerfile 2023-03-14 10:21:50 +00:00
Eric Allam 4e83ef642d Update prerelease template deps script 2023-03-14 09:15:12 +00:00
Eric Allam e6740b5451 Remove org template code for when a workflow is created 2023-03-14 09:15:01 +00:00
Eric Allam 2e0a820518 Disable deploy buttons while the action is submitting 2023-03-13 20:46:35 +00:00
Eric Allam b5e47b7d60 Remove log logging 2023-03-13 20:28:14 +00:00
Eric Allam 3d328aeaaf Implement duration 2023-03-13 20:26:35 +00:00
Eric Allam 952fa6bc9e Handle deploying old templates with broken SDKs when built 2023-03-13 20:09:27 +00:00
Eric Allam 7d3bc03594 Allow admins to create as many projects as they wish 2023-03-13 20:09:27 +00:00
James Ritchie 19baf3f04a Updated link styling for logs blank state 2023-03-13 18:57:50 +00:00
James Ritchie 73d488f97d Added duration time to Deploy page 2023-03-13 18:54:02 +00:00
James Ritchie d6d8ca67a8 Tooltip modal colour fix 2023-03-13 18:42:24 +00:00
James Ritchie 9a93b0fee7 Fixed side nav height issue 2023-03-13 18:40:13 +00:00
James Ritchie 900eece37d Added Typeforms for request a workflow and integration 2023-03-13 18:36:52 +00:00
James Ritchie 20711ce4b2 Logout moved to the side menu 2023-03-13 17:55:20 +00:00
Eric Allam d9a43dc579 Implement the multiple hosted repo waitlist feature 2023-03-13 17:47:57 +00:00
James Ritchie f2aac62611 Small side menu width fix 2023-03-13 17:41:52 +00:00
James Ritchie 26d2392ac2 Added a cloud modal when trying to deploy a second repo 2023-03-13 17:30:57 +00:00
Eric Allam 64585b3393 Make sure repos can deploy if they are in error state 2023-03-13 17:00:17 +00:00
Eric Allam 58d919efdc Added build logs and make sure build logs are all captured 2023-03-13 16:37:18 +00:00
Eric Allam 5eeb275b32 Release template deps script 2023-03-13 15:33:23 +00:00
Eric Allam 629ee14b55 Show the latest commit in a project (even if it’s not deployed). Don’t deploy on pushes when all env vars haven’t been set 2023-03-13 15:33:23 +00:00
James Ritchie 113752e3e9 Showing a Spinner when new deploys are pending or building 2023-03-13 14:50:49 +00:00
James Ritchie 758fad8447 Removed the URL and made the Name a link instead 2023-03-13 14:29:10 +00:00
James Ritchie 3967befabd Added tooltip label to logo with a secondary nav 2023-03-13 14:17:55 +00:00
James Ritchie cbff0baf15 Fixed public page layouts 2023-03-13 13:36:30 +00:00
Eric Allam b0cccc059a Update lockfile 2023-03-13 13:36:14 +00:00
Eric Allam c879f48109 Better error message when trying to deploy an unsupported repository 2023-03-13 13:29:38 +00:00
Eric Allam fce52cee6b Changeset: prerelease next packages 2023-03-13 13:29:38 +00:00
James Ritchie aedf7e7295 Fixed layout of New Org page 2023-03-13 12:28:59 +00:00
James Ritchie c593132663 Reimplemented the impersonation banner 2023-03-13 12:23:45 +00:00
Eric Allam ff7bdd7619 Add cloud related env vars to staging env 2023-03-13 11:41:40 +00:00
Eric Allam c229fa31fc Setup posthog site feedback widget 2023-03-13 11:28:22 +00:00
James Ritchie 632f76cbb9 Added the Org nav to the Repo Coming Soon page 2023-03-13 11:27:12 +00:00
Eric Allam 5dae509aa9 Fixed up a bunch of nav issues 2023-03-13 11:22:54 +00:00
James Ritchie 1b902dabfa Updated the repository coming soon page 2023-03-13 11:01:38 +00:00
Eric Allam a1043a3b28 Added coming soon page for the cloud hosting 2023-03-13 10:35:19 +00:00
James Ritchie 22c682bf4c Added a new Org side menu 2023-03-13 10:29:04 +00:00
Eric Allam 0b67b51ae4 Fix ESM error by dynamically importing ESM packages (chalk, terminal-link, etc.) 2023-03-12 20:35:57 +00:00
Eric Allam 1673d4527a Added KV store feature 2023-03-12 20:12:18 +00:00
James Ritchie 5e762a9cbf Moved request integration button to top right of page 2023-03-12 10:26:27 +00:00
Eric Allam 406be0107e A couple side menu fixes 2023-03-11 21:16:30 +00:00
James Ritchie 4ab4174cb2 Improved the layout of the settings page 2023-03-11 18:35:54 +00:00
James Ritchie 78e6ed9bfc Added some messaging for blank states 2023-03-11 18:27:31 +00:00
James Ritchie f813e59b0c Improved the state if you haven’t granted access to github yet 2023-03-11 18:16:26 +00:00
James Ritchie 2992a855f9 Added active states to the collapsed side menu 2023-03-11 17:53:28 +00:00
James Ritchie f172a0ee1a Added titles on hover for the compact menu 2023-03-11 17:38:15 +00:00
James Ritchie 3c74e4f5f6 organized imports 2023-03-11 17:38:04 +00:00
James Ritchie bf4eefe4fd Long titles now ellipsis in the menu header 2023-03-11 17:13:21 +00:00
James Ritchie 2e81d6fe20 Fixed page layouts when they have the secondary nav in them 2023-03-11 17:07:43 +00:00
James Ritchie 77f243a14a Fixed the app layout width 2023-03-11 16:37:46 +00:00
James Ritchie 4245c21248 Added a section title to the side menu 2023-03-11 16:37:35 +00:00
James Ritchie e6d276de03 Added a title to the top of the nav 2023-03-11 16:13:26 +00:00
Eric Allam 3c09c1704d Add single run API endpoint 2023-03-11 15:40:01 +00:00
Eric Allam 0e3c3a78d7 Add single run API endpoint 2023-03-11 15:39:34 +00:00
Eric Allam fa28005f40 Move around stuff for the new nav structure 2023-03-11 15:33:03 +00:00
Eric Allam 3a956c2718 Add runs JSON endpoint 2023-03-10 18:41:10 +00:00
Eric Allam a21e9e9838 Fixes an issue where the trigger workflow ttl guard was preventing workflow runs from resuming after being disconnected 2023-03-10 18:41:10 +00:00
Eric Allam c109a9f31c Add runs JSON endpoint 2023-03-10 18:38:46 +00:00
James Ritchie c1dd5e92fe Moved the github connect button to top right 2023-03-10 18:25:26 +00:00
James Ritchie 441183975c Updated the select repo page 2023-03-10 18:23:30 +00:00
Eric Allam 0f9c0a8d06 Improve the select repo experience a little bit 2023-03-10 17:58:32 +00:00
Eric Allam 5beba8f12e Fixes an issue where the trigger workflow ttl guard was preventing workflow runs from resuming after being disconnected 2023-03-10 17:58:32 +00:00
James Ritchie 9b7102605f Fixed the create new workflow page layout 2023-03-10 17:10:12 +00:00
James Ritchie 0618cd0d7a Improved the visibility of the copy CLI text button 2023-03-10 17:09:59 +00:00
James Ritchie bc7f11fb57 Improved the API Key messaging 2023-03-10 17:06:15 +00:00
James Ritchie 19d731eebb removed unused imports 2023-03-10 16:53:32 +00:00
James Ritchie e2b183bd96 Added better buttons to the header 2023-03-10 16:53:11 +00:00
James Ritchie 80709c5415 Improved button focus states 2023-03-10 16:52:54 +00:00
James Ritchie 22e3c7f5f2 Fixed height of AppBody 2023-03-10 16:38:37 +00:00
James Ritchie 843231c410 WIP Improving the side navigation for the app 2023-03-10 16:13:40 +00:00
James Ritchie 1a33bdd3ae Updated the side menu - removed redundant items 2023-03-10 16:13:40 +00:00
Eric Allam c0300c6bec Deal with project settings and environment vars, and disabling projects 2023-03-10 15:43:40 +00:00
James Ritchie bffa5ef0e2 Improvements to the Logs page 2023-03-09 18:52:31 +00:00
James Ritchie 4e95232d59 improved the markup for the deploy page info panel 2023-03-09 18:40:32 +00:00
James Ritchie ca64356f12 Select repo now has a state for ‘relevant’ 2023-03-09 18:38:25 +00:00
James Ritchie c2c1b0feb4 Improvement to the repo page 2023-03-09 16:30:06 +00:00
James Ritchie 57afaf1995 Improvements to the repo details panel 2023-03-09 16:05:27 +00:00
Eric Allam 4c965ed5a2 Fixed issue with pending project endlessly revalidating 2023-03-09 16:01:03 +00:00
James Ritchie 0462141e1b Improvements to the Overview and deploy pages 2023-03-09 15:52:29 +00:00
Eric Allam ce39397c57 Better format log dates 2023-03-09 15:39:07 +00:00
Eric Allam 55cb81f7af Implement the log page along with the log links 2023-03-09 15:31:38 +00:00
James Ritchie f7a4e69025 status icon improvements 2023-03-09 14:23:38 +00:00
Eric Allam 55ac0019b7 Couple tweaks to the logs 2023-03-09 14:22:35 +00:00
Eric Allam b87a3dd2ba More logging work and buttons for stoppping or cancelling a deployment 2023-03-09 14:02:03 +00:00
Eric Allam 41c751c081 Changing on logs are polled, and now polling for build logs as well 2023-03-09 14:01:28 +00:00
Eric Allam 1f34a22bd8 Update how we poll for logs and add build logs back in 2023-03-09 14:01:28 +00:00
James Ritchie 10ef03eee0 Coloured the log red if it’s an error 2023-03-09 13:17:33 +00:00
James Ritchie bef6de13db Added a new logs table 2023-03-09 13:10:29 +00:00
D-K-P bd356663cc Removed .dev from Acme 2023-03-09 11:53:01 +00:00
James Ritchie 1670c3e19b Compressed the info in the overview panel 2023-03-09 11:03:35 +00:00
James Ritchie aa35555356 Added a Stop button 2023-03-09 10:48:18 +00:00
James Ritchie 1520be20c4 Added a view build logs with disabled property 2023-03-09 10:33:03 +00:00
James Ritchie 9cd49a40d5 Show spinner if status is deploying, pending, building. Also added live reload indicator 2023-03-09 10:17:21 +00:00
James Ritchie d27f11e26c More status colour updates 2023-03-09 09:51:17 +00:00
James Ritchie 9aff64183b Updated status colours 2023-03-09 09:48:49 +00:00
James Ritchie 5e32c8498b New layout for the deployment page 2023-03-09 09:42:11 +00:00
Eric Allam bd2f2d442d Implement the select repo grouping by gtihub account 2023-03-09 09:11:27 +00:00
James Ritchie 328ff206d7 Updated deployListStatus 2023-03-09 09:07:25 +00:00
James Ritchie 774a0fe9e3 Added a Header 2023-03-08 20:52:23 +00:00
James Ritchie 3eb76739cc Added type=submit 2023-03-08 20:52:05 +00:00
James Ritchie f00f6ae1bd Improvements to the deployment overview page 2023-03-08 20:32:52 +00:00
James Ritchie 7798c0166d Added a set of icons, loading indicators and titles to use for the deployment status 2023-03-08 20:28:02 +00:00
James Ritchie 9c63687d56 Initial clean up of the deploy page 2023-03-08 20:28:01 +00:00
Eric Allam 28cad34c5f Deployment logs 2023-03-08 18:19:07 +00:00
James Ritchie 86d345bffc Improved the layout for the list of github repos 2023-03-08 15:07:15 +00:00
James Ritchie 9cdab61eaf Showing a conditional state if you have no repos connected yet 2023-03-08 14:00:37 +00:00
James Ritchie 48b35c47b4 Improvements to the Repository list 2023-03-08 13:00:57 +00:00
Eric Allam 349d7f38cc Added deploy and project list (live WIP) 2023-03-07 22:13:37 +00:00
Eric Allam 7cbc279407 Manual deploy and added a deployment version number 2023-03-07 16:24:32 +00:00
Eric Allam 301d500c3d Fixing the re-exporting of routes 2023-03-07 15:37:55 +00:00
Eric Allam 4150ba8786 If a repo is already in a project, then just link to it from the select repo page 2023-03-07 15:19:43 +00:00
Eric Allam f39bc44eec Projects
- Deploy a new VM when a push event comes through
- Live updating project overview page
2023-03-07 15:12:42 +00:00
Eric Allam 4fabd481e6 The repos that are included in a workflow are the most relevant repos 2023-03-07 15:12:42 +00:00
D-K-P a374338ac5 Added repo rename instructions to gh issues to slack / gh stars to slack 2023-03-07 10:05:33 +00:00
D-K-P a7337478d0 Added Resend queue jump instructions to the readme 2023-03-07 10:03:58 +00:00
James Ritchie a7b37e9f7b impersonate banner style fix 2023-03-03 15:14:35 +00:00
James Ritchie 48e0cff123 Lots of improvements to the app layout behaviour
Main improvements:

- You can have different footer if logged in or out
- Footers aren’t fixed to the bottom of the page if logged out
2023-03-03 15:14:35 +00:00
James Ritchie 8a4cc312a1 Templates and overview pages now viewable on logged in mobile 2023-03-03 15:14:35 +00:00
Eric Allam f008f803b8 Updating github app configuration works, and paginating all repos for an installation as well, and displaying a list of repos to deploy 2023-03-03 14:35:43 +00:00
Eric Allam b43224c353 Upgrade to remix v1.11.0 for streaming and defer support 2023-03-03 14:35:43 +00:00
Eric Allam 8bb9798ff4 Fire off an app installation callback 2023-03-03 14:35:43 +00:00
James Ritchie 86ae6f927a Fixed safari bug where h-full was shunting content off the screen 2023-03-03 11:53:35 +00:00
Eric Allam c0693ac508 Cleanup old github app stuff and octokit and prepare for installing new github app for cloud 2023-03-03 11:13:07 +00:00
Eric Allam ab512157a5 Added ability to patch all template repos and push the changes 2023-03-03 08:34:15 +00:00
Eric Allam 86475d4e3c Changeset: version (@trigger.dev/sdk v0.2.21) 2023-03-02 22:31:44 +00:00
Eric Allam c5084209eb Fix for metadata capture when using npm/yarn 2023-03-02 22:30:43 +00:00
Eric Allam eada69040c Bump notion 2023-03-02 22:30:43 +00:00
Eric Allam 6deabb21ba Bump notion 2023-03-02 22:30:43 +00:00
James Ritchie 2bb324752e Removed the Product Hunt Banner but kept it commented out for later 2023-03-02 18:05:59 +00:00
Eric Allam 174954511e Changeset: version (fixing integration package versioning) 2023-03-02 15:36:56 +00:00
Eric Allam 408bd6ddc8 Added a script to automatically update template repo @trigger.dev packages instead of having to do it manually 2023-03-02 15:34:53 +00:00
Eric Allam 1789d9d215 Use the caret semver for the SDK in all the other packages 2023-03-02 14:44:33 +00:00
Eric Allam f3ac17ad91 Use caret constraint for the sdk in airtable as well 2023-03-02 13:27:19 +00:00
Eric Allam 71d78805e7 Use a caret constraint for the SDK to prevent updating integration dependencies when the SDK bumps a minor version (github only) 2023-03-02 12:43:13 +00:00
Eric Allam 3012771a21 Remove unused argument 2023-03-02 12:29:56 +00:00
Eric Allam 5ec7198046 Send additional metadata about a workflow when initializing the host 2023-03-02 12:29:47 +00:00
D-K-P 60cb8d54c4 Added tooltips to sidebar and org page 2023-03-01 18:47:31 +00:00
D-K-P 9d7186eba5 Added sendgrid template 2023-03-01 17:42:32 +00:00
D-K-P 5401fa1acb Added basic cron template 2023-03-01 14:18:32 +00:00
Matt Aitken 79f21fd94e Fix for bad documentation url in Notion spec 2023-03-01 13:47:14 +00:00
James Ritchie fa7ec12434 Added a Product Hunt banner 2023-03-01 12:54:52 +00:00
Matt Aitken c6a668a5f6 Set is constant 2023-02-28 20:52:34 +00:00
Matt Aitken dd786845b7 Removed curly bracket from the end of the combined schema 2023-02-28 20:32:30 +00:00
Matt Aitken 03e90ea48f Merge pull request #75 from triggerdotdev/dev
GitHub Issue to Notion template
2023-02-28 20:29:41 +00:00
Matt Aitken fee24168aa Revert "Added a save/cancel button for changing webhook secrets"
This reverts commit ce019c7b96.
2023-02-28 19:52:09 +00:00
Matt Aitken b344dfaaf8 Added the GitHub issue -> Notion template 2023-02-28 19:50:02 +00:00
James Ritchie ce019c7b96 Added a save/cancel button for changing webhook secrets 2023-02-28 18:19:22 +00:00
D-K-P 9a52afe1e2 Added new images for all the templates and increased their size on the template grid 2023-02-28 15:07:39 +00:00
Matt Aitken d67e429f23 Merge pull request #74 from triggerdotdev/dev
 New Integration: Notion API
2023-02-28 15:07:11 +00:00
Eric Allam 628726459a Added the supabase to loops template image 2023-02-28 15:04:44 +00:00
Matt Aitken 603c3953c6 Any action input that isn’t part of the params is put in the body 2023-02-28 14:27:55 +00:00
Matt Aitken 8a7795bd4d Don’t validate the action body 2023-02-28 14:27:55 +00:00
Matt Aitken 9202d3458a Added Notion production client id 2023-02-28 14:27:55 +00:00
Eric Allam fb98a4708f Added supabase to loops template 2023-02-28 14:07:04 +00:00
Matt Aitken b29039735b Fix for connection dropdowns only working for services (not the source) 2023-02-28 12:33:45 +00:00
Matt Aitken 4d5303b0ad Changeset version: @trigger.dev/notion@0.1.24 2023-02-28 12:33:45 +00:00
Matt Aitken c3f292a320 Changeset added: @trigger.dev/notion Far smaller SDK, by creating shared types 2023-02-28 12:33:45 +00:00
Matt Aitken cb414b448e Don’t generate intermediate schema 2023-02-28 12:33:45 +00:00
D-K-P 5ad6330868 Added discord > supabase image 2023-02-28 11:48:34 +00:00
Matt Aitken e8ee088f85 Generated Notion SDK 2023-02-28 11:13:45 +00:00
Matt Aitken 167b1d1db9 Generated Airtable 2023-02-28 11:06:44 +00:00
Matt Aitken a365b81915 Generated Sendgrid 2023-02-28 11:06:44 +00:00
Matt Aitken 697e8f930a Added Prettify to the inputs and outputs inline 2023-02-28 11:06:44 +00:00
Matt Aitken 0e0baa8af8 You can generate specific integrations now 2023-02-28 11:06:44 +00:00
Matt Aitken a82088c243 Autoreffer works deep to shallow so we get refs inside refs. Better auto-naming 2023-02-28 11:06:44 +00:00
Matt Aitken e4fc05924e Autoreffer now only refs after x occurences, works for string enums too 2023-02-28 11:06:44 +00:00
Matt Aitken b3a46212ee Generate the service and use the auto reffer, and output intermediate files for viewing 2023-02-28 11:06:44 +00:00
Matt Aitken dec790e4a3 AutoReffer improved 2023-02-28 11:06:44 +00:00
Eric Allam a146469d63 Fixed bug where a duplicate event ID would throw an error instead of returning a success 2023-02-28 09:35:19 +00:00
Matt Aitken e5a3bb8903 Automatically create references to de-duplicate objects 2023-02-27 23:12:45 +00:00
Matt Aitken b61b5054dc Type generator works with $refs 2023-02-27 23:12:35 +00:00
Matt Aitken b613f3bbfc Deal with undefined params where an endpoint has no input 2023-02-27 23:12:08 +00:00
Matt Aitken 800ae1d834 Added Notion to the list of packages 2023-02-27 23:11:53 +00:00
Matt Aitken d5d3786a97 Automatically set "Notion-Version" to "2022-06-28" so users don’t have to 2023-02-27 21:39:06 +00:00
Matt Aitken b90eeea1e8 Allow generating actions with some manipulation 2023-02-27 21:39:06 +00:00
Matt Aitken aa30013e05 Params go before body in the generated SDK 2023-02-27 21:39:06 +00:00
Matt Aitken eaf06638c3 Generating the docs and SDK now deals better with anyOf 2023-02-27 21:39:06 +00:00
Eric Allam 4834eabb9d Scroll restoration not working for some reason so need to do full reloads when going to a template page 2023-02-27 18:23:17 +00:00
Eric Allam 8aceb6418a Added supabase-to-discord template 2023-02-27 18:05:07 +00:00
Eric Allam da6062a20c Changeset: new version 2023-02-27 16:54:09 +00:00
Eric Allam b57241951b Fixed issue where default webhook schema wasn't being used which caused an error 2023-02-27 16:53:55 +00:00
Matt Aitken 6a1823b242 Installed packages 2023-02-27 15:12:45 +00:00
Matt Aitken 2ad039f867 Merge remote-tracking branch 'origin/integrations/notion' into dev
# Conflicts:
#	pnpm-lock.yaml
2023-02-27 15:12:17 +00:00
Matt Aitken 634ec6c1e3 Added Notion staging OAuth details 2023-02-27 15:11:38 +00:00
Matt Aitken a73ddb2dad Generated Notion SDK 2023-02-27 14:46:59 +00:00
Matt Aitken 0504667334 Combine allOf schemas before generating the types, much better results and docs 2023-02-27 14:46:41 +00:00
Matt Aitken 6d85eee0cd Generate the SDKs in sequence not parallel 2023-02-27 14:28:55 +00:00
Matt Aitken 1f43988ad9 Increased generate-integrations memory to 16GB… we need to optimise this at some point 2023-02-27 14:24:21 +00:00
Matt Aitken 0129cbb162 Generating docs works with allOf 2023-02-27 14:24:05 +00:00
Matt Aitken 0121e1b50d SDK input schema is now the merged object of params and body 2023-02-27 14:23:54 +00:00
Eric Allam 63b1c2237a Changeset: release new version 2023-02-27 14:03:29 +00:00
Eric Allam c72120eab0 Removed accidental log statement 2023-02-27 14:03:15 +00:00
Eric Allam 85ced7818f Merge pull request #72 from triggerdotdev/dev
Change from npm create trigger to npx create-trigger
2023-02-27 13:49:59 +00:00
Eric Allam 313b7163e8 Change from npm create trigger to npx create-trigger 2023-02-27 13:49:04 +00:00
Eric Allam 55eb81f219 Merge pull request #71 from triggerdotdev/dev
Onboarding improvements using the new create-trigger CLI
2023-02-27 13:07:30 +00:00
Eric Allam b0e64937a0 Changeset: new version 2023-02-27 13:04:15 +00:00
Eric Allam 3a2cf0ddb7 Fixed the missing error message when logging invalid API key and improved the error message 2023-02-27 13:03:14 +00:00
Matt Aitken 0f90ea9455 getComments and createComment 2023-02-27 13:01:27 +00:00
Matt Aitken 6d2217bd18 updateDatabase 2023-02-27 12:48:39 +00:00
Eric Allam 1579cdbfb2 Changeset: release new version 2023-02-27 12:11:58 +00:00
James Ritchie f1e81137b7 Improved the copy for how to trigger your workflow 2023-02-27 12:10:50 +00:00
Matt Aitken 0f51328979 createDatabase 2023-02-27 12:03:43 +00:00
Matt Aitken aea812f621 queryDatabase 2023-02-27 11:59:45 +00:00
Eric Allam 45b2bea39f Changeset: version next.3 2023-02-27 11:35:08 +00:00
Eric Allam 4f47d03114 Added changeset 2023-02-27 11:35:08 +00:00
Eric Allam 618cca3304 Validate the API key (to better work with the templates and the CLI) 2023-02-27 11:35:08 +00:00
Matt Aitken 4fe573b397 getDatabase 2023-02-27 11:32:21 +00:00
Matt Aitken d338b95e7e deleteBlock 2023-02-27 11:26:28 +00:00
Matt Aitken 2d9bdb26d4 appendBlockChildren 2023-02-27 11:23:24 +00:00
Matt Aitken b660a4c07f Update block and get block children 2023-02-27 11:16:41 +00:00
James Ritchie 5706c3ab52 Improved the API information link 2023-02-27 11:14:46 +00:00
James Ritchie e8c81cafb8 Improved some of the Template’s title copy 2023-02-27 11:14:46 +00:00
Eric Allam a0d062c977 Changeset: version next.2 2023-02-27 11:10:06 +00:00
Eric Allam 87a3bbee8e Added a more helpful message when adding an API key 2023-02-27 11:09:38 +00:00
Matt Aitken 65aa6e4e4c Get block endpoint 2023-02-27 09:26:28 +00:00
Matt Aitken 0432a64357 Update page endpoint 2023-02-27 09:19:28 +00:00
Eric Allam a5ff50f737 Implement new API key sidebar and a couple other various fixes 2023-02-26 22:15:49 +00:00
James Ritchie 763dd8b55a Improved the environment panel in the side menu to be clearer 2023-02-26 19:10:06 +00:00
Matt Aitken c2eea6c2b6 Added todos with remaining endpoints 2023-02-26 18:56:07 +00:00
Matt Aitken 81bbae977f Fix for endpoints that return void 2023-02-26 18:53:25 +00:00
Matt Aitken 37bd8f4952 Separated the bot endpoint response so it doesn’t mess the SDK generation up 2023-02-26 18:47:10 +00:00
Matt Aitken 20d6c6fdfb Added typecheck to integrations 2023-02-26 18:37:11 +00:00
Matt Aitken ebc45b7f8d Fix for typecheck error in services 2023-02-26 18:37:05 +00:00
Matt Aitken 77f146210a Fixed generating successful responses schemas 2023-02-26 18:36:58 +00:00
Matt Aitken 18cb9c6bec Fix for badly named file 2023-02-26 18:36:40 +00:00
Matt Aitken dfd4966cb0 Removed validation when doing requests, changed the way we select the success/fail on a response 2023-02-26 18:24:13 +00:00
Matt Aitken d7384bf481 Nock file for creating a page 2023-02-26 18:23:25 +00:00
James Ritchie 9e5c687174 Improvements to the Org page api keys 2023-02-26 18:04:10 +00:00
James Ritchie dcbb0f5287 small padding fix 2023-02-26 17:54:52 +00:00
James Ritchie d64cfe5add Widened the pages displaying the Template grid 2023-02-26 17:40:21 +00:00
James Ritchie 1fa52f1c8c Added padding back to the template cards 2023-02-26 17:40:00 +00:00
Matt Aitken f7dfc712b5 Added content-type to the createPage spec 2023-02-26 17:37:47 +00:00
Matt Aitken 1cfb93ada9 Remove validation of the request body and params 2023-02-26 17:29:43 +00:00
James Ritchie ea28f3dd47 Added installation instructions to the npm copy button for a template 2023-02-26 17:29:00 +00:00
James Ritchie 2c563ce998 Improvements to the Container component for mobile 2023-02-26 17:28:31 +00:00
Matt Aitken 7437d9fbd6 Create page test – this crashes Node because the schema is so massive… 2023-02-26 17:27:11 +00:00
James Ritchie 7dd0102579 Fixed the public template page on mobile 2023-02-26 17:08:29 +00:00
Matt Aitken 16c152ec26 Updated Notion Nock files 2023-02-26 17:05:02 +00:00
James Ritchie 01bc7df3e2 Template Overview page sticky left column now works 2023-02-26 16:51:37 +00:00
Matt Aitken 92d4008cc2 Notion specs updated by pointing at new generated schemas. Tests passing. 2023-02-26 16:50:57 +00:00
James Ritchie 6d4f71d22c Improvements to the template grid 2023-02-26 16:46:01 +00:00
Matt Aitken 2770df644b Imported dependencies and formatted Notion schemas 2023-02-26 16:33:21 +00:00
James Ritchie cc002ef707 Increased the width of the template overview side column so you can see more package info 2023-02-26 16:06:38 +00:00
James Ritchie f552af517b Removed redundant class 2023-02-26 15:58:57 +00:00
James Ritchie 8aff958bd3 Copy fix 2023-02-26 15:57:06 +00:00
James Ritchie ad189b1f4b Improved the scroll bars on modals 2023-02-26 15:54:48 +00:00
Matt Aitken 7bebf919e2 Fixed imports and formatted some of the files 2023-02-26 15:39:43 +00:00
James Ritchie e54ba7cbed Improved the Create workflow page and moved some info into a modal 2023-02-26 15:39:10 +00:00
Matt Aitken 4b6e21d6d4 Split Notion schemas into more sensible sized files 2023-02-26 15:32:22 +00:00
Matt Aitken 21d70821de Massive Notion schema from SDK 2023-02-26 14:38:17 +00:00
Matt Aitken a4d3f1b61c Massive generated schema 2023-02-26 14:37:08 +00:00
Matt Aitken 42e297474c Delete old schemas 2023-02-26 14:37:00 +00:00
Matt Aitken a40afd55d2 Output the schema refs when generating a schema 2023-02-26 14:34:04 +00:00
Matt Aitken 621254d0ab Fleshed out the specs some more 2023-02-26 13:26:15 +00:00
Matt Aitken 0ff568843d make functions turn properties into optional 2023-02-26 13:26:03 +00:00
James Ritchie 1d056b5328 Updated the org page styles 2023-02-26 12:26:31 +00:00
Eric Allam cf7c413c87 Combine the workflow onboarding into one component and obfuscate the api key 2023-02-24 22:16:53 +00:00
Eric Allam ac87a634a3 Add in the apiKeys in the orgs list page, obfuscated, and obfuscate them in the SideMenu as well 2023-02-24 22:09:30 +00:00
Matt Aitken 1bc9bc9244 getPage is working 2023-02-24 19:18:35 +00:00
Matt Aitken 2fea9e5a6c Use a test Notion workspace so I can test all the integration features 2023-02-24 19:12:43 +00:00
Matt Aitken 2756bfe073 Notion search is working and performance is good (when a schema is cached) 2023-02-24 19:05:19 +00:00
Matt Aitken 165ca9cb0f Option to measure performance of validation and compiling 2023-02-24 19:04:46 +00:00
James Ritchie c9e411be9b Simplified the info on the template cards 2023-02-24 18:51:38 +00:00
James Ritchie ee4e181fc3 Added ability to copy env vars from the Org page 2023-02-24 18:51:38 +00:00
James Ritchie f51f8f3ece Added more styles to the copy text panel 2023-02-24 18:51:38 +00:00
Matt Aitken 840435284b Using ajv to compile on-demand and validate using JSON Schemas 2023-02-24 18:48:03 +00:00
D-K-P 12f4f3bc68 Changed blank starter and hello world images 2023-02-24 18:02:21 +00:00
Eric Allam 894a5dcb5d Pass through command flags 2023-02-24 17:58:05 +00:00
Matt Aitken d65ef5eb87 If schema validation fails on prod and it’s a 2xx status, let it through as a success and log validation error 2023-02-24 17:49:41 +00:00
Matt Aitken 71007b5f60 Added Sentry to the integrations service 2023-02-24 17:49:02 +00:00
Eric Allam 3af9b63a9c Changeset: release next.1 version 2023-02-24 17:34:09 +00:00
Eric Allam 0932ae7d89 Log out when a run first starts, as well as completes 2023-02-24 17:32:13 +00:00
Matt Aitken 43250c444e Added Notion database schema (748 lines 😳) 2023-02-24 17:14:28 +00:00
Eric Allam 12056d888b Update the docs for the new create-trigger cli 2023-02-24 16:36:50 +00:00
Eric Allam 63e004594c No workflows in the blank starter 2023-02-24 16:20:25 +00:00
James Ritchie ec3e98ca9f Updated the Orgs with more distinct icons 2023-02-24 16:12:48 +00:00
Matt Aitken 0ccc6d3729 Search is working with pages, but not databases yet 2023-02-24 16:12:05 +00:00
Eric Allam f3ffffd50b implement the New Workflow page and add the api key to the command to copy for templates and the main one 2023-02-24 15:59:34 +00:00
Eric Allam e6550d156e Convert basic starter to hello world and added isLive to templates to filter out the existing basic starter 2023-02-24 15:29:27 +00:00
James Ritchie ae550df37d Updated the Workflows Overview page if you have no workflows 2023-02-24 15:25:45 +00:00
James Ritchie 26ac1fa57c CopyText ignores default and propagation clicks 2023-02-24 15:25:45 +00:00
James Ritchie 14031a8c6e Title component now accepts className 2023-02-24 15:25:45 +00:00
James Ritchie 719ef2a3a9 Improved the grid template styles 2023-02-24 15:25:45 +00:00
Matt Aitken e779cff42a New nock responses 2023-02-24 15:05:07 +00:00
Matt Aitken 0b3c3758a7 Switched to using oauth for Notion 2023-02-24 15:05:00 +00:00
Matt Aitken ab351cbc8e Merge remote-tracking branch 'origin/nango-upgrade' into integrations/notion
# Conflicts:
#	apps/integrations/package.json
2023-02-24 14:56:06 +00:00
Matt Aitken dd4fc8c262 Added search endpoint but the current auth token is giving no results back 2023-02-24 14:54:56 +00:00
Matt Aitken a55acb6296 More page types and fixed Notion tests 2023-02-24 13:33:46 +00:00
Eric Allam aa295134ff Changeset: prerelease the next version 2023-02-24 13:29:36 +00:00
Eric Allam b2f14cbea3 Make the SDK a patch 2023-02-24 13:29:08 +00:00
Eric Allam 26e69cb659 Added cli changeset 2023-02-24 13:15:49 +00:00
Eric Allam 51f9bc9d72 Added handy links to the SDK when logging information about the workflows 2023-02-24 13:15:49 +00:00
Eric Allam 74a6a21c35 Adding the create-trigger CLI package 2023-02-24 13:15:49 +00:00
Matt Aitken 4cae6fed63 Added a lot more schemas for the page 2023-02-24 12:51:31 +00:00
James Ritchie b69058bfcb Style tweaks 2023-02-24 12:17:00 +00:00
James Ritchie 1c5d8a4c0b Updated the template page to include the npm copy panel, link to repo and docs 2023-02-24 11:53:48 +00:00
Matt Aitken 28c70ab9d1 Upgrade to the latest Nango – this will require a manual server migrate and testing 2023-02-24 11:34:29 +00:00
James Ritchie 15ab35c816 Added a new copy npm install values to the template cards 2023-02-24 11:31:51 +00:00
James Ritchie 1218320492 Added a new copy panel 2023-02-24 11:30:41 +00:00
Matt Aitken 9d65a1a2c3 Schema for page 2023-02-24 09:55:18 +00:00
Matt Aitken fc3e85f93e Made userId user_id instead. WIP on getPage 2023-02-24 09:55:12 +00:00
James Ritchie 80373c6874 Removed file for old steps 1, 2, 3 2023-02-24 09:54:22 +00:00
James Ritchie 590dd688a9 Fixed max width 2023-02-24 09:50:19 +00:00
James Ritchie f739f49209 First workflow onboarding step is now Choose a Template 2023-02-24 09:49:43 +00:00
James Ritchie dabf26c2c9 Added a message to Test page to make it clearer how to run tests 2023-02-24 09:37:30 +00:00
Matt Aitken 8252f3ef86 Revert "Using generated schemas…"
This reverts commit 7d78089275.
2023-02-24 08:32:15 +00:00
Matt Aitken 7d78089275 Using generated schemas… 2023-02-23 20:27:19 +00:00
Matt Aitken 5ae21f28c3 Removed log from typescript-to-json-schema generator 2023-02-23 20:26:57 +00:00
Eric Allam 2614860862 Merge pull request #70 from triggerdotdev/dev
Hotfix: Fixed the issue with templates not deploying
2023-02-23 18:26:19 +00:00
Eric Allam 173f88dcad Fixed the revalidator in the useEffect deps array causing tons of requests 2023-02-23 18:23:37 +00:00
Matt Aitken c2d8934820 Generate Schema TypeScript from TypeScript Types file 2023-02-23 16:32:22 +00:00
Matt Aitken 2edff18a59 Tool to generate TypeScript JSONSchemas from TypeScript types working 2023-02-23 13:56:59 +00:00
Matt Aitken fc94c78109 Work on generating schemas from TypeScript files 2023-02-23 13:46:40 +00:00
Eric Allam ee20f9212f Make the schema an optional param for customEvent and webhookEvent 2023-02-23 12:33:51 +00:00
Matt Aitken 77a99c226d WIP on Notion schemas… pages are complex 2023-02-23 12:07:26 +00:00
Matt Aitken 50921f1307 makeStringSchema: you can set a string as a const 2023-02-23 12:07:08 +00:00
Matt Aitken 5445abeb9d Merge pull request #68 from triggerdotdev/dev
UX improvements to the workflow overview page
2023-02-22 19:34:02 +00:00
James Ritchie 566fb54615 Fixed generic webhook panel not showing when it was connected 2023-02-22 17:57:47 +00:00
Eric Allam 100edb8abd Don’t require dotenv, instead use it in the dev command 2023-02-22 16:21:04 +00:00
Matt Aitken 160ab22f70 Added getBotInfo endpoint 2023-02-22 16:06:24 +00:00
Matt Aitken 0cf3ebfae3 First two Notion endpoints working with API key 2023-02-22 14:58:47 +00:00
Eric Allam 8cb08b63d2 Recreate the original changelog for generated packages 2023-02-22 12:47:15 +00:00
Matt Aitken 8767403a44 Notion authentication setup and first endpoint, but not tested yet 2023-02-22 12:43:13 +00:00
Matt Aitken 5f1ac75044 The CLI now deals with oauth with no scopes 2023-02-22 12:42:44 +00:00
James Ritchie 4f21aaef97 Removed Intercom 2023-02-22 11:30:52 +00:00
James Ritchie 8272363069 Added absolute path for the integrations link 2023-02-22 11:03:08 +00:00
James Ritchie 3e32802fdf Warp example infisical cmd fixed 2023-02-22 10:50:47 +00:00
James Ritchie 3e1c1138e5 Fix for integrations server env variables not being loaded on local 2023-02-22 10:50:31 +00:00
Matt Aitken 7d1e64cb01 WIP on API.fetch support 2023-02-22 09:47:21 +00:00
Matt Aitken 08abf25fd9 Added base url to services, for use by fetch 2023-02-22 09:46:49 +00:00
Matt Aitken 9c9a4caa20 Merge pull request #66 from triggerdotdev/features/new-overview-page
Improved overview page
2023-02-21 22:26:13 +00:00
Matt Aitken 352b7f75ce Installed packages 2023-02-21 22:22:04 +00:00
Matt Aitken f0378fa874 Fix for incorrect types (after merge) 2023-02-21 22:21:51 +00:00
Matt Aitken 8de37d47bf Renamed new example package to @examples/generic-webhook 2023-02-21 22:16:37 +00:00
Matt Aitken 23376457e6 Merge remote-tracking branch 'origin/dev' into features/new-overview-page
# Conflicts:
#	pnpm-lock.yaml
2023-02-21 22:13:42 +00:00
James Ritchie 75589d3bae Reduced prominence of connect api message 2023-02-21 21:35:07 +00:00
James Ritchie 96c4f319e4 Label positioned better 2023-02-21 21:30:14 +00:00
James Ritchie 8587841ee4 Made the test button less prominent 2023-02-21 21:27:30 +00:00
James Ritchie 058afb40ce Copy improvement 2023-02-21 21:18:41 +00:00
Eric Allam dc058c8835 Remove webapp dep on integrations server 2023-02-21 21:15:20 +00:00
James Ritchie f80253ed1d typography improvements 2023-02-21 21:13:19 +00:00
James Ritchie 3e384ff18a Show better copy in the How to trigger your workflow panel 2023-02-21 21:05:12 +00:00
James Ritchie db9b03ca05 Link to the org integrations page 2023-02-21 21:04:17 +00:00
James Ritchie cc6adecfb4 Only show the Create workflow run panel if a workflow or non-test runs have happened 2023-02-21 20:43:46 +00:00
James Ritchie 841421bf76 Made the concertina panels open when relevant 2023-02-21 20:36:02 +00:00
Matt Aitken 0f75d15df6 Merge pull request #65 from triggerdotdev/dev
New integrations system
2023-02-21 20:06:17 +00:00
Matt Aitken f5ebde8ddb Changeset: release version 2023-02-21 16:27:10 +00:00
Matt Aitken da9e357b6d Added env vars to prod webapp 2023-02-21 16:23:18 +00:00
Matt Aitken cde0b7fcfe Increased the p-integrations resources 2023-02-21 16:21:50 +00:00
Matt Aitken 43f913e796 Prod flightcontrol for integrations 2023-02-21 16:14:54 +00:00
Matt Aitken 26ae66ad2a Add Airtable client_id for prod 2023-02-21 16:14:11 +00:00
Matt Aitken 88fe24ad67 Fix so integration requests can use api_key auth type 2023-02-21 15:53:25 +00:00
Matt Aitken da0ee481b8 Make staging webapp depend on integrations 2023-02-21 15:53:25 +00:00
Matt Aitken ff57a70a53 Added airtable to staging client ids 2023-02-21 15:53:25 +00:00
Matt Aitken 22ae2131a5 The internal CLI can now push API keys to Pizzly from our new integrations 2023-02-21 15:53:25 +00:00
Matt Aitken 5880d966ac serviceFetch basics working. Share some code with requestEndpoint 2023-02-21 15:53:25 +00:00
Eric Allam 9eeacee7c2 Fix: pass in the id from sendEvent through to the API call 2023-02-21 14:12:14 +00:00
D-K-P 6ced99fb02 Updated the healthcheck image 2023-02-21 13:12:14 +00:00
James Ritchie 28fb5d066f Updated the integrations link 2023-02-21 12:49:15 +00:00
James Ritchie 0d72b8e0c4 Added a custom webhook connection concertina 2023-02-21 12:47:51 +00:00
James Ritchie 547aab667d Added a custom plug icon 2023-02-21 12:47:20 +00:00
James Ritchie d744efdb26 Added a generic webhook example workflow 2023-02-21 12:47:07 +00:00
Matt Aitken 727a492e45 Don’t restrict access to /healthcheck 2023-02-21 12:12:28 +00:00
Matt Aitken 384752d36c Added generate script to integrations 2023-02-21 11:58:41 +00:00
Matt Aitken d699d38981 Changeset version – next: New integrations service compatibility 2023-02-21 11:51:13 +00:00
Matt Aitken 6b53aeb8c2 Changeset added: New integrations service compatibility 2023-02-21 11:49:55 +00:00
Matt Aitken b7ee8fd432 Revert "Changeset for new integrations service"
This reverts commit 5df5e30a7d.
2023-02-21 11:48:34 +00:00
Matt Aitken 8836aeae81 Latest pnpm lockfile 2023-02-21 11:46:24 +00:00
Matt Aitken 2748d9e9a6 Revert "Changeset version: created a pre-release 0.3.x"
This reverts commit 9e739a50b2.

# Conflicts:
#	apps/integrations/package.json
2023-02-21 11:45:17 +00:00
Matt Aitken f2a0f304af Removed @trigger.dev/sdk dependency from the integrations package.json 2023-02-21 11:43:01 +00:00
Matt Aitken 7659835541 Integrations docker frozen-lockfile again 2023-02-21 11:25:21 +00:00
James Ritchie 8862b563dd Added a “How to run your workflow” concertina 2023-02-21 11:22:35 +00:00
James Ritchie ed1c2da660 Added a permenant message about api connectiions 2023-02-21 11:22:13 +00:00
Matt Aitken 9e739a50b2 Changeset version: created a pre-release 0.3.x 2023-02-21 11:21:04 +00:00
Matt Aitken e4efed07e5 Improved changeset pre-release instructions and fixed a config issue 2023-02-21 11:20:47 +00:00
Matt Aitken 55644577ea no-frozen-lockfile 2023-02-21 11:17:01 +00:00
Matt Aitken 5df5e30a7d Changeset for new integrations service 2023-02-21 11:16:18 +00:00
Matt Aitken 43ceb44db9 Fixed Sendgrid version number 2023-02-21 11:16:03 +00:00
Matt Aitken 154294f86e Added more ignores to changeset config 2023-02-21 11:12:40 +00:00
Matt Aitken e20f7ba16a Installed packages 2023-02-21 11:12:35 +00:00
Matt Aitken be6954abf2 changeset config for generated-integrations 2023-02-21 11:00:17 +00:00
Matt Aitken 810996f26f Fix for type error with optional outpyt JSONSchema 2023-02-21 11:00:04 +00:00
Matt Aitken a7044511bb Doesn’t change the generated package.json file if it exists 2023-02-21 10:59:48 +00:00
Matt Aitken 0efbbece9e Changed version number for Airtable 2023-02-21 10:59:29 +00:00
Matt Aitken a38945ebcd Delete not-exported slack integration 2023-02-21 10:58:34 +00:00
James Ritchie a63ebd73fb Added a connection icon and fixed some concertina behaviour issues 2023-02-21 10:44:05 +00:00
Matt Aitken b34018eb17 Created integrations Dockerfile 2023-02-21 10:25:36 +00:00
Matt Aitken a6f9e1e35d Setup flightcontrol for integrations 2023-02-21 10:25:28 +00:00
Matt Aitken c7c5d407ef Added healthcheck 2023-02-21 10:25:00 +00:00
James Ritchie 0c6d98d353 Added margin between the sections 2023-02-21 10:19:16 +00:00
Matt Aitken f6ed5517c2 Merge branch 'features/new-integrations' into dev 2023-02-21 10:10:15 +00:00
Matt Aitken 4aae45ede2 WIP on integration.fetch 2023-02-21 10:09:56 +00:00
James Ritchie f969f03197 Now exporting the connection data for useConnectionSlots 2023-02-21 10:01:19 +00:00
James Ritchie cd8e85f85f Show hide the concertina panel for connecting the source 2023-02-21 09:29:50 +00:00
James Ritchie 3c27b3c40b Passed classnames props 2023-02-21 09:19:54 +00:00
Eric Allam df1f695f9b Merge pull request #64 from triggerdotdev/dev
The logo had a broken URL link in the marketing header + added infisical to package.json
2023-02-20 21:18:26 +00:00
Eric Allam 0a3b12d135 Make the private repo checkbox flipped to be public, and now it’s default private 2023-02-20 21:17:48 +00:00
Eric Allam aca332fffc Remove the testing instructions from the run local markdown 2023-02-20 21:09:27 +00:00
James Ritchie 350a60590d WIP adding a concertina menu to the main workflow panel 2023-02-20 18:24:06 +00:00
James Ritchie ad8a2f170a Improved the border style of the disconnected apis 2023-02-20 18:23:06 +00:00
D-K-P 67f6971601 Added github issues seed / md files 2023-02-20 17:49:59 +00:00
Eric Allam 695e4ca3f0 Split pulsar and the rest of the local docker services 2023-02-20 17:23:42 +00:00
D-K-P 4243b10683 Updated the template grid so it would preview on the signed in version better, and replaced the resend image 2023-02-20 17:10:52 +00:00
James Ritchie c9bd1812f4 Swapped over the workflow panel with the API panel 2023-02-20 17:10:18 +00:00
James Ritchie a117a3b534 APIs not connected get a red border treatment to make them stand out 2023-02-20 17:07:33 +00:00
James Ritchie 9e64f9d570 Copy changes to titles 2023-02-20 16:53:01 +00:00
D-K-P 823da44fb7 Added schedule healthcheck info 2023-02-20 16:21:32 +00:00
Matt Aitken a5a5dcbccb Generated SendGrid SDK 2023-02-20 15:35:09 +00:00
Matt Aitken e2693eb539 Removed $ref from SendGrid marketingContacts endpoint schema 2023-02-20 15:33:07 +00:00
Matt Aitken 036ffa7e5f Created marketingContacts endpoint 2023-02-20 15:23:52 +00:00
Matt Aitken 679ac99fad Added scopes to api_key authentication in the web app 2023-02-20 15:23:34 +00:00
Matt Aitken 9f6886c55b Added infisical config to the root 2023-02-20 13:45:28 +00:00
Eric Allam ad9089da57 Make sure only started runs are considered created 2023-02-20 13:43:58 +00:00
Eric Allam 9313adee12 Add the github access docs link and tweak copy 2023-02-20 13:29:07 +00:00
Matt Aitken 9bb8363643 Fix for typecheck issue 2023-02-20 13:27:11 +00:00
Matt Aitken 4e2fe3dcac Moved all presenters into the presenters folder 2023-02-20 13:25:46 +00:00
D-K-P 092b139d71 Added a second line to the github button on the template deploy page 2023-02-20 12:34:02 +00:00
Matt Aitken ab92e9515b Installed packages 2023-02-20 12:28:34 +00:00
Matt Aitken d4939c4e11 More fixes from mege conflict 2023-02-20 12:28:30 +00:00
James Ritchie ef3f075042 Added a missing noreferrer property 2023-02-20 12:26:01 +00:00
Matt Aitken c76d930f08 Fixing issues with service metadata 2023-02-20 12:22:32 +00:00
Matt Aitken 06f2fc3aeb Fix for bad import of WorkflowsPresenter 2023-02-20 12:12:13 +00:00
Matt Aitken 3cd4f2fb9f Merge remote-tracking branch 'origin/dev' into features/new-integrations
# Conflicts:
#	apps/webapp/app/env.server.ts
#	apps/webapp/app/models/integrations.server.ts
#	apps/webapp/app/models/organizationTemplatePresenter.server.ts
#	apps/webapp/app/models/templateListPresenter.server.ts
#	apps/webapp/app/models/templatePresenter.server.ts
#	apps/webapp/app/models/workflowListPresenter.server.ts
#	apps/webapp/app/models/workflowStartPresenter.server.ts
#	apps/webapp/app/models/workflowsPresenter.server.ts
#	apps/webapp/app/routes/__app/orgs/$organizationSlug/__org/index.tsx
#	apps/webapp/app/routes/__app/orgs/$organizationSlug/__org/workflows.new.tsx
#	pnpm-lock.yaml
2023-02-20 12:10:50 +00:00
D-K-P 8f011a5da3 Updated step 2 text so it’s clearer which route includes the repo templates 2023-02-20 11:59:50 +00:00
Eric Allam 067dbfc0cf Improved the template docs 2023-02-20 11:57:36 +00:00
Matt Aitken 8dfdfdb2fa Regenerated docs with default open on params 2023-02-20 11:52:08 +00:00
Matt Aitken 3b76574ef8 Make the params default open 2023-02-20 11:52:00 +00:00
Matt Aitken 3a0a6e491c Update SendGrid’s documentation 2023-02-20 11:48:48 +00:00
Matt Aitken 24203d1b8d Sanitize text for mdx (so we can display HTML tags on the page) 2023-02-20 11:48:37 +00:00
Matt Aitken 8da0f9ac01 Generated SendGrid SDK 2023-02-19 19:30:01 +00:00
Matt Aitken 011264865b Fixes for an optional body in the response 2023-02-19 19:29:52 +00:00
Matt Aitken 889d9910e2 SendGrid mailSend endpoint implemented 2023-02-19 19:18:23 +00:00
Matt Aitken 679239d9fc Added scopes to api_key authentication method 2023-02-19 19:18:08 +00:00
Matt Aitken 20d8493c3e Response body is optional 2023-02-19 19:17:56 +00:00
Matt Aitken fe598ff713 Add support for api_key authentication 2023-02-19 19:17:41 +00:00
Matt Aitken ac1354b71a Deal with validating when a schema is undefined or data is undefined 2023-02-19 19:17:27 +00:00
Matt Aitken 55f04d5d12 Fix for generateTypes test now we don’t format 2023-02-19 19:17:01 +00:00
Matt Aitken 3796ba5b07 Generated docs for Slack example and Airtable 2023-02-19 17:49:34 +00:00
Matt Aitken 86e1e7143f Generate docs with good support for oneOf and anyOf 2023-02-19 17:49:25 +00:00
Matt Aitken d32aa49020 output the response types 2023-02-19 17:27:38 +00:00
Matt Aitken 08338d15a5 Generate much nicer params 2023-02-19 17:09:46 +00:00
Matt Aitken 4b3c9b7230 Much better generated docs 2023-02-19 16:36:56 +00:00
Matt Aitken e84e43e4e1 Decent param field generation 2023-02-19 16:02:10 +00:00
Matt Aitken 584b12451d Started generating docs, with metadata first 2023-02-19 15:15:28 +00:00
Matt Aitken 0913a34174 Prepared code generation for docs 2023-02-19 14:58:41 +00:00
Matt Aitken e6d6bfced4 Newly generated SDKs using the new generator 2023-02-19 14:37:37 +00:00
Matt Aitken c7e926a8a9 Ignore missing patterns when linting 2023-02-19 14:36:09 +00:00
Matt Aitken 3ad8a0a5de Separate schema titles and descriptions so we get nice TypeNames and jsdocs 2023-02-19 14:35:58 +00:00
Matt Aitken 0d918e7bf6 Generate types by creating a combined schema 2023-02-19 14:35:27 +00:00
Matt Aitken 444996533f Deduplicated type definitions, but still has multiple interfaces 2023-02-19 13:48:51 +00:00
Matt Aitken 1b53ccbbac WIP on de-duplicating type definitions from generated SDK 2023-02-19 13:42:48 +00:00
Matt Aitken dbd4e9a68c Don’t format the types when creating them from schemas 2023-02-19 13:42:32 +00:00
Matt Aitken 0c36c3e16f When making schemas don’t add properties with undefined values, it messes up the Typescript generator 2023-02-19 12:53:27 +00:00
Matt Aitken 05af0ba2b5 Make multiple actions at once 2023-02-19 12:48:25 +00:00
Matt Aitken f2e341e753 Delete records and record 2023-02-18 17:26:27 +00:00
Matt Aitken 6e337eb144 Create mutiple and single records 2023-02-18 17:06:05 +00:00
Matt Aitken fd90e3c3d8 Update single record 2023-02-18 16:56:47 +00:00
Matt Aitken b969653f7c Added update/upsert records 2023-02-18 16:49:54 +00:00
Matt Aitken b5128abee0 listRecords is working 2023-02-18 16:26:34 +00:00
Matt Aitken 1f5053bcdb Reworked how nock works to allow updating 2023-02-18 16:07:57 +00:00
Matt Aitken 232b58daf1 Added listRecords endpoints with improvements to generating schemas 2023-02-18 15:17:50 +00:00
Matt Aitken d07a54f09b Airtable Field schema 2023-02-18 14:06:16 +00:00
Matt Aitken 2adea4cd9b Created an AirTable field schema 2023-02-18 12:30:18 +00:00
Matt Aitken 27e1d134f7 WIP Airtable schemas 2023-02-17 19:07:20 +00:00
Matt Aitken 92ca01f3c7 An easier way to write JSON Schemas 2023-02-17 19:05:48 +00:00
Matt Aitken c75181f10d Renamed the code that used open api specs 2023-02-17 19:05:25 +00:00
James Ritchie a26002c525 Improved the layout of the TemplateOverview 2023-02-17 18:45:22 +00:00
James Ritchie 5a3fdc470f The logo had a broken URL link in the marketing header 2023-02-17 17:06:00 +00:00
Matt Aitken 781a208c07 Merge pull request #60 from mv-turtle/main
Added infisical as one of the command in package.json
2023-02-17 16:12:26 +00:00
Matt Aitken 67eb592ecc Merge branch 'dev' into main 2023-02-17 16:11:20 +00:00
Matt Aitken 5fa751cd76 Merge pull request #63 from triggerdotdev/dev
Added a Todo comment to each of the samples to make it clear the id needs to be unique
2023-02-17 16:09:31 +00:00
James Ritchie efc35c6c79 Added a Todo comment to make it clear the id needs to be unique 2023-02-17 16:03:36 +00:00
Eric Allam 8961a30bf8 Merge pull request #62 from triggerdotdev/dev
Feature: Easy to use templates with better onboarding
2023-02-17 14:47:44 +00:00
Eric Allam 65649c1fc7 Merge branch 'main' into dev 2023-02-17 14:35:49 +00:00
Matt Aitken 0fa59d9387 More code comments in the examples 2023-02-17 14:25:27 +00:00
Matt Aitken aa8cd86041 Improved GitHub star example with comments 2023-02-17 14:15:06 +00:00
Matt Aitken 165bd68d2d Added nice code comments to GitHub issues example 2023-02-17 14:15:06 +00:00
Eric Allam 9b664a1af2 Added the org template repo to the workflow overview page 2023-02-17 14:10:58 +00:00
Matt Aitken 3d174f5aeb Added code comments to the custom event 2023-02-17 13:52:05 +00:00
Matt Aitken b341e7bb71 Added code comments to the webhook example 2023-02-17 13:51:42 +00:00
Matt Aitken 1dc11a39ea Improved the WhatsApp example text 2023-02-17 13:36:48 +00:00
James Ritchie 970cfcb094 Improved the copy on step 6 of the existing repo journey 2023-02-17 13:35:55 +00:00
James Ritchie c33e228b26 Small improvement to the connected workflow message 2023-02-17 13:35:55 +00:00
Matt Aitken 6ba6e20026 Improved the Shopify example 2023-02-17 13:16:52 +00:00
Matt Aitken 81b2742577 Removed new user (Resend) example as it involves too much config for now 2023-02-17 12:25:40 +00:00
Matt Aitken ccadf08bd2 Set the from email to say Trigger.dev 2023-02-17 12:11:59 +00:00
D-K-P cea1291496 Removed title dupe 2023-02-17 12:05:15 +00:00
Matt Aitken 3e6b0c747b Workflow not connected to environment: Show a message on the overview page with basic help 2023-02-17 12:01:02 +00:00
Matt Aitken affcabc36f Workflow not connected to environment: hide test and runs pages 2023-02-17 12:01:02 +00:00
D-K-P 6732015b5c Updated the welcome email 2023-02-17 11:44:19 +00:00
Eric Allam cbb50a05ad Fixed issue with expiring user-to-server access tokens 2023-02-17 11:34:49 +00:00
Eric Allam 142fa85b14 Removed unnecessary log 2023-02-17 11:34:49 +00:00
James Ritchie 857ecf1de7 Gave the connected workflow more space 2023-02-17 11:24:24 +00:00
James Ritchie df6fe919c2 Added a Waiting to connect state to the Deploy step 2023-02-17 11:19:23 +00:00
James Ritchie 579e98c7af Copy updates to the new repo journey 2023-02-17 10:48:46 +00:00
James Ritchie 4724ef00fc Fixed Safari bug where template grid cards were really long and scrolling 2023-02-17 10:40:53 +00:00
James Ritchie 77e3769dbd Removed full stop 2023-02-17 10:40:53 +00:00
James Ritchie 70a547a5c5 Button arrow now uses a heroicon 2023-02-17 10:40:53 +00:00
Matt Aitken 3c8a3c421b Make it clear a request error comes from the API being called 2023-02-17 10:31:08 +00:00
Eric Allam 842ab0cdcc Ping the connection every second to try and keep it open through CloudFront 2023-02-17 09:11:13 +00:00
James Ritchie 64e0445acb Added a github icon to the external repo link 2023-02-16 20:50:25 +00:00
Eric Allam 213d86cb1f Improve run local instructions 2023-02-16 20:49:57 +00:00
Eric Allam 66805f67fa Call examples examples, not templates 2023-02-16 20:39:21 +00:00
Eric Allam 3defbcc0ed Fill in the correct API key in the run local docs 2023-02-16 20:23:12 +00:00
Eric Allam 942e695782 Fill in the ready to deploy api keys 2023-02-16 20:21:49 +00:00
James Ritchie 4a8b977a99 Remade the Deploy step layout 2023-02-16 20:03:31 +00:00
Eric Allam 2e9875c4c6 Add loading UI state when submitting add template form 2023-02-16 19:59:13 +00:00
Eric Allam ed775706a0 Use the installation_repositories.added webhook because repository.created wasn’t reliably being delivered 2023-02-16 19:42:36 +00:00
Eric Allam 89abb57e44 Changeset: new version 2023-02-16 19:14:49 +00:00
Eric Allam f264aaa16f Added = to the .env 2023-02-16 19:10:03 +00:00
Eric Allam 2f7caab661 Link workflows with their org templates if they exist (and improve the run local docs output) 2023-02-16 19:00:08 +00:00
James Ritchie c92fec9787 Made the github connect button bigger 2023-02-16 17:48:26 +00:00
D-K-P 9211cce807 fixed images so they’re bigger on the templates page and there isn’t a gap 2023-02-16 17:45:52 +00:00
Eric Allam 26c4f5d23c Move customize sections down to the bottom of the template markdown docs 2023-02-16 17:10:33 +00:00
Matt Aitken 4c9891de90 Have a max-height on the example code block 2023-02-16 17:02:19 +00:00
D-K-P 3c706723a2 Increased the image height to 36 2023-02-16 16:54:53 +00:00
Matt Aitken 6e3778d74e Created PanelLoading 2023-02-16 16:41:03 +00:00
Eric Allam 8a10431766 Use internal pulsar to define the webapp-events topic 2023-02-16 16:37:58 +00:00
Matt Aitken 825983db77 Add PostHog Sentry integration 2023-02-16 16:28:37 +00:00
James Ritchie a79ded125e minor improvement to image heights 2023-02-16 16:11:55 +00:00
James Ritchie e05b3d633d Removed scrolling from codeblock on the examples modal 2023-02-16 15:39:20 +00:00
Matt Aitken f659d9aec6 Don’t delete the nock snapshot when a test suite fails 2023-02-16 15:34:04 +00:00
Matt Aitken 1772b0664c Added requiredPackages to Resend example 2023-02-16 15:27:11 +00:00
Matt Aitken eca961a30f Text for previous option correct after templates 2023-02-16 15:26:28 +00:00
Matt Aitken c500155d60 Fixed resend example code 2023-02-16 15:22:41 +00:00
Matt Aitken f8957423e5 Changed text on example to “Use this example" 2023-02-16 15:22:41 +00:00
Matt Aitken 9da448a21b The code block now works with jsx/tsx 2023-02-16 15:22:41 +00:00
James Ritchie 8468db0a83 Fixed the required packages so they correctly display 2023-02-16 15:06:19 +00:00
James Ritchie f0d3b12d84 Fixed padding so it displays longer names on the examples buttons 2023-02-16 15:06:19 +00:00
James Ritchie ce5a42ccd7 Removed Zod from some of the required packages and corrected Whatsapp title 2023-02-16 15:06:19 +00:00
Eric Allam fc962f50c9 Create template repositories in a way that allows users to not give full access to their gitihub accounts to our github app 2023-02-16 15:01:46 +00:00
Matt Aitken 171d16ef41 If GitHub connect fails, show an error page and log out the params 2023-02-16 14:29:44 +00:00
Matt Aitken bec76a3704 Fix for channel instead of channelName being used in new user Slack example 2023-02-16 14:14:05 +00:00
Matt Aitken 3c403c4212 Removed strange capitilization from resend template 2023-02-16 14:03:38 +00:00
Matt Aitken 97e432462d Made the ensure it runs instructions a bit clearer 2023-02-16 13:49:31 +00:00
James Ritchie 4a2e0b28f4 Fixed links in the marketing header not working 2023-02-16 13:35:55 +00:00
James Ritchie fb496b1efa Changed the dangerouslySetInnerHtml from <code> back to <divs> to fix formatting 2023-02-16 13:22:48 +00:00
Matt Aitken 6c299072cd Fix for new user analytics event 2023-02-16 13:20:42 +00:00
Matt Aitken 25f70c4574 Added a “user created” event 2023-02-16 13:13:02 +00:00
James Ritchie 7f0ad4c18a Updated dangerouslySetInnerHtml to use <code> element and added the correct background colour 2023-02-16 12:51:44 +00:00
Matt Aitken 6c50ce078a Improved nock scripts, and setup for Airtable 2023-02-16 12:46:23 +00:00
D-K-P e8d018ef9d Made the templates overview responsive 2023-02-16 12:10:19 +00:00
Matt Aitken 9dc2ec4dca WIP on AirTable failing test 2023-02-16 12:10:05 +00:00
Matt Aitken 694df6ee38 Nock records and saves a successful run’s recording from tests 2023-02-16 12:08:35 +00:00
Matt Aitken c27987c191 Created a system to record successful test suite responses and load them on the next run 2023-02-16 11:50:35 +00:00
James Ritchie 19aedf8f73 Improved the final connected workfow step 2023-02-16 11:40:50 +00:00
D-K-P 4c219a8bf8 Template overview now has a responsive width 2023-02-16 11:35:08 +00:00
James Ritchie f30037da15 Improved message while waiting to connect github 2023-02-16 11:33:33 +00:00
James Ritchie df405aa740 Children not needed on the PanelInfo component 2023-02-16 11:33:33 +00:00
Eric Allam 7465d31e28 Improved the github stars markdown docs 2023-02-16 11:27:31 +00:00
D-K-P 2876946792 Added place-content-between to move services to bottom left 2023-02-16 11:24:57 +00:00
James Ritchie ae7c1c2cec TemplateCard now sits next to the steps on the new repo journey 2023-02-16 11:13:45 +00:00
James Ritchie 10b5558dbc Improved some of the information displayed in the new repo journey 2023-02-16 11:11:24 +00:00
Eric Allam 570683446c Updated template images 2023-02-16 10:52:21 +00:00
Eric Allam 29f3504a23 Improved the basic starter and resend markdown docs 2023-02-16 10:52:21 +00:00
James Ritchie 4bc156ce04 Improvements to the Cloud modal 2023-02-16 10:48:27 +00:00
James Ritchie c055c97209 Improvements to the modal so it’s more visible against the background 2023-02-16 10:48:01 +00:00
James Ritchie bc767516b6 Moved classes out of the card component to make it more reusable 2023-02-16 10:36:26 +00:00
James Ritchie 7a19bb8381 Template card locks to left side of the form 2023-02-16 10:32:38 +00:00
James Ritchie e742486677 Back button width fix 2023-02-16 10:16:33 +00:00
James Ritchie 821af448f3 Removed unused exports 2023-02-16 10:13:37 +00:00
James Ritchie 9db2e483ef Removed the title from the Overview page and added a back button 2023-02-16 10:13:05 +00:00
Eric Allam 277108d90c Implement cloud waitlist functionality 2023-02-16 10:08:06 +00:00
James Ritchie 49068d8db1 Fixed missbehaving layout on the examples modal 2023-02-16 09:53:07 +00:00
Eric Allam 3558a76e27 Implement correct flow on the templates.add route 2023-02-16 09:33:24 +00:00
Eric Allam fde3fec37f Setup the prod github app env vars 2023-02-16 09:13:00 +00:00
Eric Allam dabb17cf51 Move template doc files into the webapp 2023-02-16 08:49:59 +00:00
James Ritchie 7a8ad5f254 Right aligned the primary buttons 2023-02-15 21:02:13 +00:00
James Ritchie ab1d283217 centered text in button 2023-02-15 21:02:13 +00:00
D-K-P 7e80c5e7f6 removed maxHeight 2023-02-15 21:00:23 +00:00
D-K-P c5a5cef9f3 Redid the template overview fixes 2023-02-15 21:00:23 +00:00
James Ritchie f51aa7b792 Removed margin from the template grid component 2023-02-15 20:43:44 +00:00
D-K-P 9175d1e541 Import fix 2023-02-15 20:39:19 +00:00
James Ritchie 38fbf41e79 Improvements to the existing repo flow 2023-02-15 20:38:48 +00:00
James Ritchie 4bd3cabad4 Fixed the layout of the Connect another Github link 2023-02-15 20:18:07 +00:00
James Ritchie 6c9d31fe1c Removed the NoMobileOverlay on the public pages 2023-02-15 20:00:05 +00:00
James Ritchie c13c52aa05 Added a back button to the template section of the login page 2023-02-15 19:35:24 +00:00
Eric Allam 260bd5f007 Add github app env vars to staging webapp 2023-02-15 17:55:26 +00:00
Matt Aitken 25cf0245a4 Tidied up the mad nock reply 2023-02-15 17:48:45 +00:00
Matt Aitken 98cac166b3 Use nock to return from the API 2023-02-15 17:42:14 +00:00
Matt Aitken c2e9accade Moved the logger below express json 2023-02-15 17:41:55 +00:00
Eric Allam dc86fc2998 Merge pull request #61 from triggerdotdev/features/workflow-hosting
Feature: Easy to use templates with better onboarding
2023-02-15 17:40:36 +00:00
Eric Allam 7a6968d0ac Merge branch 'dev' into features/workflow-hosting
# Conflicts:
#	apps/webapp/app/components/LoginPromoPanel.tsx
#	apps/webapp/app/routes/__app/orgs/$organizationSlug.tsx
#	apps/webapp/app/routes/login.magic.tsx
#	apps/webapp/app/routes/login.tsx
#	apps/webapp/app/services/messageBroker.server.ts
2023-02-15 17:39:48 +00:00
Eric Allam 2c780c976e Added resend welcome drip campaign template 2023-02-15 17:19:09 +00:00
James Ritchie fbc1b86ea0 Added ability to pass in a size to the buttons - currently only supports “large” 2023-02-15 17:05:39 +00:00
D-K-P f20b29519a Padding / breathing space tweaks 2023-02-15 15:18:26 +00:00
D-K-P 3c7f6cf9ec Added primary buttons to the examples 2023-02-15 15:05:52 +00:00
Matt Aitken 1410688499 Added morgan logging to the integrations server 2023-02-15 14:57:38 +00:00
D-K-P d583e2a8f2 Added primary button to templateoverview 2023-02-15 14:52:35 +00:00
Matt Aitken a94c8e4576 Airtable example working 2023-02-15 14:51:14 +00:00
Matt Aitken 5fc1236d2e Added nock 2023-02-15 14:50:58 +00:00
Matt Aitken 3b67a5ce10 Remove unused integrations index file 2023-02-15 14:50:52 +00:00
D-K-P 016cf05aba Added templates copy 2023-02-15 14:45:40 +00:00
D-K-P 22c8a16758 Moved the image to the top left and sorted scrolling 2023-02-15 14:45:40 +00:00
D-K-P 0955a51333 Added bottom padding 2023-02-15 14:45:40 +00:00
D-K-P 8dc5bba8ca Reduced top margins on the templates page 2023-02-15 14:45:40 +00:00
James Ritchie 3538754a76 Updated the links in the marketing header 2023-02-15 14:41:28 +00:00
James Ritchie 8ef434eb13 Added a toxic style A button 2023-02-15 14:41:16 +00:00
James Ritchie 78ecfb60dc Hopful fix for google fonts not working 2023-02-15 14:40:46 +00:00
Matt Aitken 2acd79fb36 Fix so the integration actually responds 2023-02-15 14:08:59 +00:00
Matt Aitken 8d15e9a2b9 Created Airtable example 2023-02-15 14:01:29 +00:00
Matt Aitken d99446a1b2 Added descriptions to the response fields 2023-02-15 14:01:19 +00:00
Matt Aitken 7b24248b80 Deleted slackv2 example 2023-02-15 14:01:07 +00:00
D-K-P feafa69068 Updated the viewing runs image link in the readme 2023-02-15 14:00:36 +00:00
James Ritchie 91ed853747 Updated the login page with new template card style 2023-02-15 13:58:35 +00:00
Eric Allam 76737caa47 Remove basic starter title in desc 2023-02-15 13:56:15 +00:00
Eric Allam b480fa242a All dangerouslySetInnerHTML elements should not be p tags 2023-02-15 13:53:50 +00:00
Matt Aitken 192a1d2119 Made the Airtable fields a loose schema for now 2023-02-15 13:53:46 +00:00
Matt Aitken 2261a769e4 Deleted pointless generateService test 2023-02-15 13:49:59 +00:00
Matt Aitken 7e92e8cc75 Added Airtable to the catalog 2023-02-15 13:41:25 +00:00
Matt Aitken 5a312dec55 Fix generate test to point at slackv2 2023-02-15 13:41:06 +00:00
D-K-P a1535dff70 Added title and sub to the templates page 2023-02-15 13:38:35 +00:00
Eric Allam 4a00abed46 Add import code step to existing repo 2023-02-15 13:35:40 +00:00
Matt Aitken 15316a7504 Started work on Airtable 2023-02-15 13:29:15 +00:00
Eric Allam 039f652a41 Add another github connection button 2023-02-15 13:22:21 +00:00
Matt Aitken fa80ca07b7 Make the slack example not live 2023-02-15 13:22:20 +00:00
D-K-P f2cfa17b62 Added Poppins for the titles 2023-02-15 13:19:55 +00:00
Eric Allam 77124bba78 Sorted out connected to github 2023-02-15 12:58:17 +00:00
James Ritchie 7530400a38 Removed old template card 2023-02-15 12:42:31 +00:00
James Ritchie bfd8a4f6b8 Template card sits on the right and new states for login and configure 2023-02-15 12:42:30 +00:00
Eric Allam 4a72aff4ef Render the app header when logged in __public pages 2023-02-15 12:37:06 +00:00
Eric Allam 544b9b94c1 Implement “use this template” from the public page (either logged in or out) 2023-02-15 12:18:39 +00:00
James Ritchie 6b05b84342 Added a step number to the configure github step 2023-02-15 11:56:12 +00:00
James Ritchie 2ede12c2f3 Step numbers now have a complete state so they can show numbers in future steps rather than just a tick 2023-02-15 11:55:28 +00:00
Matt Aitken b142c55fc5 The DisplayProperties are now returned properly from the API 2023-02-15 11:55:06 +00:00
Matt Aitken 454bfcc58e Add the version info to a created IntegrationRequest 2023-02-15 11:54:37 +00:00
Matt Aitken eb98f50fca Get the display properties when creating an integration request 2023-02-15 11:54:06 +00:00
Matt Aitken 81ddf597ed Debugging the webapp should use infisical 2023-02-15 11:53:45 +00:00
Matt Aitken 75d6471c9e Created an example that uses the slackv2 integration 2023-02-15 11:53:30 +00:00
Matt Aitken 68544359f1 Generate the SDK with the correct endpoint name 2023-02-15 11:53:15 +00:00
James Ritchie 187c0279b2 Margin tweak 2023-02-15 11:24:40 +00:00
James Ritchie 98cf9afd8e Made the deployed workflow item more clickable 2023-02-15 11:23:30 +00:00
Matt Aitken 3ce5d5bf1a Include generated-integrations in the workspace 2023-02-15 11:18:38 +00:00
Matt Aitken f8ac05500a Renamed the new slack integration slackv2 2023-02-15 11:17:59 +00:00
Matt Aitken 23dbeff1c6 Added .template to the end of the template files so turbo doesn’t pick up on them 2023-02-15 11:10:07 +00:00
D-K-P ba0a4727d3 Moved the button to the top and fixed the padding 2023-02-15 11:00:15 +00:00
Eric Allam 54c5c82f22 Adding template list and template slug page to public pages 2023-02-15 10:46:39 +00:00
James Ritchie 6a3f26427b Small style tweaks 2023-02-15 10:41:30 +00:00
Matt Aitken 9db77b6478 Reverted workflowRunStep.server.ts 2023-02-15 10:37:05 +00:00
Matt Aitken 08ecd288e1 DisplayProperties stored on a run step and first read from there 2023-02-15 10:33:03 +00:00
James Ritchie 10ae5601f8 Added the floating template card 2023-02-15 10:29:43 +00:00
Eric Allam 9386e19620 Fill in the ConnectedToGithub stuff 2023-02-15 10:27:15 +00:00
Eric Allam 1df18b386a Better handle errors when trying to add a template to github account 2023-02-15 10:24:42 +00:00
Matt Aitken 83201312b2 The API won’t respond with services that aren’t live 2023-02-15 10:08:52 +00:00
Matt Aitken bfa096dc4a Services metadata being pulled from old and new systems 2023-02-15 09:54:34 +00:00
James Ritchie 81debee7aa Added a Github connected first step 2023-02-15 09:52:49 +00:00
Eric Allam 02499a0e63 Add the template card to template.add and template.id 2023-02-15 09:49:11 +00:00
Matt Aitken 558b705ace Added version to the Display properties are working for v1 integrations 2023-02-15 09:49:02 +00:00
Eric Allam 803b279133 Fill in actual data to the configured github state 2023-02-15 09:38:00 +00:00
Matt Aitken 4874288db0 Added icon to the services API json 2023-02-15 09:26:50 +00:00
Matt Aitken 30c0984623 Make the api use v2 (as v1 was the old integrations system) 2023-02-15 09:23:14 +00:00
Vladyslav Matsiiako 1b675968f6 Added infisical as one of the command in package.json 2023-02-14 19:46:36 -08:00
Eric Allam e58b7ada83 Filled in the run local docs 2023-02-14 22:03:32 +00:00
Matt Aitken a96bfd3528 The display properties endpoint is working 2023-02-14 20:20:55 +00:00
D-K-P a47a9b4fd6 Styled the start from scratch modal 2023-02-14 18:45:54 +00:00
D-K-P 727ec22fee Styled the examples overview modal 2023-02-14 18:45:54 +00:00
Matt Aitken c359962b3a Removed logging in the auth middleware 2023-02-14 18:45:35 +00:00
Matt Aitken 7bc11fe41f Added test for action displayProperties and made a fix 2023-02-14 18:44:24 +00:00
James Ritchie 7af88c33da Made the fields all consistently styled 2023-02-14 18:42:02 +00:00
Matt Aitken 108bb6281e Added displayProperties functionality to the endpoints/actions 2023-02-14 18:39:29 +00:00
James Ritchie 88ff526b87 Added blank deploy state to configure github state 2023-02-14 18:37:17 +00:00
James Ritchie b88eaa2c40 Import cleanup 2023-02-14 18:30:39 +00:00
James Ritchie a46b93e29d Updated to the deploy state 2023-02-14 18:23:38 +00:00
James Ritchie 1f672d9612 Made classNames available on the WorkflowList 2023-02-14 18:23:38 +00:00
Eric Allam d489311371 Run locally, not self host (WIP run local docs) 2023-02-14 18:14:46 +00:00
Eric Allam af29669003 Fill out some github-stars-to-slack template data 2023-02-14 17:59:59 +00:00
James Ritchie 8f32446170 Added a modal to the deploy section 2023-02-14 17:35:10 +00:00
James Ritchie 7f6e03b776 Improvements to the deploy state 2023-02-14 17:11:28 +00:00
Matt Aitken 140d02f462 WIP getting the new integrations working with the old ones 2023-02-14 16:54:13 +00:00
Matt Aitken 6a3ffa6395 Added authentication middleware to the integrations service 2023-02-14 16:53:49 +00:00
James Ritchie f6363ab5b6 Added a deploy skeleton state 2023-02-14 16:42:36 +00:00
James Ritchie 60ac029220 Added a disabled button state 2023-02-14 16:42:36 +00:00
Eric Allam 1f3eb459c4 Added runLocalDocs for templates 2023-02-14 16:37:19 +00:00
Eric Allam 9388b5bbed Added markdown syntax highlighting for the template documentation 2023-02-14 16:33:30 +00:00
Eric Allam 047b011fdd Run db:seed when deploying (so needs to be safe in prod) 2023-02-14 15:59:54 +00:00
Eric Allam fa470462c4 Implement the “existing repo” flow 2023-02-14 15:46:02 +00:00
Matt Aitken d807421b40 Migrated the metadata format 2023-02-14 15:39:59 +00:00
Matt Aitken b2bd170a2c Downgraded vitest in the webapp because it caused typecheck issues 2023-02-14 15:39:43 +00:00
Matt Aitken e013c6faa9 Renamed slug to service 2023-02-14 15:09:46 +00:00
Matt Aitken d60e9ae939 Renamed IntegrationMetadata to ServiceMetadata 2023-02-14 15:09:00 +00:00
Matt Aitken 8039f326a9 Created an IntegrationsClient that’s used to communicate with the integrations service 2023-02-14 15:04:45 +00:00
Matt Aitken 259e28e13a Removed old todo 2023-02-14 15:04:27 +00:00
James Ritchie 103f77215c margins adjustment 2023-02-14 14:58:55 +00:00
James Ritchie 967b8b0053 Updated the deployed state 2023-02-14 14:56:16 +00:00
Matt Aitken 974033d5d2 Don’t export the service metadata type 2023-02-14 14:52:51 +00:00
Matt Aitken 84bd5a63a2 Added API key auth type 2023-02-14 14:52:35 +00:00
D-K-P f0a05ab4e3 Moved the integration icons to the bottom 2023-02-14 14:43:21 +00:00
D-K-P 805f675264 Padding now fixed if there are / aren’t API logos 2023-02-14 14:36:41 +00:00
Matt Aitken dfab30c901 Endpoint that returns information about the services 2023-02-14 14:33:58 +00:00
Matt Aitken 8f5474072f Added live flag to service 2023-02-14 14:33:29 +00:00
D-K-P 056bab7233 Fixed padding issue on the grid 2023-02-14 14:32:16 +00:00
James Ritchie 08c7a04b61 Updated layout for ready to deploy state 2023-02-14 14:14:36 +00:00
James Ritchie f2a96a1535 tweaked styles 2023-02-14 14:14:36 +00:00
D-K-P abc113701c Fixed styling on the grid and overview pages 2023-02-14 14:13:02 +00:00
Matt Aitken fb6953bc1d Actually we’re going to cache using connection + service 2023-02-14 13:58:54 +00:00
Matt Aitken 8a6467f4c8 The namespace for the cache includs connection id and workflow id
Connections are used across workflows, so there was a chance the same key could have been fighting
2023-02-14 13:57:14 +00:00
Matt Aitken 581068362f The integration service now returns the response in the format the webapp is expecting 2023-02-14 13:44:03 +00:00
Matt Aitken 011d7d5611 Added retryableStatusCodes to a service 2023-02-14 13:43:24 +00:00
Matt Aitken caac573a64 Added version and made response schema optional for SDK requests 2023-02-14 12:35:24 +00:00
Matt Aitken 39d02e6d00 Added the integrations service to the example Warp config 2023-02-14 12:33:17 +00:00
Matt Aitken 1e1da62b32 The API for integrations is now versioned, accepts params and build credentials 2023-02-14 12:32:21 +00:00
Eric Allam d67ab54d55 WIP on the “New Repo” side of the workflows/new flow 2023-02-14 12:24:26 +00:00
James Ritchie 8e5938cd0c Styling for the github configuration forms 2023-02-14 11:35:10 +00:00
James Ritchie 16d89c4b79 added optional classname to input component 2023-02-14 11:34:21 +00:00
James Ritchie bf9e269ff3 Changed the error to a panel warning 2023-02-14 10:12:25 +00:00
Matt Aitken a5190693c8 Use __trigger so we don’t have to change the webhooks and introduce incompatibility 2023-02-13 23:08:13 +00:00
Matt Aitken de5b2ca3d8 Add metadata to slack post message 2023-02-13 23:02:29 +00:00
Matt Aitken 5c8fc8188a Passing the cache through to requests, it’s working. Made the expected request metadata specific 2023-02-13 22:52:01 +00:00
Matt Aitken 5949c98748 Created Postgres schema with cache table and PostgresCacheService 2023-02-13 22:40:44 +00:00
Matt Aitken 4f7a8f6ae0 Created a VS Code workspace 2023-02-13 22:05:57 +00:00
Matt Aitken c01bc15622 Allow metadata to be passed to the integrations API 2023-02-13 22:05:39 +00:00
Matt Aitken 027f0210dc The input is validated and results are coming back! 2023-02-13 21:44:18 +00:00
James Ritchie da155d1378 Added a modal for the cloud hosting option 2023-02-13 19:11:12 +00:00
Matt Aitken 38f32f405f Progress on action api endpoint 2023-02-13 18:24:36 +00:00
James Ritchie 0fee3ceae5 Blank example now has a modal 2023-02-13 18:20:10 +00:00
James Ritchie 710003ebdf Added modals for the webhook, custom event etc cards 2023-02-13 18:09:00 +00:00
Matt Aitken 76a2c82d9f Fixes for CommonJS in express and tests failing because of access token 2023-02-13 17:59:17 +00:00
James Ritchie 1be2af9309 Example modal update 2023-02-13 17:50:15 +00:00
James Ritchie cdbae933b2 Exported types from sample data 2023-02-13 17:44:39 +00:00
James Ritchie 7f2c9687b7 Created an examples overview with modal 2023-02-13 17:44:39 +00:00
James Ritchie 721a32a379 Moved modal into the examples component 2023-02-13 17:44:39 +00:00
James Ritchie 2424de07ac Added typography and forms tailwind packages 2023-02-13 17:44:39 +00:00
Eric Allam 179afbbcb3 More work on the org template page (added workflows list) 2023-02-13 17:02:52 +00:00
Matt Aitken 4d6963f0e7 Added target node16 to tsup 2023-02-13 16:37:41 +00:00
Matt Aitken 73fb0f3c0d Added explicit returns types because tsup was complaining 2023-02-13 16:37:26 +00:00
D-K-P 4ed486ef93 Styled the template overview button 2023-02-13 16:18:31 +00:00
Matt Aitken 9751531cc1 Watch mode working properly with the action endpoint 2023-02-13 16:14:43 +00:00
Matt Aitken 313a8c59cf First commit of WIP generated Slack SDK 2023-02-13 16:14:31 +00:00
Matt Aitken 76c660f167 eslint ignore build folder 2023-02-13 16:10:04 +00:00
Matt Aitken 3d5bbf899e Got integrations express server up and running 2023-02-13 15:54:36 +00:00
James Ritchie 460e8aa4a7 Fixed layout issues and added a max height 2023-02-13 15:16:46 +00:00
Matt Aitken 62ab7e098d Generate integrations in the correct folder 2023-02-13 15:03:02 +00:00
D-K-P c4a441129b modal and grid updates 2023-02-13 14:57:10 +00:00
Matt Aitken 63486d21c4 Renamed command to generate-integrations 2023-02-13 14:57:09 +00:00
Matt Aitken fbdc3c799d Created the generated-integrations folder with a Readme 2023-02-13 14:56:55 +00:00
Matt Aitken fc1dd44f39 Added the new integrations system into the mono-repo 2023-02-13 14:48:12 +00:00
James Ritchie 8a1517bc7f Removed old step 2023-02-13 14:38:46 +00:00
D-K-P fb0ecb8c34 Added overflow-scrolling and fixed side bar 2023-02-13 14:37:30 +00:00
James Ritchie c091bc3326 Added a modal to the template cards 2023-02-13 14:36:51 +00:00
Eric Allam c27bdf6308 Added markdownDocs to Template 2023-02-13 14:21:21 +00:00
James Ritchie 007dc2d713 Removed styling around templateoverview 2023-02-13 14:16:07 +00:00
D-K-P ba868cbd40 Pushed markdown in the templatesdata file 2023-02-13 14:13:56 +00:00
Eric Allam 030844d905 Live update created org templates using SSE and useRevalidator. Updated remix to v1.10.1 2023-02-13 14:12:17 +00:00
James Ritchie 36e25a85f8 Blank ExampleOverview file 2023-02-13 13:52:53 +00:00
James Ritchie 4b0d03f9cc Passing in template data 2023-02-13 13:52:53 +00:00
D-K-P d6c6c71268 Added markdown to templatesoverview 2023-02-13 13:52:08 +00:00
James Ritchie 6117bcf7eb Used the existing diaglog component and added a close icon 2023-02-13 13:10:36 +00:00
D-K-P e1fb69fe44 Removed close button 2023-02-13 12:09:58 +00:00
James Ritchie bf5621b716 Added a basic modal to existing repo step 3 2023-02-13 12:00:55 +00:00
James Ritchie 1c9be1ee1d Moved misplaced imports up to the top 2023-02-13 12:00:55 +00:00
James Ritchie a020dfa036 Added @trigger.dev/sdk to the required packages 2023-02-13 12:00:55 +00:00
D-K-P 2e28bd09ca Layout for template overview 2023-02-13 11:29:52 +00:00
D-K-P 6595535b40 Added template grid and updated data 2023-02-13 11:29:52 +00:00
James Ritchie a7eac27b98 Added a blank example as the first option in the list 2023-02-13 10:33:46 +00:00
James Ritchie b98bae8588 ‘Choose an example’ now shows all the options styled into cards 2023-02-13 10:27:51 +00:00
James Ritchie 90a582f6ad Improved the tertiary link colour 2023-02-13 10:26:44 +00:00
James Ritchie c41c2e8725 Turned the old templates page into a placeholder for now 2023-02-13 09:34:18 +00:00
James Ritchie ed4d6846f7 Merged installing the packages into 1 step and added a new step 6 2023-02-12 17:51:48 +00:00
James Ritchie 952e584d68 Full workflow for existing repo 2023-02-12 16:26:00 +00:00
James Ritchie f178629b9d WIP adding new steps for the existing repo journey 2023-02-11 11:42:16 +00:00
James Ritchie eb2741708a Button tweak 2023-02-11 11:13:41 +00:00
James Ritchie fce24cc7fa Previous steps now links 2023-02-11 10:38:45 +00:00
James Ritchie 1ca8760868 Improved wording and styling 2023-02-11 10:19:03 +00:00
James Ritchie ffcdc763eb Added a cloud coming soon message 2023-02-11 10:06:31 +00:00
Matt Aitken bacd76c8e5 Improved .env.example 2023-02-10 20:05:41 +00:00
Matt Aitken cf04c3902f Added pnpm run idev command for running the webapp with Infisical secrets injected 2023-02-10 19:56:17 +00:00
James Ritchie c4ba591df0 Copy update to fix step 2 2023-02-10 19:30:53 +00:00
James Ritchie ef8431b292 Step numbers now have an active green state 2023-02-10 19:24:11 +00:00
Eric Allam b2290e3bc0 Get deploy to render working with the templates with the button pointing to the correct url 2023-02-10 18:15:18 +00:00
James Ritchie 1bb2ebc7bc Created a Template step by step guide page 2023-02-10 17:27:01 +00:00
James Ritchie 0193327f5d Added a new Overview page 2023-02-10 17:27:01 +00:00
James Ritchie 431079c894 Exported the step numbers 2023-02-10 17:27:01 +00:00
Eric Allam cc6a37bdf6 Add a specific template, and remove installations when getting the installations.delete github webhook 2023-02-10 16:51:38 +00:00
Eric Allam 9539138992 WIP creating template repos in github accounts 2023-02-10 15:24:47 +00:00
Matt Aitken dee2db231a Merge pull request #57 from triggerdotdev/dev
Workflow run created event now has the `environmentType` property
2023-02-10 14:20:04 +00:00
Matt Aitken 5e99b28ea5 Report the environment type on a workflow run event (live or development) 2023-02-10 14:18:42 +00:00
James Ritchie 038d53c7c5 Added templates data file 2023-02-10 14:11:21 +00:00
James Ritchie ad1f9346b8 Removed un-used tailwind config values 2023-02-10 13:50:06 +00:00
Eric Allam ddfce4e3c7 GitHub app installation 2023-02-10 13:07:41 +00:00
Matt Aitken 8a73e559e8 Merge pull request #56 from triggerdotdev/dev
Fixed all linting issues, almost all unused imports or type imports
2023-02-10 10:25:11 +00:00
Matt Aitken ad26302925 Fixed all liniting issues, almost all unused imports or type imports 2023-02-10 10:23:05 +00:00
Matt Aitken 2a20546e7b Merge pull request #55 from triggerdotdev/dev
Added WebHook examples for first workflow tests
2023-02-10 10:22:45 +00:00
Matt Aitken 137db98176 Removed unused GitHub example object 2023-02-10 10:21:18 +00:00
James Ritchie 94154bd96c Pricing link goes to the correct URL 2023-02-10 10:16:56 +00:00
James Ritchie c34a28b2d5 Added toxic and acid colours and button to the app 2023-02-10 10:12:03 +00:00
Matt Aitken 79622b6123 GitHub webhook schema fixes 2023-02-10 09:56:47 +00:00
Matt Aitken d329aca7e5 Added WhatsApp examples 2023-02-10 09:56:34 +00:00
D-K-P a347e5526f Added placeholder image 2023-02-09 20:50:09 +00:00
Matt Aitken 5328ba1556 Added GitHub examples that are shown on test page 2023-02-09 20:33:28 +00:00
James Ritchie 7d12d3242e Added toxic and acid colours to the app 2023-02-09 18:36:18 +00:00
James Ritchie 706024841a Added the marketing site header to the app template page 2023-02-09 18:36:18 +00:00
Matt Aitken 6e5695f873 Removed unused import 2023-02-09 17:52:02 +00:00
Matt Aitken 565aba4021 Merge pull request #54 from triggerdotdev/dev
Analytics updates (orgs, workflows and runs)
2023-02-09 17:50:50 +00:00
Matt Aitken 5a10e53de6 Merge pull request #53 from triggerdotdev/analytics
Analytics events implemented on client and server for common events
2023-02-09 16:50:59 +00:00
D-K-P c927342da3 Added basic grid layout 2023-02-09 16:45:33 +00:00
Matt Aitken 862eeb89d5 POSTHOG_PROJECT_KEY env variable for flightcontrol.json in staging
"fromParameterStore": "/Prod/webapp/POSTHOG_PROJECT_KEY"
2023-02-09 16:42:15 +00:00
Matt Aitken b88ad37b92 Turn client-side analytics logging off 2023-02-09 16:36:00 +00:00
Matt Aitken 5ff4b68bae Pass properties for new events 2023-02-09 16:35:53 +00:00
Matt Aitken a7107cf1b1 Add runCount to user properties 2023-02-09 16:04:06 +00:00
Matt Aitken 6132cdf8c0 Removed workflow run completed event 2023-02-09 15:47:50 +00:00
Matt Aitken d39fb33c70 Workflow created and Workflow run created 2023-02-09 15:47:03 +00:00
James Ritchie 5e7ff78f23 Setting up basic structure and components for the new Templates 2023-02-09 15:21:10 +00:00
James Ritchie 05289d0cb1 Merge pull request #52 from triggerdotdev/dev
The side menu now only shows the workflows tab if you have 0 workflows
2023-02-09 15:06:22 +00:00
Matt Aitken 7dbc634388 Tidied up imports 2023-02-09 14:19:59 +00:00
Matt Aitken d58add78bf Org, Workflow, Environment events sending from frontend 2023-02-09 14:10:00 +00:00
James Ritchie 0c8448c65d The side menu now only shows the workflows tab if you have 0 workflows 2023-02-09 12:55:47 +00:00
Matt Aitken eed039319e Identify workflow and remove unused environment slug 2023-02-09 11:06:42 +00:00
Matt Aitken 3542c0ed87 Identify user, organization and environments 2023-02-09 10:58:18 +00:00
Matt Aitken 162c0f5db5 Identify user’s on the backend when they login/sign up 2023-02-09 09:01:56 +00:00
Matt Aitken 5f649d1b2e Moved postAuthentication actions into a separate file 2023-02-09 08:48:39 +00:00
Matt Aitken e261149065 Reworked PostHog client implementation 2023-02-08 20:51:05 +00:00
Eric Allam 5f3d985b64 Merge pull request #51 from triggerdotdev/dev
Very simple admin area to assist with user support
2023-02-08 10:18:28 +00:00
Eric Allam 283f6d6be6 Added a very simple admin section to assist in user support 2023-02-08 09:50:36 +00:00
James Ritchie 7d1b4e71a5 Made the horizontal scrollbar visible 2023-02-07 18:17:32 +00:00
Eric Allam 29b4ba4c78 Merge pull request #50 from triggerdotdev/dev
Feb 7 2023 - Safer SDK and added log feedback
2023-02-07 15:17:42 +00:00
Eric Allam cab222ac4b Changeset:verion Feb 7 2023 2023-02-07 14:45:03 +00:00
Eric Allam 667a60a551 Remove uploading source maps to sentry for now 2023-02-07 14:42:18 +00:00
Eric Allam 710bcc2c47 Handle errors when calling listen and provide some log feedback 2023-02-07 14:40:59 +00:00
D-K-P d1d34da9b2 Added a link to the self-hosting guide GH issue from the readme 2023-02-07 12:56:29 +00:00
James Ritchie 0c476093d7 Fix for the time not displaying correctly 2023-02-07 12:46:55 +00:00
James Ritchie ba2c895e53 Smaller icon 2023-02-07 11:36:57 +00:00
James Ritchie 764dd21613 Added a refresh button when a run is in progress 2023-02-07 11:08:03 +00:00
Eric Allam 78c3e1060d Try and get sourcemaps uploading 2023-02-07 10:20:16 +00:00
Eric Allam 96a180f26e Add sentry env vars to the staging webapp 2023-02-07 09:44:57 +00:00
Eric Allam 35718033bd Upload source maps to sentry during Docker build 2023-02-07 09:29:15 +00:00
Eric Allam 5501a927bf Update to latest @sentry/remix package 2023-02-07 09:29:15 +00:00
D-K-P 17568a0aec Made the code font smaller and reduced the left padding 2023-02-06 21:59:44 +00:00
D-K-P 563a535b56 Added notion / openai integration logos 2023-02-06 21:59:12 +00:00
Matt Aitken 2a2652d3aa Removed docs. They now live in the triggerdotdev/docs repo 2023-02-06 19:07:09 +00:00
Matt Aitken aca9081e64 Added internal packages to the CLI tsconfig 2023-02-06 17:12:33 +00:00
Eric Allam ccd89d08d9 Merge pull request #49 from triggerdotdev/dev
Feb 6 2023 Release
2023-02-06 15:45:07 +00:00
Eric Allam d9ad006550 Changset: created release version 2023-02-06 15:29:08 +00:00
Eric Allam eacee88f45 Prefill the API key on start from scratch examples 2023-02-06 15:25:37 +00:00
Eric Allam 51432feb74 Fixed issue with lastRunAt being null 2023-02-06 15:11:23 +00:00
Eric Allam 2398f85081 Added initial roadmap 2023-02-06 15:04:25 +00:00
Eric Allam b1fb567c28 Added changelog docs 2023-02-06 14:50:11 +00:00
Eric Allam 8c89ed3334 Document including tsx files when using jsx-slack 2023-02-06 14:50:11 +00:00
James Ritchie 32b9dbcf94 Removed console.log 2023-02-06 14:43:58 +00:00
James Ritchie 7d84f59c1e Fixed the info panel on overview page 2023-02-06 14:35:58 +00:00
James Ritchie d22ef06525 Updated the information panel to include an optional message 2023-02-06 14:35:05 +00:00
James Ritchie 595df9ae62 Settings page now shows the workflow 2023-02-06 14:21:40 +00:00
James Ritchie ceb862f484 Step numbers on onboarding slightly smaller 2023-02-06 13:52:21 +00:00
James Ritchie 49846df811 Display warning message on Settings page if API needs connecting 2023-02-06 13:49:57 +00:00
James Ritchie 5fec008f09 Fixed broken primary connect api button 2023-02-06 13:49:57 +00:00
James Ritchie 90f8b088ff Copy update 2023-02-06 13:49:57 +00:00
James Ritchie a1d464325d Updated the panel when you don’t have any runs yet 2023-02-06 13:49:57 +00:00
James Ritchie a17442b016 Improved how the Warning panel works so it can include an optional button 2023-02-06 13:49:57 +00:00
Eric Allam cb3b068fab Added slack view submission interaction event docs 2023-02-06 13:49:29 +00:00
Eric Allam 26a5913734 Added docs for slack.openView 2023-02-06 13:09:05 +00:00
James Ritchie 078beb1689 Made the NEW badge less clumsy looking 2023-02-06 12:56:01 +00:00
James Ritchie 05a2f6f8e1 New copy added 2023-02-06 12:42:39 +00:00
James Ritchie 7fc6358e40 Layout shuffle to include a line between each step 2023-02-06 12:42:39 +00:00
James Ritchie 70ce15b271 Visual tweak to onboarding 2023-02-06 12:42:39 +00:00
James Ritchie 97b0019d99 Layout improvements to onboarding 2023-02-06 12:42:39 +00:00
Matt Aitken c419101750 WhatsApp is available to everyone 2023-02-06 11:57:58 +00:00
Matt Aitken fdb2944380 Changeset: created a version with WhatsApp import problem fixed 2023-02-06 11:52:41 +00:00
Matt Aitken 13b6d96f8c Changeset: Switch to main mode and created fix for WhatsApp import of internal file 2023-02-06 11:51:53 +00:00
Matt Aitken feae0b3c08 WhatsApp package was linking to the sdk/index file 2023-02-06 11:51:53 +00:00
Matt Aitken 64854b128f Added scripts and documentation for doing pre-release changeset versions 2023-02-06 11:51:53 +00:00
Eric Allam 46fc33ca15 Downgrade mintlify to 2.0.16, add more to blockActionInteraction, and fix pnpm install commands 2023-02-06 10:45:08 +00:00
Matt Aitken f02eeb0af9 Changeset:pre enter next 2023-02-06 09:22:59 +00:00
Matt Aitken f95938d2ac Changeset:add Initial WhatsApp 2023-02-06 09:21:31 +00:00
Eric Allam c3f2f61982 Added some additional slack docs (WIP, still need to cover views and view interactions) 2023-02-05 21:54:29 +00:00
Eric Allam 124751e62a Fixed the sendEvent API ref page and update mintlify to 2.0.17 2023-02-05 20:36:07 +00:00
Eric Allam 81569eb66e Added some additional info about why users should use our fetch over the platform fetch 2023-02-05 20:30:07 +00:00
Matt Aitken 66d959282d Improved the message when you have no runs 2023-02-03 18:30:29 +00:00
Matt Aitken b0a06f8a9d “NEW” banner only displays for workflows without runs 2023-02-03 17:28:53 +00:00
Matt Aitken 07f0144354 Downgraded remix back to previous version 2023-02-03 17:28:32 +00:00
James Ritchie 11beadfb7d Fixed success panel layout 2023-02-03 16:54:11 +00:00
Matt Aitken 54faa44e84 Added Intercom back 2023-02-03 16:52:48 +00:00
Matt Aitken f121a48466 Run install 2023-02-03 16:44:13 +00:00
Matt Aitken 92436308c0 Merge remote-tracking branch 'origin/dev' into onboarding
# Conflicts:
#	apps/webapp/package.json
#	pnpm-lock.yaml
2023-02-03 16:43:20 +00:00
James Ritchie 8ba20d8fa3 Updated the Connect Workflow layout 2023-02-03 16:40:35 +00:00
Matt Aitken 92a37ae3a5 Fix for Remix hydration issues 2023-02-03 16:36:16 +00:00
Matt Aitken db9d9d93df Fis for missing key in map 2023-02-03 16:36:16 +00:00
Matt Aitken 506dfe6860 Attempt at using remix-island to fix React 18 issues 2023-02-03 16:36:16 +00:00
Matt Aitken 813c3622e9 Updated remix and added remix-island 2023-02-03 16:36:16 +00:00
James Ritchie d0208e698b Scrollbars hidden on carousel 2023-02-03 16:24:08 +00:00
Eric Allam 2a51c5a1a3 Generate fake test data from custom and webhook event schemas 2023-02-03 16:19:49 +00:00
Matt Aitken ee9125ff02 Add a button to check for new workflows and if there are any link to the workflow 2023-02-03 15:41:59 +00:00
James Ritchie 6caadf5da5 Added a NEW badge for a workflow 2023-02-03 14:44:47 +00:00
James Ritchie c98b7c4e24 Title fixes 2023-02-03 14:21:57 +00:00
James Ritchie 489c40c847 Examples tabs now a carousel 2023-02-03 14:19:43 +00:00
Eric Allam 0d2d9a043c Implement runOnce and runOnceLocalOnly functions 2023-02-03 13:50:59 +00:00
James Ritchie 9bb9c1cdbe Updated tabs style 2023-02-03 13:32:09 +00:00
James Ritchie 81d6fbfdaa Changed the Create New Workflow component to be inline 2023-02-03 13:23:40 +00:00
James Ritchie b72d63bdd2 Moved inline tab style to new component 2023-02-03 13:23:40 +00:00
James Ritchie 1319651079 Consolidated duped Tabs component 2023-02-03 13:23:40 +00:00
Matt Aitken f6fbd5e5b7 Remove logging of the Slack interactivity payload 2023-02-03 12:51:44 +00:00
Matt Aitken 9d5e24dac5 Added code comments to the WhatsApp to Slack example 2023-02-03 12:51:36 +00:00
D-K-P 4ad2702e4d remove line number from prism 2023-02-03 12:41:12 +00:00
D-K-P 2a2da8fa7a Changed icon colour to rose 2023-02-03 12:41:12 +00:00
James Ritchie 64ccb0cf11 Updated the create new workflow buttons at the bottom of the workflow list 2023-02-03 12:28:04 +00:00
D-K-P 8b3abd6a06 Updated samples and removed packagesCopy and testCode sections 2023-02-03 12:26:42 +00:00
Matt Aitken 63b3d82c2f Repeat the original message in the modal so you have context 2023-02-03 12:24:34 +00:00
Matt Aitken 358e9af01d Exposed more types from the WHatsApp Integration 2023-02-03 12:24:17 +00:00
James Ritchie f9cab846b9 Removed final step 2023-02-03 12:23:07 +00:00
James Ritchie 8a66983f63 Removed authentication step 2023-02-03 12:22:46 +00:00
James Ritchie b45a176c4f Button copy change 2023-02-03 12:22:35 +00:00
D-K-P 86d1a2413a More copy updates 2023-02-03 11:44:21 +00:00
Matt Aitken 763ee294ba Slack messages can now be threaded, and you can pass data through 2023-02-03 11:40:20 +00:00
James Ritchie 9a7db7bcff Copy updates for the scratch section 2023-02-03 11:38:56 +00:00
D-K-P 2c2de7b236 Added api key comments to all the workflows 2023-02-03 11:37:11 +00:00
D-K-P b9b49a8733 Copy updates 2023-02-03 11:32:46 +00:00
James Ritchie 32f09d59e6 Added content to the From Scratch section 2023-02-03 11:31:59 +00:00
James Ritchie ddb8b131c0 Deselected tab now more visible 2023-02-03 11:17:29 +00:00
James Ritchie ab8e1f0d06 Copy tweak 2023-02-03 11:07:32 +00:00
D-K-P 3f25622abf Removed extra line 2023-02-03 10:58:14 +00:00
D-K-P 9692ef5ceb fixed slack 2023-02-03 10:57:35 +00:00
D-K-P 2c29687712 Moved the package installation instructions to the individual examples 2023-02-03 10:51:58 +00:00
James Ritchie a392e6a00c Now using the external samplesList file 2023-02-03 10:49:47 +00:00
James Ritchie 59a5c2df51 Lots of copy improvements 2023-02-03 10:44:56 +00:00
James Ritchie 9872afcf98 Improved the page titles 2023-02-03 10:44:56 +00:00
D-K-P 55fd404449 Added new user slack message / custom event / webhook / scheduled - rec / schedule cron 2023-02-03 10:38:28 +00:00
James Ritchie faa844efa1 New steps added for authenticating with APIs 2023-02-03 10:23:32 +00:00
James Ritchie 1d02ffaf18 Organised imports 2023-02-03 10:23:32 +00:00
D-K-P 859a31e08b Added gh / resend / shopify / whatsapp to the samples list 2023-02-03 10:22:28 +00:00
Eric Allam a5f18cf45a Fixed issue with old slack workflow source parsing 2023-02-03 10:12:01 +00:00
James Ritchie c669c61ba7 Blank Workflows state now points to the new onboarding 2023-02-03 09:53:25 +00:00
James Ritchie ec1df6d476 Made samples list file a tsx 2023-02-03 09:24:59 +00:00
James Ritchie 50ecc88b99 Added samples list file 2023-02-03 09:24:23 +00:00
James Ritchie 605e34b6ad More copy 2023-02-03 09:16:39 +00:00
James Ritchie 780cd7fcef Added a new side menu link for New Workflow 2023-02-03 09:09:38 +00:00
James Ritchie f447cb1ca0 Content improvement 2023-02-02 22:07:00 +00:00
Dan bf57430b66 Merge pull request #41 from triggerdotdev/onboarding
Fixed button
2023-02-02 22:00:12 +00:00
James Ritchie ee28eca61c Added icons to the example boxes 2023-02-02 21:57:54 +00:00
D-K-P d629e3cca1 Converted the samples into functions 2023-02-02 21:28:58 +00:00
James Ritchie 43a320253d Added more steps to the onboarding 2023-02-02 20:30:34 +00:00
Matt Aitken 5ffababfe5 Added thread support to posting messages 2023-02-02 19:46:49 +00:00
James Ritchie e77bfc77e0 more style improvements 2023-02-02 19:38:17 +00:00
James Ritchie 93903bf072 Moved the env variables up to the workspace 2023-02-02 19:38:09 +00:00
James Ritchie 2b4a74f672 WIP adding api keys to the code samples 2023-02-02 19:10:22 +00:00
Matt Aitken 8ffb612496 Removed extraneous UI in Slack message 2023-02-02 18:54:51 +00:00
Matt Aitken 34f86dda3b WhatsApp slack example working 2023-02-02 18:51:11 +00:00
James Ritchie 81d3d324e2 More progress on the onboarding 2023-02-02 18:41:20 +00:00
D-K-P 6d8100d200 Added whatsapp sample 2023-02-02 18:18:53 +00:00
D-K-P 3e53699b05 Added shopify sample 2023-02-02 18:11:50 +00:00
D-K-P 8cca0f520b added sample code and renamed files 2023-02-02 18:08:46 +00:00
D-K-P 908fff6fe3 Added package installation instructions to all of the examples 2023-02-02 17:55:28 +00:00
James Ritchie da7742985f Mapping over projects 2023-02-02 17:40:08 +00:00
James Ritchie 4077d014e4 Added placeholder pages for more code examples 2023-02-02 17:39:53 +00:00
James Ritchie ab0938e91b Added an external code example 2023-02-02 17:22:21 +00:00
Matt Aitken 547f619112 Just show a link for videos for now 2023-02-02 16:37:06 +00:00
Eric Allam 4008e1d7ed Comments for the whatsapp flow 2023-02-02 16:32:04 +00:00
James Ritchie 910a8d3651 WIP updated onboarding page 2023-02-02 16:18:39 +00:00
Eric Allam 0e4ec8d8e6 Added views and view submission support to Slack integration 2023-02-02 16:18:32 +00:00
James Ritchie 2d08718389 Updated headless ui package 2023-02-02 16:18:28 +00:00
D-K-P 96306eb5e0 Added intercom 2023-02-02 15:35:17 +00:00
Eric Allam ad70dbc5dd Read from the latest trigger messages when creating workflow trigger subscription 2023-02-02 15:13:03 +00:00
James Ritchie 517d50242f Updated whatsapp icon 2023-02-02 14:25:23 +00:00
James Ritchie cf8163ef5c Fixed the Integrations button layout so they’re all the same height 2023-02-02 14:15:40 +00:00
Matt Aitken d6c7648bf1 WhatsApp media urls and geting files is working 2023-02-02 13:44:31 +00:00
Matt Aitken 05b0bd9fb4 Add jsx-slack to the WhatsApp example package 2023-02-02 10:51:49 +00:00
Matt Aitken 6495b67d1f Make image, document, video etc use the EventMediaObjectSchema 2023-02-02 10:50:41 +00:00
Matt Aitken c37edf970d Added workflowId and appOrigin to the @trigger.dev/sdk run metadata 2023-02-02 10:49:54 +00:00
Matt Aitken b38961205a Merge pull request #39 from triggerdotdev/integrations/whatsapp
WhatsApp integration
2023-02-02 08:49:48 +00:00
Matt Aitken 7e1c04ae71 Removed console.log 2023-02-02 08:33:13 +00:00
Matt Aitken 49a4b0ce11 Removed changeset files that pulled from dev 2023-02-02 08:31:06 +00:00
Matt Aitken 42c2a87238 Improved the text 2023-02-02 08:28:11 +00:00
Matt Aitken aefbba1f37 Added an index page to the reference 2023-02-02 08:27:25 +00:00
Matt Aitken b8b032a5fb Added docs for contact messages and template messages 2023-02-02 08:23:00 +00:00
Matt Aitken 2eea62c3ce Added lots of the docs for messages 2023-02-01 23:24:39 +00:00
Matt Aitken 22327886ac Added message event docs 2023-02-01 22:55:13 +00:00
Matt Aitken 3126d890dc Added a WhatsApp example 2023-02-01 21:54:41 +00:00
D-K-P 60abac1bc0 Updated mint.json 2023-02-01 15:32:02 +00:00
D-K-P 37d331588d Added package instructions for the integrations to the docs 2023-02-01 15:24:20 +00:00
D-K-P 6ddaf067a9 Added posthog to mint.json 2023-02-01 15:21:23 +00:00
Matt Aitken e281297da5 Merge remote-tracking branch 'origin/dev' into integrations/whatsapp 2023-02-01 14:47:10 +00:00
Matt Aitken f46436b903 Added “prettier-plugin-tailwindcss”: correct order for classes 2023-02-01 14:46:04 +00:00
Eric Allam a5d8290663 New emoji and fixed the runs image 2023-02-01 14:11:33 +00:00
Eric Allam 4fa967b2b1 Merge pull request #37 from triggerdotdev/dev
Fix builds by locking turbo dep to 1.7.0
2023-02-01 13:48:29 +00:00
Matt Aitken 6442576a38 Added audio, video, document and sticker messages 2023-02-01 13:43:18 +00:00
Matt Aitken 93f1814fd2 Improved errors handling, added sendContacts 2023-02-01 13:15:15 +00:00
James Ritchie d97b82e572 Added an impersonation banner 2023-02-01 13:11:03 +00:00
Eric Allam 5e15aaadc3 Try going back to frozen lockfile 2023-02-01 13:06:44 +00:00
Eric Allam 5fce178cc0 Try some more stuff 2023-02-01 12:56:58 +00:00
D-K-P 2938a11685 Removed quick start and changed it to ‘anatomy of a workflow’ and ‘viewing runs’ 2023-02-01 12:55:53 +00:00
Eric Allam 3dc8751189 Try using —no-frozen-lockfile 2023-02-01 12:41:26 +00:00
D-K-P fe8b8a7131 Fixed links 2023-02-01 12:34:18 +00:00
D-K-P d7f59db79e Centered badges and sites and added tagline 2023-02-01 12:34:18 +00:00
Eric Allam a98dfecd17 Try using the latest version of pnpm in dockerfiles 2023-02-01 12:34:00 +00:00
Eric Allam 84053d5a20 Try setting a specific pnpm version in dockerfiles 2023-02-01 12:31:11 +00:00
Eric Allam 3365bf26dc Log out pnpm version in wss dockerfile as well 2023-02-01 12:28:55 +00:00
Eric Allam 3d5c646a1c Changed where the pnpm version is output 2023-02-01 12:26:03 +00:00
Eric Allam 2d97d20b37 Log out the version of pnpm during the buld process 2023-02-01 12:23:53 +00:00
Matt Aitken 731b6308e0 Sending locations is working 2023-02-01 12:14:32 +00:00
Matt Aitken c1742f0d1b Sending images working 2023-02-01 11:59:59 +00:00
Matt Aitken d57339a7c1 Reactions and replying is working 2023-02-01 11:48:48 +00:00
Eric Allam cd11246d9a Merge pull request #36 from triggerdotdev/dev
README and mobile updates
2023-02-01 11:37:09 +00:00
Eric Allam 0833d402f2 Emojify the README 2023-02-01 11:36:16 +00:00
Matt Aitken 4054571929 Metadata required for the run page 2023-02-01 11:34:13 +00:00
Matt Aitken afc47d328f Send “text” WhatsApp messages 2023-02-01 11:31:06 +00:00
Eric Allam d6925ff4b6 Fixed welcome email drip campaign subtitle 2023-02-01 11:28:43 +00:00
D-K-P a372a179d1 Added quick start and examples to the docs 2023-02-01 11:21:33 +00:00
D-K-P f8c39e3446 New welcome copy in the docs 2023-02-01 11:21:22 +00:00
Matt Aitken 868e5f4ed1 Changed the WhatsApp package exports to match the other integrations 2023-02-01 11:00:54 +00:00
Matt Aitken e6ce7ea859 WhatsApp basic template message is sending 2023-02-01 11:00:43 +00:00
Eric Allam e6d1ddc5d8 Remove exports and add main and types to package.json 2023-02-01 10:45:05 +00:00
Eric Allam 8124930841 Fixed call to getIntegrations in new workflow route 2023-02-01 10:45:00 +00:00
Eric Allam 421bd9f757 Fixed broken integration creation route 2023-02-01 10:45:00 +00:00
Matt Aitken b3bc70baa3 Instead of switch statement, grab the integrations object 2023-02-01 10:44:25 +00:00
Matt Aitken dbfff6b5f4 WhatsApp send template message 2023-02-01 10:44:09 +00:00
Matt Aitken 69004cdcf4 Revert "Match the connection using the slug"
This reverts commit c1511f233c.
2023-02-01 10:42:33 +00:00
Matt Aitken c1511f233c Match the connection using the slug 2023-02-01 10:36:34 +00:00
James Ritchie 56d23efcfa Made the onboarding page slightly easier to read 2023-01-31 18:57:30 +00:00
James Ritchie 31c6da3be4 Added a NoMobileOverlay component that displays on small screens 2023-01-31 18:37:03 +00:00
Matt Aitken 6acda311db Added lots of message types to the schemas 2023-01-31 16:48:21 +00:00
Matt Aitken 9a529492d0 WhatsApp text messages are coming through 2023-01-31 16:24:05 +00:00
D-K-P f05cfc9895 Added new readme 2023-01-31 16:14:34 +00:00
D-K-P 659637c6a5 Added workflow gif 2023-01-31 16:06:23 +00:00
D-K-P 37bf4dcadd Docs updates - added viewing runs / updated welcome / added vid to resend example 2023-01-31 16:02:48 +00:00
Matt Aitken 950138bd72 More work on WhatsApp messages 2023-01-31 16:02:02 +00:00
Matt Aitken c578891947 Removed webhook payload validation 2023-01-31 14:42:23 +00:00
Eric Allam f377aba208 Merge pull request #35 from triggerdotdev/dev
Move to dual license
2023-01-31 14:33:33 +00:00
Eric Allam b852731fbb Move to dual license 2023-01-31 14:32:47 +00:00
Eric Allam 55a9031526 Merge pull request #34 from triggerdotdev/dev
Create separate packages for each integration
2023-01-31 14:11:23 +00:00
Eric Allam 5c350e216a Releasing fix for missing types 2023-01-31 13:56:06 +00:00
Eric Allam 8ac7414bba Remove exports and add main and types to package.json 2023-01-31 13:55:49 +00:00
Matt Aitken 6e8d9b4c9a WIP on webhook verification 2023-01-31 13:14:47 +00:00
Eric Allam 1dc9e1253a Set sentry to use staging env in staging 2023-01-31 12:47:03 +00:00
Eric Allam 24afe630ec Fixed call to getIntegrations in new workflow route 2023-01-31 12:42:49 +00:00
Eric Allam 5bd1f12c0d Fixed broken integration creation route 2023-01-31 12:39:14 +00:00
Eric Allam 7e3dfcdfb1 Add staging provider auth 2023-01-31 12:36:16 +00:00
Matt Aitken 24b57e026b Added support for verifying webhooks, with WhatsApp working 2023-01-31 11:57:15 +00:00
Matt Aitken 3dd0af6157 Installed @trigger.dev/whatsapp 2023-01-31 11:56:15 +00:00
Eric Allam cdaa5dfe3b Update staging to use staging auth 2023-01-31 10:25:32 +00:00
Matt Aitken a4a64affd4 Make the generic webhook input fields readonly so to get rid of React error 2023-01-31 10:18:21 +00:00
Matt Aitken a20a26e748 Updated settings for WhatsApp to match other integration packages 2023-01-31 09:53:24 +00:00
Matt Aitken 4fb9091870 Merge branch 'dev' into integrations/whatsapp
# Conflicts:
#	apps/webapp/package.json
#	apps/webapp/tsconfig.json
#	integrations/github/package.json
#	integrations/github/tsup.config.ts
#	integrations/resend/package.json
#	integrations/resend/tsup.config.ts
#	integrations/shopify/package.json
#	integrations/shopify/tsup.config.ts
#	integrations/slack/package.json
#	integrations/slack/tsup.config.ts
#	integrations/whatsapp/package.json
#	packages/integration-catalog/package.json
#	packages/integration-catalog/src/index.ts
#	packages/integration-catalog/tsconfig.json
#	packages/integration-sdk/package.json
#	pnpm-lock.yaml
2023-01-31 09:48:20 +00:00
Matt Aitken 7b29422a57 Initial setup on new WhatsApp integration 2023-01-31 09:46:34 +00:00
Eric Allam 1ef4243aaf Fixed workflow list blank state 2023-01-31 09:03:00 +00:00
D-K-P 1b696cabc1 Changed ‘login’ to ‘continue’ and updated text 2023-01-31 08:46:15 +00:00
Matt Aitken 3496053e11 Updated the CLI to point at the internal integrations metadata 2023-01-31 08:42:35 +00:00
Eric Allam fd54c86240 Updated s-webapp watch paths 2023-01-31 08:42:35 +00:00
Eric Allam 064e27f05d Update all the docs for the new packages 2023-01-31 08:42:35 +00:00
Eric Allam 89d38c04aa Added changesets for the new packages 2023-01-31 08:42:35 +00:00
Eric Allam 6c027c3c8f Remove trigger-providers, trigger-integrations, and internal-integrations and replace with integrations-catalog 2023-01-31 08:42:35 +00:00
Eric Allam fad8f44ad1 Breakout shopify into it’s own package 2023-01-31 08:42:35 +00:00
Eric Allam 5f517a5c70 Breakout resend into it’s own package 2023-01-31 08:42:35 +00:00
Eric Allam 09142cedd1 Moved internal only dependencies to devDependencies 2023-01-31 08:42:35 +00:00
Eric Allam 2bb7bad947 Breakout slack into it’s own package 2023-01-31 08:42:35 +00:00
Eric Allam d71c61fc56 Break out github into it’s own package 2023-01-31 08:42:35 +00:00
Eric Allam 3f9e7f4bda Cleanup the github stars example 2023-01-31 08:42:35 +00:00
Eric Allam e2261942a0 Added openapi spec doc and a reference page for the POST /events endpoint 2023-01-31 08:42:35 +00:00
D-K-P a015e535f0 Added github star example to the docs 2023-01-31 08:42:35 +00:00
Eric Allam 6c3c99123b Make it easier to start ngrok in different regions 2023-01-31 08:42:35 +00:00
Eric Allam c96f9f10b4 Rename Reference to SDK Reference 2023-01-31 08:42:35 +00:00
James Ritchie 23fc242dde Typo 2023-01-31 08:42:35 +00:00
James Ritchie c1ca53f513 Typo 2023-01-31 08:42:35 +00:00
James Ritchie b8dc408f0f Title improvement 2023-01-31 08:42:35 +00:00
James Ritchie b129381cf2 Improved docs title for github star example 2023-01-31 08:42:35 +00:00
James Ritchie 0141643b66 Updated the github docs example 2023-01-31 08:42:35 +00:00
James Ritchie 36cdf50c7c Removed dead link 2023-01-31 08:42:35 +00:00
D-K-P f660810fb8 Added 2 more integration logos 2023-01-31 08:42:35 +00:00
James Ritchie 8372cf71d4 Fixed a dead link in the docs 2023-01-31 08:42:35 +00:00
James Ritchie 4adad0041a Fixed typo 2023-01-31 08:42:35 +00:00
Eric Allam 887f9d1091 Try moving some shopify dependencies to prod deps 2023-01-30 21:23:04 +00:00
Eric Allam 91130472a9 Try moving @octokit/webhooks into normal deps 2023-01-30 20:55:31 +00:00
Eric Allam 7554b48948 Pushes to dev will now trigger staging deploys 2023-01-30 20:54:29 +00:00
Eric Allam 91b1edba7b Try bundling @octokit/webhooks 2023-01-30 20:46:09 +00:00
Eric Allam be86c3d45d Create a separate build entry for internal packages 2023-01-30 18:10:59 +00:00
Eric Allam 7f2fd9b1b3 Update the github client id for staging 2023-01-30 17:54:36 +00:00
Matt Aitken 4c23370735 Merge pull request #33 from triggerdotdev/dev
Fix for refresh causing server/client mismatch. Using Remix's latest entry.*.ts files
2023-01-29 09:21:36 -08:00
Matt Aitken da948c4f4b Merge pull request #32 from triggerdotdev/dev
Pass the providers into the no workflows component – it isn’t a page
2023-01-29 08:51:22 -08:00
Eric Allam c1b9aee818 Merge pull request #31 from triggerdotdev/dev
Fix issue with zod schemas getting serialized through loaders and causing errors
2023-01-29 07:07:27 +00:00
Matt Aitken 0f187803ae Merge pull request #30 from triggerdotdev/dev
Made the Slack interactivity zod schema any (to see if this is causin…
2023-01-28 17:54:07 -08:00
Matt Aitken 5423d5464f Merge pull request #29 from triggerdotdev/dev
Removed the @trigger.dev/sdk and /integrations packages from webapp
2023-01-27 23:26:17 -08:00
Matt Aitken 251b64ccf2 Revert "Revert "Merge pull request #28 from triggerdotdev/dev""
This reverts commit d6512b2ba5.
2023-01-27 23:24:26 -08:00
Matt Aitken 3e9e743751 Revert "Revert "Merge pull request #27 from triggerdotdev/dev""
This reverts commit 888c8a7460.
2023-01-27 23:24:20 -08:00
Matt Aitken 1fc7020b84 Revert "Revert "Merge pull request #26 from triggerdotdev/dev""
This reverts commit 35aedadfe9.
2023-01-27 23:24:15 -08:00
Matt Aitken 0137dac540 Revert "Revert "Merge pull request #25 from triggerdotdev/dev""
This reverts commit ba617fa7d7.
2023-01-27 23:24:11 -08:00
Matt Aitken 95d594457c Revert "Revert "Merge pull request #24 from triggerdotdev/dev""
This reverts commit 416c46d4cf.
2023-01-27 23:24:07 -08:00
Matt Aitken 416c46d4cf Revert "Merge pull request #24 from triggerdotdev/dev"
This reverts commit 56e5a5c8a4, reversing
changes made to a1b16400d5.
2023-01-27 22:13:54 -08:00
Matt Aitken ba617fa7d7 Revert "Merge pull request #25 from triggerdotdev/dev"
This reverts commit ef149bd260, reversing
changes made to 56e5a5c8a4.
2023-01-27 22:13:50 -08:00
Matt Aitken 35aedadfe9 Revert "Merge pull request #26 from triggerdotdev/dev"
This reverts commit 26c1c9f4b2, reversing
changes made to ef149bd260.
2023-01-27 22:13:47 -08:00
Matt Aitken 888c8a7460 Revert "Merge pull request #27 from triggerdotdev/dev"
This reverts commit c954b3743f, reversing
changes made to 26c1c9f4b2.
2023-01-27 22:13:35 -08:00
Matt Aitken d6512b2ba5 Revert "Merge pull request #28 from triggerdotdev/dev"
This reverts commit 92391c48cb, reversing
changes made to c954b3743f.
2023-01-27 22:13:19 -08:00
Matt Aitken 92391c48cb Merge pull request #28 from triggerdotdev/dev
Added an error boundary and set the remix-typedjson version to 0.1.3
2023-01-27 20:13:48 -08:00
Matt Aitken c954b3743f Merge pull request #27 from triggerdotdev/dev
Removed TypeForm, pull types of UseOrganizations from the loader
2023-01-27 19:29:14 -08:00
Matt Aitken 26c1c9f4b2 Merge pull request #26 from triggerdotdev/dev
Try catch the date formatting and return “unknown”
2023-01-27 18:27:45 -08:00
Matt Aitken ef149bd260 Merge pull request #25 from triggerdotdev/dev
Dev
2023-01-27 18:05:48 -08:00
Matt Aitken 56e5a5c8a4 Merge pull request #24 from triggerdotdev/dev
Added support for Slack blocks and interactivity. Docs improvements
2023-01-27 17:05:27 -08:00
Eric Allam a1b16400d5 Merge pull request #23 from triggerdotdev/dev
Fixed issue where workflow runs weren’t starting
2023-01-26 16:30:11 +00:00
Eric Allam 6bc46a8b90 Merge pull request #22 from triggerdotdev/dev
Remove internal triggers, fixed issue with react being required by @trigger.dev/integrations
2023-01-26 14:56:26 +00:00
Eric Allam 519293ca03 Merge pull request #21 from triggerdotdev/dev
Using explicit workspace: reference so we can use live packages in the monorepo
2023-01-26 14:22:10 +00:00
Eric Allam e8dfa4bea7 Merge pull request #20 from triggerdotdev/dev
Move internal triggers into their own service
2023-01-26 13:57:05 +00:00
Eric Allam fb6d254898 Merge pull request #19 from triggerdotdev/dev
More internal triggers
2023-01-26 11:52:35 +00:00
Eric Allam 7faf4312b1 Merge pull request #18 from triggerdotdev/dev
Support schedule window queries, context.isTest, and a fix for GitHub webhooks
2023-01-26 10:50:53 +00:00
Matt Aitken 3710f99270 Merge pull request #17 from triggerdotdev/dev
Added Resend docs example, removed more private beta references #17
2023-01-25 22:59:51 -08:00
Matt Aitken ea9a839886 Merge pull request #16 from triggerdotdev/dev
Fix for webhook url being built with undefined if APP_ORIGIN env var isn't set
2023-01-25 19:25:35 -08:00
Matt Aitken 94f2de81ea Merge pull request #15 from triggerdotdev/dev
Better handling of custom webhook parsing, improved webhook receive error handling
2023-01-25 18:33:24 -08:00
Matt Aitken 5ea825f5eb Merge pull request #14 from triggerdotdev/dev
Fix for integration webhook url, improved types for Resend integration
2023-01-25 17:13:16 -08:00
Matt Aitken 88306d6a63 Removed private beta message at the start of the README 2023-01-25 15:33:20 -08:00
Matt Aitken 80ebc1b1fa Merge pull request #13 from triggerdotdev/dev
Added generic webhook, fetch with retry options and updated docs
2023-01-25 15:28:40 -08:00
James Ritchie f10dadbd9f Fixed Toast widths 2023-01-24 16:53:55 -08:00
Matt Aitken 4085ad983c Merge pull request #12 from triggerdotdev/dev
Resend.com integration, fix for github webhooks, and more
2023-01-24 12:00:43 -08:00
Eric Allam 63776c7702 Merge pull request #8 from triggerdotdev/dev
Generic fetch support, and more docs
2023-01-23 14:13:52 +00:00
Matt Aitken ce8d146ed4 Merge pull request #7 from triggerdotdev/dev
Better local TypeScript support, added GitHub stars webhook and small web app improvements
2023-01-22 18:33:50 -08:00
Matt Aitken b45a5c60f7 Merge remote-tracking branch 'origin/dev' 2023-01-20 17:45:56 -08:00
Matt Aitken 1c62f16117 Merge remote-tracking branch 'origin/dev' 2023-01-20 14:24:55 -08:00
Matt Aitken 67a0d54f74 Merge pull request #6 from triggerdotdev/dev
Slack postMessage now takes channelId or channelName
2023-01-20 14:17:43 -08:00
1917 changed files with 122899 additions and 41551 deletions
+11 -4
View File
@@ -2,14 +2,21 @@
"$schema": "https://unpkg.com/@changesets/config@2.2.0/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"fixed": [],
"fixed": [
[
"@trigger.dev/*"
]
],
"linked": [],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": [
"wss",
"webapp",
"docs"
]
"emails",
"@trigger.dev/database"
],
"___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": {
"onlyUpdatePeerDependentsWhenOutOfRange": true
}
}
-8
View File
@@ -1,8 +0,0 @@
# You need to stop and re-run docker to switch, `pnpm run docker:db`
# To login using GitHub and connect via OAuth with most integrations
AUTH_CALLBACK_URL=http://localhost:3004/oauth/callback
# To connect with Slack
# AUTH_CALLBACK_URL=https://<ngrok subdomain>.eu.ngrok.io/oauth/callback
# You only need to use this locally if you specify PIZZLY_SECRET_KEY in the webapp .env file
# PIZZLY_SECRET_KEY=<secret_key>
+22 -5
View File
@@ -1,37 +1,54 @@
*.log
\*.log
.git
.github
# editor
.idea
.vscode
# dependencies
node_modules
.pnp
.pnp.js
# testing
coverage
# next.js
.next/
build
# packages
build
dist
packages/**/dist
packages/\*\*/dist
# misc
.DS_Store
*.pem
\*.pem
.turbo
.vercel
.cache
.output
apps/**/public/build
apps/\*\*/public/build
cypress/screenshots
cypress/videos
apps/**/styles/tailwind.css
packages/**/styles/tailwind.css
packages/**/styles/tailwind.css
.changeset
references
examples
CHANGESETS.md
CONTRIBUTING.md
README.md
LICENSE
+38
View File
@@ -0,0 +1,38 @@
# YOU MIGHT LIKE TO MODIFY THESE VARIABLES
SESSION_SECRET=abcdef1234
MAGIC_LINK_SECRET=abcdef1234
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
LOGIN_ORIGIN=http://localhost:3030
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/postgres?schema=public
# This sets the URL used for direct connections to the database and should only be needed in limited circumstances
# See: https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#fields:~:text=the%20shadow%20database.-,directUrl,-No
DIRECT_URL=${DATABASE_URL}
REMIX_APP_PORT=3030
APP_ENV=development
APP_ORIGIN=http://localhost:3030
NODE_ENV=development
# OPTIONAL VARIABLES
# This is used for logging in via GitHub. You can leave these commented out if you don't want to use GitHub for authentication.
# AUTH_GITHUB_CLIENT_ID=
# AUTH_GITHUB_CLIENT_SECRET=
# Resend is an email service used for signing in to Trigger.dev via a Magic Link.
# Emails will print to the console if you leave these commented out
### Visit https://resend.com, create an account and get your API key. Then insert it below along with your From and Reply To email addresses. Visit https://resend.com/docs for more information.
# RESEND_API_KEY=<api_key>
# FROM_EMAIL=
# REPLY_TO_EMAIL=
# CLOUD VARIABLES
POSTHOG_PROJECT_KEY=
PLAIN_API_KEY=
CLOUD_AIRTABLE_CLIENT_ID=
CLOUD_AIRTABLE_CLIENT_SECRET=
CLOUD_GITHUB_CLIENT_ID=
CLOUD_GITHUB_CLIENT_SECRET=
CLOUD_LINEAR_CLIENT_ID=
CLOUD_LINEAR_CLIENT_SECRET=
CLOUD_SLACK_APP_HOST=
CLOUD_SLACK_CLIENT_ID=
CLOUD_SLACK_CLIENT_SECRET=
+38
View File
@@ -0,0 +1,38 @@
name: 🐞 Bug Report
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.
+5
View File
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Ask a Question
url: https://trigger.dev/discord
about: Ask questions and discuss with other community members
@@ -0,0 +1,27 @@
name: Feature Request
description: Suggest an idea for this project
title: "feat: "
labels: ["🌟 enhancement"]
body:
- type: textarea
attributes:
label: Is your feature request related to a problem? Please describe.
description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
validations:
required: true
- type: textarea
attributes:
label: Describe the solution you'd like to see
description: A clear and concise description of what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Describe alternate solutions
description: A clear and concise description of any alternative solutions or features you've considered.
validations:
required: true
- type: textarea
attributes:
label: Additional information
description: Add any other information related to the feature here. If your feature request is related to any issues or discussions, link them here.
+12
View File
@@ -0,0 +1,12 @@
"📌 area: cli":
- any: ["cli/**/*"]
"📌 area: t3-app":
- any: ["cli/template/**/*"]
"📚 documentation":
- any: ["www/**/*"]
- any: ["**/*.md"]
"📌 area: ci":
- any: [".github/**/*"]
+27
View File
@@ -0,0 +1,27 @@
Closes #<issue>
## ✅ Checklist
- [ ] I have followed every step in the [contributing guide](https://github.com/triggerdotdev/trigger.dev/blob/main/CONTRIBUTING.md)
- [ ] The PR title follows the convention.
- [ ] I ran and tested the code works
---
## Testing
_[Describe the steps you took to test this change]_
---
## Changelog
_[Short description of what has changed]_
---
## Screenshots
_[Screenshots]_
💯
+227
View File
@@ -0,0 +1,227 @@
name: 🚀 Publish Trigger.dev Docker
on:
push:
branches:
- main
- improvements/*
tags:
- "v.docker.*"
paths:
- ".github/workflows/publish.yml"
- "packages/**"
- "!packages/**/*.md"
- "!packages/**/*.eslintrc"
- "apps/**"
- "!apps/**/*.md"
- "!apps/**/*.eslintrc"
- "integrations/**"
- "!integrations/**/*.md"
- "!integrations/**/*.eslintrc"
- "pnpm-lock.yaml"
- "pnpm-workspace.yaml"
- "turbo.json"
- "docker/Dockerfile"
- "docker/scripts/**"
- "tests/**"
permissions:
id-token: write
packages: write
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
env:
AWS_REGION: us-east-1
jobs:
typecheck:
name: ʦ TypeScript
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
- name: ⬇️ Checkout repo
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: ⎔ Setup pnpm
uses: pnpm/action-setup@v2.2.4
with:
version: 7.18
- name: ⎔ Setup node
uses: buildjet/setup-node@v3
with:
node-version: 18
cache: "pnpm"
- name: 📥 Download deps
run: pnpm install --frozen-lockfile
- name: 📀 Generate Prisma Client
run: pnpm run generate
- name: 🔎 Type check
run: pnpm run typecheck --filter webapp
unitTests:
name: Unit Tests
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
- name: ⬇️ Checkout repo
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: ⎔ Setup pnpm
uses: pnpm/action-setup@v2.2.4
with:
version: 7.18
- name: ⎔ Setup node
uses: buildjet/setup-node@v3
with:
node-version: 18
cache: "pnpm"
- name: 📥 Download deps
run: pnpm install --frozen-lockfile
- name: Run Unit Tests
run: |
pnpm run test
e2e:
name: e2e Tests
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
- name: 🐳 Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: ⬇️ Checkout repo
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: ⎔ Setup pnpm
uses: pnpm/action-setup@v2.2.4
with:
version: 7.18
- name: ⎔ Setup node
uses: buildjet/setup-node@v3
with:
node-version: 18
cache: "pnpm"
- name: 📥 Download deps
run: pnpm install --frozen-lockfile
- name: Install Playwright Browsers
run: npx playwright install --with-deps
- name: Run Playwright tests
run: |
# Setup environment variables
cp ./.env.example ./.env
cp ./references/nextjs-test/.env.example ./references/nextjs-test/.env.local
# Build packages
pnpm run build --filter @references/nextjs-test^...
pnpm --filter @trigger.dev/database generate
# Move trigger-cli bin to correct place
pnpm install --frozen-lockfile
# Execute tests
pnpm run docker
pnpm run db:migrate
pnpm run db:seed
pnpm run test:e2e
# Cleanup
pnpm run docker:stop
- name: Upload Playwright report
uses: actions/upload-artifact@v3
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 30
publish:
needs: [typecheck, unitTests, e2e]
runs-on: buildjet-4vcpu-ubuntu-2204
outputs:
version: ${{ steps.get_version.outputs.version }}
short_sha: ${{ steps.get_commit.outputs.sha_short }}
steps:
- name: 🐳 Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: ⬇️ Checkout repo
uses: actions/checkout@v3
- name: 🆚 Get the version
id: get_version
run: |
IMAGE_TAG="${GITHUB_REF#refs/tags/}"
if [[ $GITHUB_REF == refs/tags/* ]]; then
if [[ $IMAGE_TAG == v.docker.* ]]; then
ORIGINAL_VERSION="${IMAGE_TAG#v.docker.}"
IMAGE_TAG="v${ORIGINAL_VERSION}"
fi
echo "IMAGE_TAG=${IMAGE_TAG}"
elif [[ $GITHUB_REF == refs/heads/improvements/* ]]; then
ORIGINAL_VERSION="${GITHUB_REF#refs/heads/improvements/}"
IMAGE_TAG="${ORIGINAL_VERSION}.rc"
echo "IMAGE_TAG=${IMAGE_TAG}"
elif [[ $GITHUB_REF == refs/heads/* ]]; then
IMAGE_TAG="${GITHUB_REF#refs/heads/}"
echo "IMAGE_TAG=${IMAGE_TAG}"
else
echo "Invalid reference: ${GITHUB_REF}"
exit 1
fi
echo "::set-output name=version::${IMAGE_TAG}"
- name: 🔢 Get the commit hash
id: get_commit
run: |
echo ::set-output name=sha_short::$(echo ${{ github.sha }} | cut -c1-7)
- name: 🐳 Build Docker Image
run: |
docker build -t release_build_image -f ./docker/Dockerfile .
- name: 🐙 Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: 🐙 Push to GitHub Container Registry
run: |
docker tag release_build_image $REGISTRY/$REPOSITORY:$IMAGE_TAG
docker push $REGISTRY/$REPOSITORY:$IMAGE_TAG
env:
REGISTRY: ghcr.io/triggerdotdev
REPOSITORY: trigger.dev
IMAGE_TAG: ${{ steps.get_version.outputs.version }}
- name: 🐙 Push 'latest' to GitHub Container Registry
if: startsWith(github.ref, 'refs/tags/')
run: |
docker tag release_build_image $REGISTRY/$REPOSITORY:latest
docker push $REGISTRY/$REPOSITORY:latest
env:
REGISTRY: ghcr.io/triggerdotdev
REPOSITORY: trigger.dev
+77
View File
@@ -0,0 +1,77 @@
name: 🦋 Changesets Release
on:
push:
branches:
- main
paths:
- ".github/workflows/release.yml"
- "packages/**"
- "!packages/**/*.md"
- ".changeset/**"
- "integrations/**"
- "!integrations/**/*.md"
- "pnpm-lock.yaml"
- "pnpm-workspace.yaml"
- "turbo.json"
jobs:
release:
name: 🦋 Changesets Release
runs-on: buildjet-4vcpu-ubuntu-2204
if: |
github.repository == 'triggerdotdev/trigger.dev'
outputs:
published_packages: ${{ steps.changesets.outputs.publishedPackages }}
published: ${{ steps.changesets.outputs.published }}
steps:
- name: 🛑 Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.11.0
- name: ⬇️ Checkout repo
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: ⎔ Setup pnpm
uses: pnpm/action-setup@v2.2.4
with:
version: 7.18
- name: ⎔ Setup node
uses: buildjet/setup-node@v3
with:
node-version: 18
cache: "pnpm"
- name: 📥 Download deps
run: pnpm install --frozen-lockfile
- name: 📀 Generate Prisma Client
run: pnpm run generate
- name: 🔎 Type check
run: pnpm run typecheck
- name: 🔐 Setup npm auth
run: |
echo "registry=https://registry.npmjs.org" >> ~/.npmrc
echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" >> ~/.npmrc
# This action has two responsibilities. The first time the workflow runs
# (initial push to the `main` branch) it will create a new branch and
# then open a PR with the related changes for the new version. After the
# PR is merged, the workflow will run again and this action will build +
# publish to npm.
- name: 🚀 PR / Publish
id: changesets
uses: changesets/action@v1
with:
version: pnpm run changeset:version
commit: "chore: Update version for release"
title: "chore: Update version for release"
publish: pnpm run changeset:release
createGithubReleases: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
+8 -1
View File
@@ -44,4 +44,11 @@ yarn-error.log*
.env
.output
apps/**/public/build
.tests-container-id.txt
.tests-container-id.txt
.sentryclirc
.buildt
**/tmp/
/test-results/
/playwright-report/
/playwright/.cache/
+1
View File
@@ -0,0 +1 @@
{ "workspaceId": "63e5e42daf9a537ba8d9503c" }
+2 -1
View File
@@ -1 +1,2 @@
link-workspace-packages=false
link-workspace-packages=false
public-hoist-pattern[]=*prisma*
+1 -1
View File
@@ -1 +1 @@
v16.19.0
v18.12.1
+11
View File
@@ -0,0 +1,11 @@
node_modules
.env
.env.local
pnpm-lock.yaml
tailwind.css
.babelrc.json
**/.react-email/
**/storybook-static/
**/.changeset/
**/build/
**/dist/
+16 -5
View File
@@ -5,18 +5,29 @@
"version": "0.2.0",
"configurations": [
{
"command": "pnpm run dev --filter webapp",
"name": "Run webapp",
"request": "launch",
"type": "node-terminal",
"cwd": "${workspaceFolder}"
"request": "launch",
"name": "Debug WebApp",
"command": "pnpm run dev --filter webapp",
"envFile": "${workspaceFolder}/apps/webapp/.env",
"cwd": "${workspaceFolder}",
"sourceMaps": true
},
{
"type": "chrome",
"request": "launch",
"name": "Chrome webapp",
"url": "http://localhost:3000",
"url": "http://localhost:3030",
"webRoot": "${workspaceFolder}/apps/webapp/app"
},
{
"type": "node-terminal",
"request": "launch",
"name": "Debug BYO Auth",
"command": "pnpm run byo-auth",
"envFile": "${workspaceFolder}/references/job-catalog/.env",
"cwd": "${workspaceFolder}/references/job-catalog",
"sourceMaps": true
}
]
}
-61
View File
@@ -1,61 +0,0 @@
# Warp Launch Configuration
#
#
# Use this to start a certain configuration of windows, tabs, and panes
# Open the launch configuration palette to access and open any launch configuration
#
# This file defines your launch configuration
# More on how to do so here:
# https://docs.warp.dev/features/session-management/launch-configurations
#
# All launch configurations are stored under ~/.warp/launch_configurations/
# Edit them anytime!
#
# You can also add commands that run on-start for your launch configurations like so:
# ---
# name: Example with Command
# windows:
# - tabs:
# - layout:
# cwd: /Users/warp-user/project
# commands:
# - exec: code .
---
name: Triggerdotdev
windows:
- tabs:
- title: webapp
layout:
split_direction: vertical
panes:
- cwd: /Users/eric/code/triggerdotdev/trigger.dev
commands:
- exec: pnpm run dev --filter webapp
- cwd: /Users/eric/code/triggerdotdev/trigger.dev/apps/webapp
- title: ngrok
layout:
split_direction: horizontal
panes:
- cwd: /Users/eric/code/triggerdotdev/trigger.dev
commands:
- exec: ./scripts/proxy-webapp.sh <your-trigger-dev>
- cwd: /Users/eric/code/triggerdotdev/trigger.dev
commands:
- exec: ./scripts/proxy-pizzly.sh <your-pizzly-dev>
- title: wss and examples
layout:
split_direction: horizontal
panes:
- cwd: /Users/eric/code/triggerdotdev/trigger.dev/apps/wss
commands:
- exec: LOG_LEVEL=debug pnpm run dev
- cwd: /Users/eric/code/triggerdotdev/trigger.dev/examples
- title: emails
layout:
split_direction: horizontal
panes:
- cwd: /Users/eric/Work/Git/APIHero/trigger.dev/packages/emails
commands:
- exec: pnpm run dev
- cwd: /Users/eric/Work/Git/APIHero/trigger.dev/packages/emails
+26 -9
View File
@@ -4,18 +4,35 @@ Trigger.dev uses [changesets](https://github.com/changesets/changesets) to manag
## Adding a changeset
To add a changeset, use `pnpm run changeset:add` and follow the instructions [here](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md). Please only ever select one of our public packages when adding a changeset, which currently are:
To add a changeset, use `pnpm run changeset:add` and follow the instructions [here](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md). Please only ever select one of our public packages when adding a changeset.
- `@trigger.dev/sdk`
- `@trigger.dev/integration-sdk`
- `@trigger.dev/github`
- `@trigger.dev/slack`
- `@trigger.dev/shopify`
- `@trigger.dev/resend`
## Release instructions
## Release instructions (local only)
Based on the instructions [here](https://github.com/changesets/changesets/blob/main/docs/intro-to-using-changesets.md)
1. Run `pnpm run changeset:version`
2. Run `pnpm run changeset:release`
## Release instructions (CI)
Please follow the best-practice of adding changesets in the same commit as the code making the change with `pnpm run changeset:add`, as it will allow our release.yml CI workflow to function properly:
- Anytime new changesets are added in a commit in the `main` branch, the [release.yml](./.github/workflows/release.yml) workflow will run and will automatically create/update a PR with a fresh run of `pnpm run changeset:version`.
- When the version PR is merged into `main`, the release.yml workflow will automatically run `pnpm run changeset:release` to build and release packages to npm.
## Pre-release instructions
1. Add changesets as usual `pnpm run changeset:add`
2. Switch to pre-release mode by running `pnpm run changeset:next`
3. Create version `pnpm run changeset:version`
4. Release `pnpm run changeset:release`
5. Switch back to normal mode by running `pnpm run changeset:normal`
## Snapshot instructions
!MAKE SURE TO UPDATE THE TAG IN THE INSTRUCTIONS BELOW!
1. Add changesets as usual `pnpm run changeset:add`
2. Create a snapshot version (replace "dev" with your tag) `pnpm exec changeset version --snapshot dev`
3. Build the packages: `pnpm run build --filter "@trigger.dev/*"`
4. Publish the snapshot (replace "dev" with your tag) `pnpm exec changeset publish --no-git-tag --snapshot --tag dev`
+303
View File
@@ -0,0 +1,303 @@
# Contributing to Trigger.dev
Thank you for taking the time to contribute to Trigger.dev. Your involvement is not just welcomed, but we encourage it! 🚀
Please take some time to read this guide to understand contributing best practices for Trigger.dev.
Thank you for helping us make Trigger.dev even better! 🤩
## Developing
The development branch is `main`. This is the branch that all pull
requests should be made against. The changes on the `main`
branch are tagged into a release monthly.
### Prerequisites
- [Node.js](https://nodejs.org/en) version >=16.x
- [pnpm package manager](https://pnpm.io/installation) version 7
- [Docker](https://www.docker.com/get-started/)
### Setup
1. Clone the repo into a public GitHub repository or [fork the repo](https://github.com/triggerdotdev/trigger.dev/fork). If you plan to distribute the code, keep the source code public to comply with the [Apache Licence 2.0](https://github.com/triggerdotdev/trigger.dev/blob/main/LICENSE).
```
git clone https://github.com/<github_username>/trigger.dev.git
```
> If you are on windows, run the following command on gitbash with admin privileges:
> `git clone -c core.symlinks=true https://github.com/<github_username>/trigger.dev.git`
2. Navigate to the project folder
```
cd trigger.dev
```
3. Install the required packages using pnpm.
```
pnpm i
```
4. Create your `.env` file
```
cp .env.example .env
```
5. Open it and generate a new value for `ENCRYPTION_KEY`:
`ENCRYPTION_KEY` is used to two-way encrypt OAuth access tokens and so you'll probably want to actually generate a unique value, and it must be a random 16 byte hex string. You can generate one with the following command:
```sh
openssl rand -hex 16
```
Feel free to update `SESSION_SECRET` and `MAGIC_LINK_SECRET` as well using the same method.
6. Start Docker. This starts the required services like Postgres. If this is your first time using Docker, consider going through this [guide](DOCKER_INSTALLATION.md)
```
pnpm run docker
```
7. Migrate the database
```
pnpm run db:migrate
```
8. Build the app
```
pnpm run build --filter webapp
```
9. Run the seed script
```
pnpm run db:seed
```
10. Run the app. See the section below.
## Running
1. You can run the app with:
```
pnpm run dev --filter webapp
```
It should run on port `3030`: [http://localhost:3030](http://localhost:3030/)
2. Once the app is running click the magic link button and enter your email.
3. Check your terminal, the magic link email should have printed out as following:
```sh
webapp:dev: Log in to Trigger.dev
webapp:dev:
webapp:dev: Click here to log in with this magic link
webapp:dev: [http://localhost:3030/magic?token=U2FsdGVkX18OvB0JxgaswTLCSbaRz%2FY82TN0EZWhSzFyZYwgG%2BIzKVTkeiaOtWfotPw7F8RwFzCHh53aBpMEu%2B%2B%2FItb%2FcJYh89MSjc3Pz92bevoEjqxSQ%2Ff%2BZbks09JOpqlBbYC3FzGWC8vuSVFBlxqLXxteSDLthZSUaC%2BS2LaA%2BJgp%2BLO7hgjAaC2lXbCHrM7MTgTdXOFt7i0Dvvuwz6%2BWY25RnfomZOPqDsyH0xz8Q2rzPTz0Xu53WSXrZ1hd]
webapp:dev:
webapp:dev: If you didn't try to log in, you can safely ignore this email.
```
Paste the magic link shown in your terminal into your browser to login.
## Adding and running migrations
1. Modify packages/database/prisma/schema.prisma file
2. Change directory to the packages/database folder
```sh
cd packages/database
```
3. Generate the Prisma client
```sh
pnpm run generate
```
The above updates the prisma client generated into node_modules/.prisma/client folder. This helps with typing of relevant prisma models. It ensures typescript
recognizes fields added or removed from a model and type-checks appropriately.
4. Create and apply the migrations
```
pnpm run db:migrate:dev
```
This creates a migration file and executes the migrations against your database and applies changes to the database schema(s)
5. Commit generated migrations as well as changes to the schema.prisma file
6. If you're using VSCode you may need to restart the Typescript server in the webapp to get updated type inference. Open a TypeScript file, then open the Command Palette (View > Command Palette) and run `TypeScript: Restart TS server`.
## Testing CLI changes
To test CLI changes, follow the steps below:
1. Build the CLI and watch for changes
```sh
cd packages/cli
pnpm run dev
```
2. Open a new Terminal window and run the webapp locally and then create a new project in the dashboard. Copy out the dev API key.
3. Create a new temporary Next.js app in references directory
```sh
cd ./references
pnpm create next-app@latest test-cli --ts --no-eslint --tailwind --app --src-dir --import-alias "@/*"
```
4. Then once that's finished, add the `@trigger.dev/cli` to the `devDependencies` of the newly created Next.js app's `package.json` file, like so:
```json
{
// other package.json properties
"devDependencies": { "@trigger.dev/cli": "workspace:*" }
}
```
5. Back in the terminal, navigate into the reference, and initialize the CLI. When prompted, select `self-hosted` and enter `localhost:3030` if you are testing against the local instance of Trigger.dev, or you can just use the Trigger.dev cloud. When asked for an API key, use the key you copied earlier.
```sh
cd ./test-cli
pnpm i
pnpm exec trigger-cli init
```
6. If you are just testing the `init` command, you can stop here. If you'd like to test the `dev` command, first start the Next.js app on port 3000:
```sh
pnpm run dev
```
7. Open a new terminal window, and then run the `dev` command like so:
```sh
pnpm exec trigger-cli dev
```
8. Please remember to delete the temporary project you created after you've tested the changes, and before you raise a PR.
## Running end-to-end webapp tests
To run the end-to-end tests, follow the steps below:
1. Set up environment variables (copy example envs into the correct place)
```sh
cp ./.env.example ./.env
cp ./references/nextjs-test/.env.example ./references/nextjs-test/.env.local
```
2. Set up dependencies
```sh
# Build packages
pnpm run build --filter @references/nextjs-test^...
pnpm --filter @trigger.dev/database generate
# Move trigger-cli bin to correct place
pnpm install --frozen-lockfile
# Install playwrite browsers (ONE TIME ONLY)
npx playwright install
```
3. Set up the database
```sh
pnpm run docker
pnpm run db:migrate
pnpm run db:seed
```
4. Run the end-to-end tests
```sh
pnpm run test:e2e
```
### Cleanup
The end-to-end tests use a `setup` and `teardown` script to seed the database with test data. If the test runner doesn't exit cleanly, then the database can be left in a state where the tests can't run because the `setup` script will try to create data that already exists. If this happens, you can manually delete the `users` and `organizations` from the database using prisma studio:
```sh
# With the database running (i.e. pnpm run docker)
pnpm run db:studio
```
## Add sample jobs
The [references/job-catalog](./references/job-catalog/) project defines simple jobs you can get started with.
1. `cd` into `references/job-catalog`
2. Create a `.env` file with the following content,
replacing `<TRIGGER_DEV_API_KEY>` with an actual key:
```env
TRIGGER_API_KEY=[TRIGGER_DEV_API_KEY]
TRIGGER_API_URL=http://localhost:3030
```
`TRIGGER_API_URL` is used to configure the URL for your Trigger.dev instance,
where the jobs will be registered.
3. Run one of the the `job-catalog` files:
```sh
pnpm run events
```
This will open up a local server using `express` on port 8080. Then in a new terminal window you can run the trigger-cli dev command:
```sh
pnpm run dev:trigger
```
See the [Job Catalog](./references/job-catalog/README.md) file for more.
4. Navigate to your trigger.dev instance ([http://localhost:3030](http://localhost:3030/)), to see the jobs.
You can use the test feature to trigger them.
## Making a pull request
**If you get errors, be sure to fix them before committing.**
- Be sure to [check the "Allow edits from maintainers" option](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork) while creating you PR.
- If your PR refers to or fixes an issue, be sure to add `refs #XXX` or `fixes #XXX` to the PR description. Replacing `XXX` with the respective issue number. See more about [Linking a pull request to an issue
](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue).
- Be sure to fill the PR Template accordingly.
## Adding changesets
We use [changesets](https://github.com/changesets/changesets) to manage our package versions and changelogs. If you've never used changesets before, first read [their guide here](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md).
If you are contributing a change to any packages in this monorepo (anything in either the `/packages` or `/integrations` directories), then you will need to add a changeset to your Pull Requests before they can be merged.
To add a changeset, run the following command in the root of the repo
```sh
pnpm run changeset:add
```
Here's an example of creating a `patch` changeset for the `@trigger.dev/github` and `@trigger.dev/slack` packages (click to view):
[![asciicast](https://asciinema.org/a/599228.svg)](https://asciinema.org/a/599228)
You will be prompted to select which packages to include in the changeset. Only select the packages that you have made changes for.
Most of the time the changes you'll make are likely to be categorized as patch releases. If you feel like there is the need for a minor or major release of the package based on the changes being made, add the changeset as such and it will be discussed during PR review.
## Troubleshooting
### EADDRINUSE: address already in use :::3030
When receiving the following error message:
```sh
webapp:dev: Error: listen EADDRINUSE: address already in use :::3030
```
The process running on port `3030` should be destroyed.
1. Get the `PID` of the process running on PORT `3030`
```sh
lsof -i :3030
```
2. Kill the process
```sh
sudo kill -9 <PID>
```
-32
View File
@@ -1,32 +0,0 @@
# Trigger.dev Deployment Guide
## StreamNative Cloud - Hosted Pulsar
### Generic client credentials
```sh
snctl auth export-service-account webapp --key-file webapp-credentials.json
snctl auth export-service-account websocketserver --key-file wss-credentials.json
```
### Topics
#### Triggers (`persistent://triggerdotdev/workflows/triggers`)
Events that trigger workflows to run. These are sent by the "platform" and read by the Web Socket Servers, which then coordinate with the hosts for running the workflows
#### Run Commands (`persistent://triggerdotdev/workflows/run-commands`)
These are events that come from hosts and are published by the Web Socket Servers, e.g. Sending Integration Requests, Sending Logs, Initializing a Delay
#### Run Command Responses (`persistent://triggerdotdev/workflows/run-command-responses`)
These are events that come from the platform and are read by the Web Socket Servers, to resolve or reject a previous Run Command
#### Integration Requests (`persistent://triggerdotdev/queues/integration-requests`)
This is an internal queue used by the platform to perform integration requests, and retry them.
#### App Task Queue (`persistent://triggerdotdev/queues/background-tasks`)
This is an internal queue used by the platform to do tasks in a queue. Basically a background job system.
-229
View File
@@ -1,229 +0,0 @@
# Initial setup
## Prerequisites
### Pulsar requirements
1. Ensure you have Homebrew installed by running `which brew` in terminal. If it's not found then you should install it: https://brew.sh/. Run `which brew` again to check it's found. If it's not you may need to [add it your path](https://stackoverflow.com/questions/36657321/after-installing-homebrew-i-get-zsh-command-not-found-brew)
2. Run `brew install libpulsar` to install the C++ libraries that the pulsar-client depends on
3. Make sure you have Python installed on your machine by running `which python3` in terminal.
4. If python isn't found then you should install it: https://www.python.org/downloads/. In a new terminal window run `which python3` again.
5. Run `npm config set python /the/path/from/the/which/python3/command` inserting the path from step 2 or 3
6. Install node-gyp: `npm install -g node-gyp`
7. Make sure you have the Xcode command line tools installed by running `xcode-select --install` from the terminal. If it says they're already installed then you're set.
8. Run this in the terminal:
```sh
export CPLUS_INCLUDE_PATH="$CPLUS_INCLUDE_PATH:$(brew --prefix)/include"
export LIBRARY_PATH="$LIBRARY_PATH:$(brew --prefix)/lib"
export PULSAR_CPP_DIR=/opt/homebrew/Cellar/libpulsar/3.1.0
```
9. Run `pnpm install` in the same terminal window.
## Building and running the webapp
> **Warning**
> All the following commands should be launched from the **monorepo root directory**
1. Install the dependencies.
```bash
pnpm install
```
2. Optionally, if you are testing auth (pizzly) or webhooks (webapp) then you'll need to use ngrok to proxy internet traffic to your local machine
Get access to ngrok and then follow the instructions here to get it setup: https://ngrok.com/download (use homebrew) and make sure to authenticate.
Then run the following scripts to start proxying:
```sh
./scripts/proxy-pizzly.sh dan-pizzly-dev
./scripts/proxy-webapp.sh dan-trigger-dev
```
3. Environment variables. You will need to create copies of the `.env.example` files in `app/webapp`
```sh
cp ./apps/webapp/.env.example ./apps/webapp/.env
```
Then you will need to fill in the fields with real values.
You also need to create the `pizzly-server.env` files under the `.docker` directory:
```sh
cp ./.docker/pizzly-server.env.example ./.docker/pizzly-server.env
```
Next, update the `AUTH_CALLBACK_URL` env var in the `pizzly-server.env` env file with the value provided to the `./scripts/proxy-pizzly.sh` command. Using the example above the `AUTH_CALLBACK_URL` would be `AUTH_CALLBACK_URL=https://dan-pizzly-dev.eu.ngrok.io/oauth/callback`.
If you aren't proxying pizzly according to step 2, then leave the `pizzly-server.env` file empty.
If you are proxying the webapp according to step 2 then in `webapp/.env`, set the `APP_ORIGIN` to the `NGROK_SUBDOMAIN` provided to the `./scripts/proxy-webapp.sh` command, e.g. `APP_ORIGIN=https://dan-trigger-dev.eu.ngrok.io`
4. Start postgresql, pulsar, and pizzly server
```bash
pnpm run docker:db
```
> **Note:** The npm script will complete while Docker sets up the container in the background. Ensure that Docker has finished and your container is running before proceeding.
5. Generate prisma schema
```bash
pnpm run generate
```
6. Run the Prisma migration to the database
```bash
pnpm run db:migrate:deploy
```
7. Run the first build (with dependencies via the `...` option)
```bash
pnpm run build --filter=webapp...
```
**Running simply `pnpm run build` will build everything, including the Remix app.**
8. Run the Remix dev server
```bash
pnpm run dev --filter=webapp
```
## Attaching an API integration using Pizzly
```bash
PIZZLY_HOSTPORT=http://localhost:3004 npx pizzly config:create github github <client-id> <client-secret> "repo,user"
```
## Tests, Typechecks, Lint, Install packages...
Check the `turbo.json` file to see the available pipelines.
- Run the Cypress tests and Dev
```bash
pnpm run test:e2e:dev --filter=webapp
```
- Lint everything
```bash
pnpm run lint
```
- Typecheck the whole monorepo
```bash
pnpm run typecheck
```
- Test the whole monorepo
```bash
pnpm run test
or
pnpm run test:dev
```
- How to install an npm package in the Remix app ?
```bash
pnpm add dayjs --filter webapp
```
- Tweak the tsconfigs, eslint configs in the `config-package` folder. Any package or app will then extend from these configs.
# Running a workflow locally
## After pulling a change
1. Ensure there are no database migrations to run
```bash
pnpm run db:migrate:dev
```
2. Generate the Prisma database client
```bash
pnpm run generate
```
3. Install packages
```bash
pnpm install
```
4. Build everything
```bash
pnpm run build
```
5. Install packages again, this makes sure the local packages are linked
```bash
pnpm install
```
## Running the servers
1. Ensure the docker containers are running
```bash
pnpm run docker:db
```
2. Run the webapp
```bash
pnpm run dev --filter=webapp
```
3. Run the Web Socket Server
```bash
pnpm run dev --filter=wss
```
4. Build all the @trigger.dev/\* packages
```bash
pnpm run dev --filter="@trigger.dev/*"
```
## Running the smoke test
1. Run the smoke test workflow
```bash
cd ./examples/smoke-test
pnpm run dev
```
2. Running the workflow requires you to send data to the local API.
You can use this cURL command to send a `user.created` event. This will run the workflow and generate the corresponding logs.
```bash
curl --request POST \
--url http://localhost:3000/api/v1/events \
--header 'Authorization: Bearer trigger_dev_zC25mKNn6c0q' \
--header 'Content-Type: application/json' \
--data '{
"name": "user.created",
"payload": {
"id": "123"
}
}'
```
## Dependency & Package graph
![Dependency Graph](assets/dependencyGraph.png)
## Warp Launch Configuration
Setup a custom launch configuration for the Warp terminal ([docs here](https://docs.warp.dev/features/sessions/launch-configurations)) by copying the `.warp/triggerdotdev.yaml.example` file to `~/.warp/launch_configurations/triggerdotdev.yaml`. Make sure you edit the file and replace `<your-trigger-dev>` and `<your-pizzly-dev>` with your custom ngrok subdomains.
+126
View File
@@ -0,0 +1,126 @@
This guide covers installing Docker and Docker Compose. If you're looking for instructions for running Trigger.dev in docker, [see here](https://github.com/triggerdotdev/docker).
## Setting up Docker for the first time.
In the contributing guide of Trigger.dev, there's a section that requires you to start Docker.
If you don't have Docker installed on your machine, you'll run into some complications (errors).
Below are the steps on how you can avoid that.
First you need to setup docker-compose as it is an underlying tool that this command: `pnpm run docker` fires behind the scene.
## Linux
To install Docker Compose on Linux Ubuntu via the terminal, you can follow these steps:
1. Update the package index on your system by running the following command:
```shell
sudo apt update
```
2. Install the required dependencies by running the following command:
```shell
sudo apt install curl
```
3. Download the Docker Compose binary into the `/usr/local/bin` directory using the `curl` command:
```shell
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
```
4. Set the appropriate permissions to make the `docker-compose` binary executable:
```shell
sudo chmod +x /usr/local/bin/docker-compose
```
5. Verify that Docker Compose has been successfully installed by running the following command:
```shell
docker-compose --version
```
This command should display the version information of Docker Compose without any errors.
After following these steps, you should have Docker Compose installed on your Ubuntu system, and you can use it by running `docker-compose` commands in the terminal.
When you've verified that the `docker-compose` package is installed and you proceed to start Docker with `pnpm run docker`.
You'll probably get an error similar to the one below:
```shell
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
ELIFECYCLE Command failed with exit code 1.
```
The error message suggests that the Docker daemon is not running on your system. The Docker daemon is responsible for managing and running Docker containers.
To resolve this issue, you may need to install Docker properly on your Ubuntu system. Here are the steps to install Docker on Ubuntu:
1. Update the package index on your system by running the following command:
```shell
sudo apt update
```
2. Install the necessary packages to allow apt to use repositories over HTTPS:
```shell
sudo apt install apt-transport-https ca-certificates curl software-properties-common
```
3. Add the official Docker GPG key to your system by running the following command:
```shell
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
```
4. Add the Docker repository to the APT sources list:
```shell
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```
5. Update the package index again:
```shell
sudo apt update
```
6. Install Docker by running the following command:
```shell
sudo apt install docker-ce docker-ce-cli containerd.io
```
7. After the installation is complete, verify that Docker is installed correctly by running the following command:
```shell
docker --version
```
This command should display the version information of Docker without any errors.
Once Docker is installed and verified, you should be able to start the Docker daemon and run the `pnpm run docker` command without encountering any issues.
## Windows
1. Download the Docker Desktop installer from the Docker website: [Docker Desktop for Windows](https://www.docker.com/products/docker-desktop)
2. Run the installer and follow the instructions to install Docker Desktop.
3. After installation, Docker Desktop should be running automatically.
## macOS
1. Download the Docker Desktop installer from the Docker website: [Docker Desktop for Mac](https://www.docker.com/products/docker-desktop)
2. Run the installer and follow the instructions to install Docker Desktop.
3. After installation, Docker Desktop should be running automatically.
Please note that the instructions provided above are for the most common scenarios. For specific versions or different distributions, it's always a good idea to consult the official Docker documentation for the respective operating systems.
+157 -157
View File
@@ -2,180 +2,180 @@
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
@@ -186,16 +186,16 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Copyright [2023] [Trigger.dev]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+53 -345
View File
@@ -1,377 +1,85 @@
![Hero](https://raw.githubusercontent.com/triggerdotdev/trigger.dev/eebe37109e33beae6390ee19029fce8a5934c84b/apps/webapp/public/images/logo-banner.png)
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/a45d1fa2-0ae8-4a39-4409-f4f934bfae00/public">
<source media="(prefers-color-scheme: light)" srcset="https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/3f5ad4c1-c4c8-4277-b622-290e7f37bd00/public">
<img alt="Trigger.dev logo" src="https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/a45d1fa2-0ae8-4a39-4409-f4f934bfae00/public">
</picture>
### The open source background jobs framework
[Discord](https://discord.gg/JtBAxBr2m3) | [Website](https://trigger.dev) | [Issues](https://github.com/triggerdotdev/trigger.dev/issues) | [Docs](https://trigger.dev/docs)
[![Twitter](https://img.shields.io/twitter/url/https/twitter.com/triggerdotdev.svg?style=social&label=Follow%20%40trigger.dev)](https://twitter.com/triggerdotdev)
[![GitHub Repo stars](https://img.shields.io/github/stars/triggerdotdev/trigger.dev?style=social)](https://github.com/triggerdotdev/trigger.dev)
[![Docs](https://img.shields.io/badge/-Documentation-blueviolet)](https://docs.trigger.dev)
</div>
# About Trigger.dev
Create long-running jobs directly in your codebase with features like API integrations, webhooks, scheduling and delays.
# ⚙️ Effortless automation built for developers
## Long running Jobs on serverless
Trigger workflows from APIs, on a schedule, or on demand. API calls are easy with authentication handled for you. Add durable delays that survive server restarts.
Reliably run jobs and dont worry about function timeouts, we handle those for you.
![Hero](https://trigger.dev/_next/static/media/hero-image.4c367bbf.png?imwidth=1920)
# 💻 Developer-first features
- Auto-resume after a function timeout
- Auto-resume after a server outage
- Add delays of up to a year
## In your codebase
Trigger.dev is code-first so you can create workflows where they belong: in your codebase. Version control, localhost, test, review, and deploy like you're used to.
Create Jobs where they belong: in your codebase. Version control, localhost, test, review, and deploy like you're already used to.
## Secure by design
Your workflows run on your servers, not ours. We only receive the data you choose to send to us.
We only receive Triggers and the data you choose to send to us. You can even completely self-host the entire platform.
&nbsp;
## Don't worry about deployment
# Hundreds of Integrations
Just use our SDK to write Jobs in your codebase. There's nothing extra to deploy and no CI to configure, your Jobs just connect to our cloud. Or you can always self-host.
Subscribe to API changes and make requests, well handle authentication for you.
## Full visibility of every job run
&nbsp;
View every Task in every Run so you can tell exactly what happened.
# 🚀 Workflow examples
![image](https://www.trigger.dev/build/_assets/web-app-2QFKXFLW.png)
## 🔄 Sync GitHub issues to Linear
## Built-in integrations
![GitHub](https://img.shields.io/badge/-GitHub-gray) ![Linear](https://img.shields.io/badge/-Linear-blue)
Easily integrate with hundreds of third-party APIs including your own. Use API keys (which never leave your server) or let us handle OAuth for you. Install our integration packages and easily subscribe to webhooks and perform common tasks, or you can easily use your existing favorite Node.JS SDKs and get resumability and idempotency through our `runTask` function.
Triggered when a GitHub issue is created or updated. Query your database to map GitHub user ids to Linear user ids. Then create or update Linear issues.",
## Our progress
```Typescript
Were building the most comprehensive and easy-to-use background jobs framework for developers.
import { Trigger, github, linear } from "@trigger.dev/sdk";
Click the links to join the discussions about our upcoming features.
new Trigger({
name: "Sync Github issues to Linear",
on: github.issueEvent({
repo: "acme/website",
}),
run: async (event, ctx) => {
const { issue, action } = event;
| Feature | What it does | Status |
| ------------------------------------------------------------------------------------ | --------------------------------------------------- | ------ |
| Integration kit | Official Trigger.dev integrations or build your own | ✅ |
| Self-hosting | Host the platform yourself | ✅ |
| Cloud | Just write code, no deployment required | ✅ |
| Dashboard | View every Task in every Run | ✅ |
| Serverless | Long-running Jobs on your serverless backend | ✅ |
| React hooks | Easily update your UI with Job progress | ✅ |
| [Background tasks](https://github.com/triggerdotdev/trigger.dev/discussions/400) | Offload long or intense Tasks to our infrastructure | 🛠️ |
| [React frameworks](https://github.com/triggerdotdev/trigger.dev/discussions/411) | Support for Remix, Astro, RedwoodJS & more | 🛠️ |
| [Long-running servers](https://github.com/triggerdotdev/trigger.dev/discussions/430) | Run Jobs on your long-running backend | 🛠️ |
| Polling Triggers | Subscribe to changes without webhooks | 🕝 |
| Vercel integration | Easy deploy and preview environment support | 🕝 |
| Streaming | Receive data from your Jobs in realtime | 🕝 |
| 100+ integrations | Comprehensive support for popular APIs | 🕝 |
| [Trigger.dev Connect](https://github.com/triggerdotdev/trigger.dev/discussions/441) | Use integrations signed in as your users | 🕝 |
| File IO | Create Tasks that have file outputs | 🕝 |
// Find the user in our local database
const assignee = await findUserByGithubId(issue.assignee?.id);
# Getting started
if (action === "opened") {
await linear.issueCreate({
id: issue.id,
title: issue.title,
description: issue.body,
assigneeId: assignee?.linearId,
teamId: ctx.env.LINEAR_TEAM_ID,
});
} else {
await linear.issueUpdate(issue.id, {
assigneeId: assignee?.linearId,
stateId:
action === "closed"
? ctx.env.LINEAR_CLOSED_STATE_ID
: ctx.env.LINEAR_OPEN_STATE_ID,
});
}
},
}).listen();
Visit our docs [here](https://trigger.dev/docs).
```
## Self-host
&nbsp;
We provide an official trigger.dev docker image you can use to easily self-host the platform. We're working on more extensive guides but we currently provide a [Fly.io example repository](https://github.com/triggerdotdev/fly.io) with instructions in the README for deploying and using a self-hosted instance of Trigger.dev on Fly.io.
## ✉️ Send emails to new users
## Development
![User](https://img.shields.io/badge/-User-gray) ![Email](https://img.shields.io/badge/-Email-gray) ![Slack](https://img.shields.io/badge/-Slack-purple)
Triggered on demand by your other code when a user is created. We wait for 3 hours then send a follow-up email if the user hasnt completed onboarding yet.
```Typescript
import { Trigger, customEvent, slack, mailgun } from "@trigger.dev/sdk";
new Trigger({
name: "Send Email to New Users",
on: customEvent<UserEvent>({ name: "user.created" }),
run: async (event, ctx) => {
// Wait for 3 hours before continuing
await ctx.waitFor({ hours: 3 });
// Lookup user in the database
const user = await findUserById(event.id);
// only send email if user has not onboarded
if (!user.hasOnboarded) {
await mailgun.send({
to: user.email,
subject: "Welcome to our app!",
body: `Welcome to our app ${user.name}!}`,
});
await slack.sendMessage({
text: `Welcome email sent to ${user.email}`,
});
} else {
await slack.sendMessage({
text: `User ${user.email} has already onboarded`,
});
}
},
}).listen();
```
&nbsp;
## 🚨 Escalate critical incidents
![Intercom](https://img.shields.io/badge/-Intercom-blue) ![Linear](https://img.shields.io/badge/-Linear-blue) ![Slack](https://img.shields.io/badge/-Slack-purple) ![PagerDuty](https://img.shields.io/badge/-PagerDuty-green)
Triggered when an Intercom incident happens. We create a Linear issue, send a Slack message and, if its an urgent incident, we alert whoever is on call.
```Typescript
import { Trigger, intercom, linear, slack, pagerduty } from "@trigger.dev/sdk";
new Trigger({
name: "Intercom Incident",
on: intercom.newIncident(),
run: async (event, ctx) => {
// Find the customer in the database
const customer = await db.query("SELECT * FROM users WHERE email = $1", [
event.email,
]);
// Create linear ticket
const ticket = await linear.issueCreate({
title: event.title,
description: event.description,
assigneeId: ctx.env.LINEAR_ASSIGNEE_ID,
teamId: ctx.env.LINEAR_TEAM_ID,
});
// notify account manager
await slack.sendMessage({
text: `New incident for ${customer.name} in Linear: ${ticket.url}`,
});
if (event.severity === "urgent") {
// Create a pagerduty incident
await pagerduty.createIncident({
title: event.title,
description: event.description,
severity: "critical",
serviceId: ctx.env.PAGERDUTY_SERVICE_ID,
});
}
},
}).listen();
```
&nbsp;
# ⚡️ Trigger happy
Install our SDK and get instant access to an arsenal of triggers you can use in your code:
### **Webhooks**
Subscribe to webhooks without creating API endpoints. Plus they work locally without tunneling.
```Typescript
github.issueEvent({ repo: "acme/website" })
```
### **Scheduled (CRON)**
Easily subscribe to a recurring schedule using human readable code or CRON syntax.
```Typescript
scheduleEvent({ every: { minutes: 30 } })
```
### **Custom Events**
Trigger workflows from any event in your app. Send us your events, and we'll do the rest.
```Typescript
customEvent<YourType>({ name: "your.event" })
```
### **HTTP Endpoint**
Expose a HTTP endpoint to trigger your workflows with the method and path of your choice.
```Typescript
httpEvent<User>({ method: "POST", path: "/users/:id" })
```
### **Receive Emails**
Receive emails from your custom domain and trigger a workflow with the email metadata and content.
```Typescript
emailEvent({ address: "support@help.customdomain.io" })
```
### **AWS Event Bridge**
Integrate with AWS Event Bridge to trigger workflows on your own Event Bridge events.
```Typescript
eventBridge<SupportRequest>({ bus: "customer-support" })
```
&nbsp;
# 🔋 Batteries included
### **Debugging and visibility**
We provide a full history of all runs, so you can see exactly what happened.
&nbsp;
<img src="https://trigger.dev/_next/static/media/runs-diagram.c9ce4213.png" alt="Runs" width="400"/>
&nbsp;
---
&nbsp;
### **Survives downtime**
Workflows pick up where they left off when your server or external APIs go down.
&nbsp;
<img src="https://trigger.dev/_next/static/media/retries-diagram.d90a00d9.png
" alt="Retries" width="400"/>
&nbsp;
# Go from idea to production in minutes
## **1. Code**
Write workflows by creating triggers directly in your code. These can be 3rd-party integrations, custom events or on a schedule.
## **2. Connect**
When your server runs, your workflow will be registered and you can authenticate with any APIs youre using.
## **3. Test**
When your server runs, your workflow will be registered and you can authenticate with any APIs youre using.
## **3. Deploy**
Deploy your new workflow as you would any other code commit and inspect each workflow run in real time.
&nbsp;
# ✅ We ❤️ Open Source!
Youll always be able to host and run Trigger.dev yourself.
We've also created [JSON Hero](https://github.com/triggerdotdev/jsonhero-web), an open source JSON viewer used by around 55,000 developers per month.
&nbsp;
# 🙋 FAQs
<details><summary> Does my data get sent to your servers?</summary><br>
Only what you choose to send. The main body of your workflow code runs on your infrastructure.
For example when you do a database query, that never touches us.
Data we will receive (and store to display on the Runs page in your dashboard):
- Any data that triggers the start of a workflow
- Any data you pass to one of our API integrations • Any data you choose to log using our logging function
</details>
<details><summary> How is this different to Zapier, Pipedream etc?</summary><br>
Trigger.dev is a code-first workflow tool that lets you create workflows directly in your code, rather than using a UI builder like Zapier. This means you can stay in your own IDE and keep your internal data secure.
</details>
<details><summary>How long does this take to set up?</summary><br>
Setting up Trigger.dev is simple and takes 2 minutes. Install our SDK to get started and check out the Getting Started documentation to start creating your first workflow.
</details>
<details><summary>Can I use version control or roll-backs?</summary><br>
Yes. You create workflows directly in your own code so its version controlled with everything else.
</details>
<details><summary>How long does it take to code up a workflow?</summary><br>
A simple workflow triggering two events from different services will take about 5 minutes to create.
</details>
<details><summary>Do you have all the integrations I need?</summary><br>
Probably. Trigger.dev includes over 100 integrations including the most popular services. If you need a specific service thats not available, you can request it, or create it yourself. Were open source, so create an issue or Pull Request.
</details>
<details><summary>Can I build complex workflows?</summary><br>
Yes. Theres no limit to the complexity on workflows you can create. Workflows are created in code so you can write conditional, looping, branching or time delayed logic.
</details>
<details><summary> Can I run Trigger.dev locally?</summary><br>
Yes. Workflows are created in your code locally and, unlike webhooks, you dont need to use tunneling to receive triggers.
</details>
<details><summary>How does the pricing model work?</summary><br>
Our hosted product gives you free runs each month, after that you will need to select a paid tier. You can also self-host, view the open source repository for instructions.
</details>
<details><summary>Is Trigger.dev open source?</summary><br>
Yes, Trigger.dev is open source. We are strong supporters of open source software, and our first product, [jsonhero.io](https://jsonhero.io), has a thriving open source community. Trigger.dev follows in that tradition.
</details>
<details><summary>Is Trigger.dev a no/low-code tool?</summary><br>
No. Trigger.dev is designed for developers who want to create workflows directly in code, without using a UI builder like Zapier. This allows developers to stay in their familiar development environment and customise their workflows with code.
</details>
<details><summary>What languages / frameworks do you support?</summary><br>
Currently there is support for Node.js. More frameworks will be added soon.
</details>
<details><summary>Can I use an API which doesnt have webhooks?</summary><br>
Yes. You can use a polling trigger to subscribe is no webhook exists.
</details>
<details><summary>Can non-coders use this product?</summary><br>
Developers will need to create workflows. Anyone on the team can monitor running workflows in the Trigger dashboard.
</details>
&nbsp;
---
&nbsp;
If you have any other questions about Trigger.dev, [drop us an email](mailto:hello@trigger.dev), and one of the founders will get back to you.
To setup and develop locally or contribute to the open source project, follow our [development guide](./CONTRIBUTING.md).
-34
View File
@@ -1,34 +0,0 @@
# Mintlify Starter Kit
Click on `Use this template` to quickstarter your documentation setup with Mintlify. The starter kit contains examples including
- Guide pages
- Navigation
- Customizations
- API Reference pages
- Use of popular components
### 👩‍💻 Development
Run these from the root of the repository
```
pnpm install --filter docs
```
```
pnpm run dev --filter docs
```
Go to http://localhost:3050
### 😎 Publishing Changes
Changes will be deployed to production automatically after pushing to the default branch.
You can also preview changes using PRs, which generates a preview link of the docs.
#### Troubleshooting
- Mintlify dev isn't running - Run `mintlify install` it'll re-install dependencies.
- Mintlify dev is updating really slowly - Run `mintlify clear` to clear the cache.
-6
View File
@@ -1,6 +0,0 @@
---
title: "Send Event"
openapi: "POST /events"
sidebarTitle: "Send Event"
description: "Send a custom event to Trigger through the API."
---
-23
View File
@@ -1,23 +0,0 @@
---
title: "Example workflows"
sidebarTitle: "Overview"
description: "Example workflows to use in your projects."
---
Not sure what to build? Take a look through our examples for inspiration.
You can use these workflows in your product by following the instructions on each page.
<CardGroup>
<Card title="GitHub" icon="github" href="/examples/github">
When a GitHub repo is starred, post information about the user to Slack
</Card>
<Card title="Shopify" icon="shopify" href="/examples/shopify">
Create a new product in my Shopify store.
</Card>
<Card title="Slack" icon="slack" href="/examples/slack">
Post to Slack when a GitHub issue is created or modified.
</Card>
<Card title="Resend" icon="envelope" href="/examples/resend">
Create a welcome email drip campaign.
</Card>
</CardGroup>
-62
View File
@@ -1,62 +0,0 @@
---
title: "GitHub"
sidebarTitle: "GitHub"
description: "Here are some example workflows you could create using the GitHub integration."
---
You can explore all the supported GitHub functions [here](/integrations/apis/github/events/push).
## When a GitHub repo is starred, post information about the user to Slack
Integrations required: GitHub, Slack
```ts
import { Trigger } from "@trigger.dev/sdk";
import * as github from "@trigger.dev/github";
import * as slack from "@trigger.dev/slack";
new Trigger({
id: "new-github-star-to-slack",
name: "New GitHub Star: triggerdotdev/trigger.dev",
apiKey: "<my_api_key>",
on: github.events.newStarEvent({
repo: "triggerdotdev/trigger.dev",
}),
run: async (event) => {
await slack.postMessage("github-stars", {
channelName: "github-stars",
text: `New GitHub star from \n<${event.sender.html_url}|${event.sender.login}>`,
});
},
}).listen();
```
## When a GitHub issue is created or modified, post to Slack
Integrations required: GitHub, Slack
```ts
import { Trigger } from "@trigger.dev/sdk";
import * as github from "@trigger.dev/github";
import * as slack from "@trigger.dev/slack";
new Trigger({
id: "my-workflow-1",
name: "Posts to Slack when GitHub Issue created or modified",
apiKey: "<my_api_key>",
on: github.events.issueEvent({
repo: "my-github-org/my-github-repo",
}),
run: async (event, ctx) => {
const response = await slack.postMessage("send-to-slack", {
channelName: "my-slack-channel-name",
text: `A new issue has been created or modified. ${event.action}`,
});
return response.message;
},
}).listen();
```
You can explore all the supported GitHub functions [here](/integrations/apis/github/events/push).
-82
View File
@@ -1,82 +0,0 @@
---
title: "Resend"
sidebarTitle: "Resend"
description: "Here are some example workflows you could create using the Resend integration."
---
<Tip>
Resend is in private beta, if you would like access please contact us at{" "}
<a href="mailto:help@trigger.dev">help@trigger.dev</a>
</Tip>
## Welcome email drip campaign
This workflow will get triggered and a Slack notification and welcom email will be sent straight away.
1 day later we check if the user has completed onboarding, if they have, they get a 'tips' email, otherwise they get a re-engagement email.
Integrations required: Resend, Slack
```ts
import { customEvent, Trigger, sendEvent } from "@trigger.dev/sdk";
import * as resend from "@trigger.dev/resend";
import * as slack from "@trigger.dev/slack";
import React from "react";
import { z } from "zod";
import { getUser } from "../db";
import { InactiveEmail, TipsEmail, WelcomeEmail } from "./email-templates";
new Trigger({
id: "welcome-email-campaign",
name: "Welcome email drip campaign",
apiKey: "<my_api_key>",
on: customEvent({
name: "user.created",
schema: z.object({
userId: z.string(),
}),
}),
async run(event, context) {
//get the user data from the database
const user = await getUser(event.userId);
await slack.postMessage("send-to-slack", {
channelName: "new-users",
text: `New user signed up: ${user.name} (${user.email})`,
});
//Send the first email
const welcomeResponse = await resend.sendEmail("welcome-email", {
from: "Trigger.dev <james@email.trigger.dev>",
replyTo: "James <james@trigger.dev>",
to: user.email,
subject: "Welcome to Trigger.dev",
react: <WelcomeEmail name={user.name} />,
});
await context.logger.debug(
`Sent welcome email to ${welcomeResponse.to} with id ${welcomeResponse.id}`
);
//wait 1 day, check if the user has created a workflow and send the appropriate email
await context.waitFor("wait-a-while", { days: 1 });
const updatedUser = await getUser(event.userId);
if (updatedUser.hasOnboarded) {
await resend.sendEmail("onboarding-complete", {
from: "Trigger.dev <james@email.trigger.dev>",
replyTo: "James <james@trigger.dev>",
to: updatedUser.email,
subject: "Pro tips for workflows",
react: <TipsEmail name={updatedUser.name} />,
});
} else {
await resend.sendEmail("onboarding-incomplete", {
from: "Trigger.dev <james@email.trigger.dev>",
replyTo: "James <james@trigger.dev>",
to: updatedUser.email,
subject: "Help with your first workflow",
react: <InactiveEmail name={updatedUser.name} />,
});
}
},
}).listen();
```
-205
View File
@@ -1,205 +0,0 @@
---
title: "Shopify"
sidebarTitle: "Shopify"
description: "Here are some example workflows you could create using the Shopify integration."
---
## Create a new product
Integrations required: Shopify
```ts
import { Trigger, customEvent } from "@trigger.dev/sdk";
import { z } from "zod";
import * as shopify from "@trigger.dev/shopify";
new Trigger({
id: "shopify-products",
name: "Shopify products",
apiKey: "<my_api_key>",
on: customEvent({
name: "shopify.products",
schema: z.object({}),
}),
run: async (event, ctx) => {
const newProduct = await shopify.createProduct("create-product", {
descriptionHtml: "This is my brilliant <i>product description</i>.",
title: `Fantastic product ${Math.floor(Math.random() * 1000)}`,
productType: "t-shirt",
vendor: "Nike",
options: ["Color", "Size"],
standardizedProductType: {
productTaxonomyNodeId: "gid://shopify/ProductTaxonomyNode/352",
},
variants: [
{
price: "99.99",
sku: "variant-1",
inventoryItem: {
tracked: true,
},
inventoryQuantities: [
{
availableQuantity: 1,
locationId: "gid://shopify/Location/76187369773",
},
],
options: ["Maroon", "Tiny"],
},
],
});
const newImages = await shopify.appendProductImages("append-images", {
id: newProduct.id,
images: [
{
src: "https://via.placeholder.com/600/92c952.png",
altText: "Image 1",
},
{
src: "https://via.placeholder.com/600/d32776.png",
altText: "Image 2",
},
],
});
return newProduct;
},
}).listen();
```
## Update a product
Integrations required: Shopify
```ts
import { Trigger, customEvent } from "@trigger.dev/sdk";
import { z } from "zod";
import * as shopify from "@trigger.dev/shopify";
new Trigger({
id: "shopify-update-product",
name: "Shopify update product",
apiKey: "<my_api_key>",
on: customEvent({
name: "product.update",
schema: z.object({
id: z.string(),
}),
}),
run: async (event, ctx) => {
const product = await shopify.updateProduct("update-product", {
id: event.id,
descriptionHtml: `<h1>Awesome product title</h1><p>With incredible description</p>`,
});
return product;
},
}).listen();
```
## Add a product to a collection
Integrations required: Shopify
```ts
import { Trigger, customEvent } from "@trigger.dev/sdk";
import { z } from "zod";
import * as shopify from "@trigger.dev/shopify";
new Trigger({
id: "shopify-add-product-to-collection",
name: "Shopify add product to collection",
apiKey: "<my_api_key>",
on: customEvent({
name: "product.new",
schema: z.object({
id: z.string(),
}),
}),
run: async (event, ctx) => {
const collection = await shopify.addProductsToCollection(
"add-products-to-collection",
{
collectionId: "gid://shopify/Collection/431864578349",
productIds: [event.id],
}
);
return collection;
},
}).listen();
```
## Create new product variants with images
Integrations required: Shopify
```ts
import { Trigger, customEvent } from "@trigger.dev/sdk";
import { z } from "zod";
import * as shopify from "@trigger.dev/shopify";
const sizes = ["Small", "Medium", "Large"];
const colors = [
"Red",
"Orange",
"Yellow",
"Green",
"Blue",
"Purple",
"Pink",
"Brown",
"Black",
"White",
"Gray",
"Silver",
"Gold",
"Beige",
];
const materials = ["Cotton", "Polyester", "Lycra", "Wool", "Silk", "Leather"];
function pickRandom(array: string[]): string {
return array[Math.floor(Math.random() * array.length)];
}
new Trigger({
id: "shopify-product-variants",
name: "Shopify product variants",
apiKey: "<my_api_key>",
on: customEvent({
name: "shopify.product-variants",
schema: z.object({}),
}),
run: async (event, ctx) => {
await ctx.logger.info("Get Shopify products variants");
const results = await shopify.searchProductVariants(
"get-shopify-variants",
{
filter: {
productId: ["gid://shopify/Product/8098295546157"],
sku: ["variant-1"],
},
}
);
const newVariant = await shopify.createProductVariant("create-variant", {
productId: results.productVariants[0].product.id,
inventoryQuantities: [
{
availableQuantity: 10,
locationId: "gid://shopify/Location/76187369773",
},
],
price: "12.34",
sku: `variant-${Math.floor(Math.random() * 1000)}`,
options: [pickRandom(sizes), pickRandom(materials)],
});
await ctx.logger.debug("Debug message");
return newVariant;
},
}).listen();
```
-33
View File
@@ -1,33 +0,0 @@
---
title: "Slack"
sidebarTitle: "Slack"
description: "Here are some example workflows you could create using the Slack integration."
---
## Post to Slack when a GitHub issue is created or modified
Integrations required: Slack, GitHub
```ts
import { Trigger, customEvent } from "@trigger.dev/sdk";
import * as slack from "@trigger.dev/slack";
import * as github from "@trigger.dev/github";
import { z } from "zod";
new Trigger({
id: "my-workflow-1",
name: "Posts to Slack when GitHub Issue created or modified",
apiKey: "<my_api_key>",
on: github.events.issueEvent({
repo: "my-github-org/my-github-repo",
}),
run: async (event, ctx) => {
const response = await slack.postMessage("send-to-slack", {
channelName: "my-slack-channel-name",
text: `A new issue has been created or modified. ${event.action}`,
});
return response.message;
},
}).listen();
```
-91
View File
@@ -1,91 +0,0 @@
---
title: "Delays"
sidebarTitle: "Delays"
description: "You can trigger workflow steps to fire before and after a delay. There are 2 types of delay, waitFor and waitUntil."
---
## `waitFor` delay
`waitFor` takes a unique key and an object that sets the desired time as a key value pair.
```ts
await ctx.waitFor("wait-for-1", { seconds: 30 });
```
<Note>Reminder: Ensure all keys are unique across all triggers.</Note>
### Example
This example posts a message to Slack after a 30 second delay:
```ts
import { Trigger, customEvent } from "@trigger.dev/sdk";
import * as slack from "@trigger.dev/slack";
import * as github from "@trigger.dev/github";
import { z } from "zod";
new Trigger({
id: "wait-for-example",
name: "Post to Slack after delay",
apiKey: "<my_api_key>",
on: customEvent({
name: "waitForExample",
schema: z.object({
id: z.string(),
}),
}),
run: async (event, ctx) => {
await ctx.waitFor("initial-wait", { seconds: 30 });
const response = await slack.postMessage("send-to-slack", {
channel: "my-slack-channel",
text: `This message posted after a 30 second delay.`,
});
return response.message;
},
}).listen();
```
## `waitUntil` delay
`waitUntil` takes a unique key and a date function to set desired time.
```ts
await ctx.waitUntil("wait-until-1", new Date(Date.now() + 1000 * 60 * 1));
```
<Note>Reminder: Ensure all keys are unique across all triggers.</Note>
### Example
This example posts a message to Slack 1 hour after the workflow triggers:
```ts
import { Trigger, customEvent } from "@trigger.dev/sdk";
import * as slack from "@trigger.dev/slack";
import * as github from "@trigger.dev/github";
import { z } from "zod";
new Trigger({
id: "wait-until-example",
name: "Post to Slack after 1hr delay",
apiKey: "<my_api_key>",
on: customEvent({
name: "waitUntilExample",
schema: z.object({
id: z.string(),
}),
}),
run: async (event, ctx) => {
await ctx.waitUntil("wait-until", new Date(Date.now() + 1000 * 60 * 1));
const response = await slack.postMessage("send-to-slack", {
channel: "my-slack-channel",
text: `This message posted after a 30 second delay.`,
});
return response.message;
},
}).listen();
```
-248
View File
@@ -1,248 +0,0 @@
---
title: "Generic Fetch"
sidebarTitle: "Fetch"
description: "A generic fetch function that can be used to call any HTTP endpoint"
---
## Usage
A `fetch` function is available to use inside a `Trigger.run` function through the `context` argument, and should be familiar for anyone who has used the standard [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) API, with a few modifications.
```ts
import { Trigger } from "@trigger.dev/sdk";
new Trigger({
id: "fetch-example",
name: "Fetch Example",
on: customEvent({
name: "example.fetch",
}),
run: async (event, ctx) => {
await ctx.fetch("Example Key", "http://httpbin.org/get");
},
}).listen();
```
Notice the first parameter to `fetch` is a `key` that is used to identify this call to fetch to support resumability. Please see the [Resumability](/guides/resumability) guide for more information.
You can also import `fetch` and use it outside of a `Trigger.run` function:
```ts httpBin.ts
import { fetch } from "@trigger.dev/sdk";
export function httpBinGet() {
return fetch("Example Key", "http://httpbin.org/get");
}
```
Now you can use the exported `httpBinGet` function inside your `Trigger.run` function:
```ts
import { Trigger } from "@trigger.dev/sdk";
import { httpBinGet } from "./httpBin";
new Trigger({
id: "fetch-example",
name: "Fetch Example",
on: customEvent({
name: "example.fetch",
}),
run: async (event, ctx) => {
await httpBinGet();
},
}).listen();
```
This is useful if you want to wrap `fetch` to provide an SDK like experience inside your workflows.
<Warning>
Calling `fetch` when not inside of a workflow run will result in a thrown
Error.
</Warning>
## Response
<Tip>
Make sure to check `response.ok`, as non-2xx status codes will not throw an
error and will instead return a response with `ok` set to `false`.
</Tip>
The return value of `fetch` is a similar to a normal fetch response, but we will automatically parse the response body as JSON and provide it as `body`, like so:
```ts
const response = await ctx.fetch("Example Key", "http://httpbin.org/get");
if (response.body) {
console.log(response.body.url); // http://httpbin.org/get
}
```
By default, the `body` is typed as `any`, but you can provide a [Zod](/guides/zod) schema to validate the response body and get a more specific type:
```ts
import { z } from "zod";
const response = await ctx.fetch("Get HTTPBin", "http://httpbin.org/get", {
responseSchema: z.object({
url: z.string(),
origin: z.string(),
headers: z.record(z.string()),
}),
});
```
Now the `body` will be typed as:
```ts
{
url: string;
origin: string;
headers: Record<string, string>;
}
```
It's okay to not be comprehensive with the schema, as long as the response body matches the schema, it will be valid. Do note that any properties not included in the schema will be excluded, unless you use `.passthrough()`:
```ts
const response = await ctx.fetch("Get HTTPBin", "http://httpbin.org/get", {
responseSchema: z.object({
url: z.string(),
origin: z.string(),
headers: z.record(z.string()),
}),
});
console.log(response.body); // Only includes url, origin, and headers
// Using passthrough():
const response = await ctx.fetch("Get HTTPBin", "http://httpbin.org/get", {
responseSchema: z
.object({
url: z.string(),
origin: z.string(),
headers: z.record(z.string()),
})
.passthrough(),
});
console.log(response.body); // Includes url, origin, headers, and everything else
```
<Note>
The fetch function currently only supports JSON request and response bodies.
</Note>
## Secret values
If you are using a header with a secret value, you can use our `secureString` [tagged template](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#tagged_templates) to ensure that the value is not logged in the trigger.dev logs:
```ts
import { Trigger, secureString } from "@trigger.dev/sdk";
new Trigger({
id: "fetch-example",
name: "Fetch Example",
on: customEvent({
name: "example.fetch",
}),
run: async (event, ctx) => {
await ctx.fetch("🔑 Secret API", "http://httpbin.org/post", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: secureString`Bearer ${process.env.SECRET_API_KEY}`,
},
});
},
}).listen();
```
Which will show in the trigger.dev app as:
![title](/images/secure-string.png)
## Retrying
By default, we will retry a failed request up to 10 times if it has one of the following status codes: `408`, `429`, `500`, `502`, `503`, `504`. You can override this behavior by providing a `retry` option:
```ts
await ctx.fetch("Example Key", "http://httpbin.org/get", {
retry: {
maxAttempts: 5,
statusCodes: [408, 429, 500, 502, 503, 504, 521, 522, 524],
minTimeout: 1000,
maxTimeout: 10000,
factor: 1.2,
},
});
```
| Property | Description | Default |
| ----------- | ---------------------------------------- | ---------------------------------------- |
| enabled | Enables retrying of failed requests | true |
| factor | The exponential factor of backoff | 1.8 |
| minTimeout | The minimum amount of ms between retries | 1000 |
| maxTimeout | The maximum amount of ms between retries | 60000 |
| statusCodes | The HTTP Status Codes that are retryable | `408`, `429`, `500`, `502`, `503`, `504` |
If you'd like to disable retrying, simple pass in the `retry` option with `enabled` set to `false`:
```ts
await ctx.fetch("Example Key", "http://httpbin.org/get", {
retry: {
enabled: false,
},
});
```
## Params
<ParamField path="key" type="string" required={true}>
A unique string. Please see the [Keys and Resumability](/guides/resumability)
doc for more info.
</ParamField>
<ParamField path="url" type="string | URL" required={true}>
The URL to fetch.
</ParamField>
<ParamField path="options" type="object" required={false}>
<Expandable title="properties">
<ParamField path="method" type="string" required={false}>
The HTTP method to use. Defaults to `GET`.
</ParamField>
<ParamField path="headers" type="record" required={false}>
An object of headers to send with the request.
</ParamField>
<ParamField path="responseSchema" type="zod Schema" required={false}>
A [Zod](/guides/zod) schema to validate the response body.
</ParamField>
<ParamField path="body" type="json" required={false}>
The body to send with the request. Only valid for `POST`, `PUT`, and `PATCH`. You don't need to `JSON.stringify` before passing it in.
</ParamField>
</Expandable>
</ParamField>
## Response
<ParamField path="ok" type="boolean">
Whether the response was successful. Non-2xx status codes will have `ok =
false`.
</ParamField>
<ParamField path="body" type="object" required={false}>
The response body, parsed with the `responseSchema` if provided. Can be
undefined if the response body is empty.
</ParamField>
<ParamField path="status" type="number">
The HTTP status code.
</ParamField>
<ParamField path="headers" type="Record<string, string>">
The response headers.
</ParamField>
-41
View File
@@ -1,41 +0,0 @@
---
title: "Logging"
sidebarTitle: "Logging"
description: "There are 4 different types of logs you can add as workflow steps."
---
If you'd like to add additional logging to your workflow run, you can use our built-in logging utility
## Usage
```ts
import { Trigger } from "@trigger.dev/sdk";
new Trigger({
id: "my-trigger",
on: scheduleEvent({ rateOf: { minutes: 5 } }),
run: async (event, ctx) => {
await ctx.logger.info("It's been 5 minutes since the last run!");
},
}).listen();
```
This will log the message to your workflow run page in the Trigger dashboard
There are 4 different types of logs you can add as workflow steps:
```ts
await ctx.logger.info("It's been 5 minutes since the last run!");
await ctx.logger.debug("This is a debug log");
await ctx.logger.warn("This is a warning");
await ctx.logger.error("This is an error");
```
You can also include a second argument to the logger to add additional metadata to the log:
```ts
await ctx.logger.info("It's been 5 minutes since the last run!", {
foo: "bar",
baz: 123,
});
```
@@ -1,50 +0,0 @@
---
title: "Loops, Conditionals…"
sidebarTitle: "Loops, Conditionals…"
description: "Write any type of code."
---
Currently, we don't have anything special for loops or conditionals. You can just write plain-old TypeScript code and it will Just Work™.
## Loops
When you perform an action (sendEvent, delays, etc.) inside of a loop, make sure to create unique keys for each action to make sure that your workflows are [Resumable](/guides/resumability):
```ts
for (let i = 0; i < 10; i++) {
await ctx.waitFor(`Wait ${i}`, { seconds: 30 });
await slack.postMessage(`⭐️ New Star ${i}`, {
channelName: "github-stars",
text: `@${starredBy} just starred ${repoName}!`,
});
}
```
## Parallel Execution
You can run actions in parallel using `Promise.all`, like so:
```ts
await Promise.all(
messages.map((message) =>
slack.postMessage(message.id, {
channelName: "github-stars",
text: message.text,
})
)
);
```
## Conditionals
You can use `if` statements to conditionally execute code, just like normal code:
```ts
if (ctx.event.payload.action === "opened") {
await slack.postMessage("New Issue", {
channelName: "github-issues",
text: `@${ctx.event.payload.sender.login} just opened an issue!`,
});
}
```
-201
View File
@@ -1,201 +0,0 @@
---
title: "Send event"
sidebarTitle: "Send event"
description: "Send events to trigger your custom events workflows."
---
## Send an event
You can easily send an event from anywhere, including from inside another workflow. Events don't have to come from the same server as your workflow and can be sent as HTTP requests from any language (see our cURL example below for the format).
<Tabs>
<Tab title="Our Node.js SDK">
```ts
import { sendEvent } from "@trigger.dev/sdk";
//send an event with the name "user.created"
//and the payload
await sendEvent("start-fire-2", {
name: "user.created",
payload: { userId: "123456" },
});
```
</Tab>
<Tab title="cURL">
```bash
curl --request POST \
--url https://app.trigger.dev/api/v1/events \
--header 'Authorization: Bearer <insert_api_key_here>' \
--header 'Content-Type: application/json' \
--data '{
"id": "<optional unique event id>",
"event": {
"name": "user.created",
"payload": {
"userId": "123456"
}
}
}'
```
</Tab>
</Tabs>
If you are calling this from inside a workflow, ensure that the first parameter is unique inside your workflow.
## Sending events from other workflows
It is useful to send events from workflows because you can split your logic into smaller chunks and reuse them. The below example shows how a scheduled workflow delegates the work via sending a custom event:
<CodeGroup>
```ts check-scheduler.ts
new Trigger({
id: "check-scheduler",
name: "Check Scheduler",
on: scheduleEvent({ rateOf: { minutes: 10 } }),
run: async (event, context) => {
await context.sendEvent("health.check trigger.dev", {
name: "health.check",
payload: {
url: "https://trigger.dev",
host: "trigger.dev",
},
});
await context.sendEvent("health.check docs.trigger.dev", {
name: "health.check",
payload: {
url: "https://docs.trigger.dev",
host: "docs.trigger.dev",
},
});
await context.sendEvent("health.check app.trigger.dev", {
name: "health.check",
payload: {
url: "https://app.trigger.dev/healthcheck",
host: "app.trigger.dev",
},
});
},
}).listen();
```
```ts health-check.ts
export const healthCheck = new Trigger({
id: "health-check",
name: "Health Check",
on: customEvent({
name: "health.check",
schema: z.object({
url: z.string().url(),
host: z.string(),
}),
}),
run: async (event, context) => {
const response = await context.fetch("fetch site", event.url, {
method: "GET",
retry: {
enabled: false,
},
});
if (response.ok) {
await context.logger.info(`${event.host} is up!`);
return;
}
await slack.postMessage("Site is down", {
channelName: "health-checks",
text: `${event.host} is down: ${response.status}`,
});
},
}).listen();
```
</CodeGroup>
## Delaying event delivery
Through both our Node.js SDK and our HTTP API, you can delay the delivery of an event. This is useful if you want to send an event to trigger a workflow, but you want to wait for a certain amount of time before the event is delivered.
Using the health check example above, we can delay the delivery of the `health.check` event in various ways:
```ts
new Trigger({
id: "check-scheduler",
name: "Check Scheduler",
on: scheduleEvent({ rateOf: { minutes: 10 } }),
run: async (event, context) => {
await context.sendEvent("health.check trigger.dev", {
name: "health.check",
payload: {
url: "https://trigger.dev",
host: "trigger.dev",
},
delay: { until: new Date(Date.now() + 1000 * 60 * 5) }, // Delay until a specific date
});
await context.sendEvent("health.check docs.trigger.dev", {
name: "health.check",
payload: {
url: "https://docs.trigger.dev",
host: "docs.trigger.dev",
},
delay: { minutes: 5 }, // Delay for a specific amount of time
});
await context.sendEvent("health.check app.trigger.dev", {
name: "health.check",
payload: {
url: "https://app.trigger.dev/healthcheck",
host: "app.trigger.dev",
},
delay: { seconds: 30 }, // Delay for a specific amount of time
});
},
}).listen();
```
<Note>
When sending events in the context of a workflow run, adding a delay DOES NOT
add a delay to the workflow run, as sending a custom event is a
fire-and-forget action.
</Note>
You can add delays via the HTTP API by adding a `delay` object to the event:
```bash
curl --request POST \
--url https://app.trigger.dev/api/v1/events \
--header 'Authorization: Bearer <insert_api_key_here>' \
--header 'Content-Type: application/json' \
--data '{
"id": "<optional unique event id>",
"event": {
"name": "user.created",
"payload": {
"userId": "123456"
},
"delay": {
"seconds": 30
}
}
}'
```
## Event deduplication
When sending events, you can specify an `id` for the event. If you send an event with the same `id` multiple times, only the first event will be delivered. This is useful if you want to ensure that an event is only delivered once, even if you send it multiple times.
```ts
sendEvent({
id: "my-event-id",
name: "my-event",
payload: { foo: "bar" },
});
```
-239
View File
@@ -1,239 +0,0 @@
---
title: "Getting started with Trigger.dev"
sidebarTitle: "Quick start"
description: "Get your first workflow running in just a few minutes"
---
Trigger.dev workflows are written in your codebase and run in your existing infrastructure. This means:
- They are version controlled with the rest of your code.
- They run locally and don't require you to use tunnels.
<Note>
Currently we require you to have a long-running Node.js server, e.g. Express.
Support for serverless is coming soon.
</Note>
## 1. Installing @trigger.dev packages
In your existing project install the packages:
<Tabs>
<Tab title="npm">
```bash
npm install @trigger.dev/sdk @trigger.dev/slack zod
```
</Tab>
<Tab title="pnpm">
```bash
pnpm install @trigger.dev/sdk @trigger.dev/slack zod
```
</Tab>
<Tab title="yarn">
```bash
yarn add @trigger.dev/sdk @trigger.dev/slack zod
```
</Tab>
</Tabs>
What do the packages do?
- `@trigger.dev/sdk` is required to use Trigger.dev, it allows you to run workflows.
- `@trigger.dev/slack` is the official Slack integration, which allows you to interact with the Slack API.
- `zod` is used to define schemas (the expected shape of an object).
## 2. Sign in to your Trigger.dev dashboard
Go to [trigger.dev](https://app.trigger.dev) and sign up or login to your account.
## 3. Get your API keys
In the bottom-left corner of an Organization page you can find your API keys.
![API Keys](/images/api-keys.png)
## 4. Creating your first workflow
Workflows are triggered by events. In this example, we have defined a custom event called `user.created`. We support many different types of events including webhooks, scheduled, and more coming soon.
```ts first-workflow.ts
import { Trigger, customEvent } from "@trigger.dev/sdk";
import { postMessage } from "@trigger.dev/slack";
import { z } from "zod";
new Trigger({
id: "new-user",
name: "New user slack message",
apiKey: "<your_api_key>",
on: customEvent({
name: "user.created",
schema: z.object({
name: z.string(),
email: z.string(),
paidPlan: z.boolean(),
}),
}),
run: async (event, ctx) => {
await ctx.logger.info("This log will appear on the Trigger.dev run page");
//send a message to the #new-users Slack channel with user details
const response = await postMessage("send-to-slack", {
channel: "new-users",
text: `New user: ${event.name} (${event.email}) signed up. ${
event.paidPlan ? "They are paying" : "They are on the free plan"
}.`,
});
return response.message;
},
}).listen();
```
You'll notice that when we subscribe to the custom event we have to say the name of the event and provide a schema. Schemas are created using Zod. In this case events must send an object that has `name`, `email`, and `paidPlan`.
<Note>
If the event is triggered with an object that doesn't match this schema, the
workflow won't run.
</Note>
<Note>
Above we set the API key inside the Trigger object. We recommend instead that
you add an environment variable called `TRIGGER_API_KEY`. That way you can use
your development API key locally and the production one when you deploy.
</Note>
## 6. Run your web server
Run your server how you normally would, e.g. `npm run dev`. This will connect your workflow to Trigger.dev, so we can start sending you events. You should see some log messages in your server console (tip: you can turn these off by removing the `logLevel: "info"` from the code above).
## 5. Testing your workflow from the dashboard
Now that the workflow is connected to Trigger.dev we need to trigger it. You can easily test your workflow from [your Trigger.dev dashboard](https://app.trigger.dev).
On the organization page you should see that the Workflow has now appeared (you may need to refresh the page from last time).
!["New user slack message" workflow](/images/workflow.png)
Move to the "New user slack message" and you will see the workflow page. There have been no runs yet.
Move to the "Test" page and input a valid test event, remember the workflow expects a name, email and paidPlan. You can copy this:
```json
{
"name": "Rick Astley",
"email": "nevergonn@giveyou.up",
"paidPlan": true
}
```
Hit the "Run test" button and it will take us to our first run 🚀!
![Test a run](/images/run-test.png)
## 6. The run page
All of the steps in a workflow, including the initial event, can be viewed in detail. You will need to refresh the page if it's running to see it move between steps.
But there's a problem, we've used Slack in our code and we haven't authenticated.
![Test run failed](/images/run-failed.png)
## 7. Authenticating with Slack
When a workflow step uses an API integration that you haven't already authenticated with, it will pause until you've authenticated.
Simply click the "Connect to Slack" button and sign-in with your desired Slack workspace. As soon as you do, the workflow will pick up where it left off.
Test complete!
![Test a run](/images/run-succeeded.png)
## 8. Triggering this workflow from code
As this workflow uses a custom event, we need to manually trigger it from our code. Anywhere in your code you can do this:
```ts
import { sendEvent } from "@trigger.dev/sdk";
/*
...your other code
*/
await sendEvent(uuidv4(), {
name: "user.created"
payload: {
name: "Eleven",
email: "jane@hawksmoorhigh.edu",
paidPlan: true,
},
});
```
<Note>
If you are using `sendEvent` outside of a Trigger, make sure and set your API
key to the `TRIGGER_API_KEY` environment variable. See the
[sendEvent](/functions/send-event) docs for more info.
</Note>
When you run your server and this code executes, it will trigger the workflow. You will see this in the run list on your workflow page.
You can also use our API to send events from other programming languages. See the [sendEvent](/api/events/sendEvent) API reference for more info.
## Next steps
<Card
title="Join the communty"
icon="discord"
href="https://discord.gg/nkqV9xBYWy"
>
Meet other users, get help and product updates. We will respond to all
messages and will help with any issues.
</Card>
There are many things we didn't cover here, including Webhook and Scheduled triggers. Below are a some more features to explore:
### Triggers
Triggers are what cause your workflows to run.
<CardGroup>
<Card title="Webhooks" icon="rectangle-terminal" href="/triggers/webhooks">
Easily subscribe to the APIs you're using
</Card>
<Card title="Scheduled" icon="clock" href="/triggers/scheduled">
Trigger your workflows on a repeating schedule
</Card>
<Card title="Custom events" icon="code" href="/triggers/custom-events">
More details on custom events
</Card>
<Card title="More coming soon" icon="bookmark">
On received email, HTTP endpoint and AWS Event Bridge
</Card>
</CardGroup>
### Functions
<CardGroup>
<Card
title="API integrations"
icon="rectangle-terminal"
href="/integrations/apis"
>
We are making it easy to use lots of APIs by adding integrations.
</Card>
<Card title="Fetch" icon="server" href="/functions/fetch">
Call any API from your workflow
</Card>
<Card title="Delays" icon="alarm-clock" href="/functions/delays">
Add delays to your workflows. They're resilient so it doesn't matter if your
server goes down.
</Card>
<Card title="Send event" icon="code" href="/functions/send-event">
Send an event, to trigger a custom event workflow
</Card>
</CardGroup>
-64
View File
@@ -1,64 +0,0 @@
---
title: "Event Driven Architecture"
sidebarTitle: "Event Driven"
description: "How to build an event driven architecture using Trigger.dev"
---
## Event-driven Patterns in Trigger.dev
### Claim check pattern
Inspired by [this post](https://serverlessland.com/event-driven-architecture/visuals/claim-check-pattern) by [@boyney123](https://twitter.com/boyney123), here is how you could implement the claim check pattern using Trigger.dev:
```ts
import { Trigger } from "@trigger.dev/sdk";
import * as github from "@trigger.dev/github";
import { db } from "./db.server";
new Trigger({
id: "issue-producer",
on: github.events.issueEvent({
repo: "triggerdotdev/trigger.dev",
}),
run: async (event, ctx) => {
// 1. Store the event in a database (e.g. MongoDB, DynamoDB, etc.)
const id = await db.insert(ctx.id, event);
// 2. Send a new event with the id of the stored event
await ctx.sendEvent("📧 Send Event", {
name: "github.issue",
payload: {
id,
action: event.payload.action,
},
});
},
}).listen();
```
The above workflow will store any issue events from the trigger.dev repo in a database. Then, it will send a new event with the name `github.issue` and the id and action of the stored event. This event can then trigger another workflow and be used to retrieve the original event from the database:
```ts
import { Trigger, customEvent } from "@trigger.dev/sdk";
import { db } from "./db.server";
import { z } from "zod";
new Trigger({
id: "opened-issue-consumer",
on: customEvent({
name: "github.issue",
filter: {
action: ["opened"],
}
schema: z.object({ id: z.string() }),
}),
run: async (event, ctx) => {
// 3. Retrieve the event from the database
const event = await db.get(ctx.id);
// 4. Do something with the event
},
}).listen();
```
As you can see above we filtered the event to only trigger when the action is `opened`. This is because we only want to do something when an issue is opened. We also used a schema to validate the event payload (which in this pattern is pretty simple).
-53
View File
@@ -1,53 +0,0 @@
---
title: "Event Filters"
sidebarTitle: "Event Filters"
description: "Event filters are used to filter events based on their attributes."
---
Event filters are used to filter events based on their attributes in the [customEvent](/reference/custom-event) and [webhookEvent](/reference/webhook-event) triggers.
They are declarative pattern-matching rules, modeled after [AWS EventBridge patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html).
Given the following custom event payload:
```json
{
{
"uid": "jexAgaeJFJsrGfans1pxqm",
"type": "15 Min Meeting",
"price": 0,
"title": "15 Min Meeting between Eric Allam and John Doe",
"length": 15,
"status": "ACCEPTED",
"endTime": "2023-01-25T16:00:00Z",
"bookingId": 198052,
"organizer": {
"id": 32794,
"name": "Eric Allam",
"email": "eric@trigger.dev",
"language": { "locale": "en" },
"timeZone": "Europe/London"
},
}
}
```
The following event filter would match the event:
```json
{
"type": ["15 Min Meeting"],
"status": ["ACCEPTED", "REJECTED"],
"organizer": {
"name": ["Eric Allam"]
}
}
```
For an event pattern to match an event, the event must contain all the field names listed in the event pattern. The field names must also appear in the event with the same nesting structure.
The value of each field name in the event pattern must be an array of strings, numbers, or booleans. The event pattern matches the event if the value of the field name in the event is equal to any of the values in the array.
Effectively, each array is an OR condition, and the entire event pattern is an AND condition.
So the above event filter will match because `status == "ACCEPTED"`, and it would also match if `status == "REJECTED"`.
-72
View File
@@ -1,72 +0,0 @@
---
title: "Resumability"
sidebarTitle: "Keys and Resumability"
description: "Understand how keys work to ensure resumability of long-running workflows in Trigger.dev"
---
## Intro
In this article, we'll cover how Trigger.dev handles resumability of long-running workflows. We'll also cover how to use keys to ensure that your workflows are resumable.
## What is resumability?
Resumability is the ability of a workflow run to continue from where it left off after a failure or interruption. For example, if a workflow run is interrupted due to a network failure, it should be able to resume from where it left off when the network is back up.
We accomplish this by storing the state of the workflow run in a database, and when a workflow run is resumed we will call the `Trigger.run` function again.
We use step "keys" to determine which steps have already been executed. If a step has already been executed, we will skip it and move on to the next step.
## How to use keys
Like we mentioned above, we use step keys to determine which steps have already been executed. They are defined by you inside your `Trigger.run` function, for example when you call `slack.postMessage`:
```ts
await slack.postMessage("⭐️ New Star", {
channelName: "github-stars",
text: `@${starredBy} just starred ${repoName}!`,
});
```
In this example, the key is the string `"⭐️ New Star"`. This means that if the workflow is interrupted and then resumed, the `slack.postMessage` step will be skipped because it has already been executed.
If you make multiple calls to `slack.postMessage`, you should use different keys for each call. For example:
```ts
await slack.postMessage("⭐️ New Star", {
channelName: "github-stars",
text: `@${starredBy} just starred ${repoName}!`,
});
await slack.postMessage("🚨 Critical Issue", {
channelName: "critical-issues",
text: `@${assignee} just opened a critical issue in ${repoName}!`,
});
```
If you are calling a step multiple times with the same key, it will only be executed once. For example, if you call `slack.postMessage` with the key `"⭐️ New Star"` twice, it will only be executed once.
## How to use keys with loops
If you are using a loop, you should use the loop index as the key. For example:
```ts
for (let i = 0; i < 10; i++) {
await ctx.waitFor(`Wait ${i}`, { seconds: 30 });
await slack.postMessage(`⭐️ New Star ${i}`, {
channelName: "github-stars",
text: `@${starredBy} just starred ${repoName}!`,
});
}
```
## When to use keys
The following functions in Trigger.dev require a `key` parameter:
- Integration actions (e.g. `slack.postMessage`)
- [delays](/functions/delays)
- [sendEvent](/functions/send-event)
- [fetch](/functions/fetch)
[Logging](/functions/logging) does not require a key, as we are currently using the log message as the key.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 405 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 402 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 463 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 346 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 360 KiB

-32
View File
@@ -1,32 +0,0 @@
---
title: "APIs"
sidebarTitle: "APIs"
description: "Integrations"
---
## Coming soon
We will show each API as a subpage. Each API page will break down all the functions available for each API. It will also link to the relevant sample projects.
<CardGroup>
<Card
title="GitHub"
icon="rectangle-terminal"
href="/integrations/apis/github"
></Card>
<Card
title="Shopify"
icon="rectangle-terminal"
href="/integrations/apis/shopify"
></Card>
<Card
title="Slack"
icon="rectangle-terminal"
href="/integrations/apis/slack"
></Card>
</CardGroup>
### Do you need a specific integration?
If so, [let us know](mailto:hello@trigger.dev) and we'll build it for
you.
-11
View File
@@ -1,11 +0,0 @@
---
title: "GitHub"
sidebarTitle: "GitHub"
description: "Support for the GitHub API"
---
## GitHub API integration
Full reference of all functions is coming soon.
Check out some example workflows using the GitHub API [here](/examples/github).
@@ -1,19 +0,0 @@
---
title: "GitHub Events"
sidebarTitle: "Events"
description: "GitHub Triggers"
---
## GitHub API integration
Full reference of all functions is coming soon.
Check out some example workflows using the GitHub API [here](/examples/github).
### Events
These are the events you can use to trigger a workflow
### Requests
These are the requests you can make to the GitHub API.
@@ -1,376 +0,0 @@
---
title: "Issue Comment Event"
sidebarTitle: "Issue Comments"
description: "Trigger a workflow whenever an issue_comment action is performed in a GitHub repository."
---
## Usage
```ts
import * as github from "@trigger.dev/github";
new Trigger({
id: "demo",
on: github.events.issueCommentEvent({
repo: "triggerdotdev/trigger.dev",
}),
run: async (event, ctx) => {},
}).listen();
```
## Params
<ParamField path="repo" type="string" required={true}>
The full path to the repository, including the organization
</ParamField>
## Event
<ResponseField name="action" type="string">
The issue_comment action, which can be either created, deleted, or edited.
</ResponseField>
<ResponseField name="comment" type="object" required={true}>
The comment object.
</ResponseField>
<ResponseField name="issue" type="object" required={true}>
The issue object.
</ResponseField>
<ResponseField name="repository" type="object" required={true}>
A repository on GitHub.
</ResponseField>
<ResponseField name="sender" type="object" required={true}>
The GitHub user object who performed the action.
</ResponseField>
<ResponseField name="organization" type="object">
The organization object the repository belongs to.
</ResponseField>
## Example Workflows
<CodeGroup>
```typescript Notify Slack on new Issue comment
new Trigger({
id: "github-to-slack",
name: "Notify Slack on new Issue comment",
on: github.events.issueCommentEvent({
repo: "triggerdotdev/trigger.dev",
}),
run: async (event, ctx) => {
if (event.action === "created") {
await slack.postMessage("New Comment", {
channelName: "github-issues",
text: `New comment on issue ${event.issue.title} by ${event.sender.login}: ${event.comment.html_url}`,
});
}
},
}).listen();
```
</CodeGroup>
## Example Event payload
```json
{
"issue": {
"id": 1548436712,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/1",
"body": "Changed the body text once",
"user": {
"id": 10635986,
"url": "https://api.github.com/users/matt-aitken",
"type": "User",
"login": "matt-aitken",
"node_id": "MDQ6VXNlcjEwNjM1OTg2",
"html_url": "https://github.com/matt-aitken",
"gists_url": "https://api.github.com/users/matt-aitken/gists{/gist_id}",
"repos_url": "https://api.github.com/users/matt-aitken/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/10635986?v=4",
"events_url": "https://api.github.com/users/matt-aitken/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/matt-aitken/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/matt-aitken/followers",
"following_url": "https://api.github.com/users/matt-aitken/following{/other_user}",
"organizations_url": "https://api.github.com/users/matt-aitken/orgs",
"subscriptions_url": "https://api.github.com/users/matt-aitken/subscriptions",
"received_events_url": "https://api.github.com/users/matt-aitken/received_events"
},
"state": "open",
"title": "Changed test issue title",
"labels": [
{
"id": 5003355458,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/labels/documentation",
"name": "documentation",
"color": "0075ca",
"default": true,
"node_id": "LA_kwDOIxVdCc8AAAABKjklQg",
"description": "Improvements or additions to documentation"
},
{
"id": 5003355474,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/labels/enhancement",
"name": "enhancement",
"color": "a2eeef",
"default": true,
"node_id": "LA_kwDOIxVdCc8AAAABKjklUg",
"description": "New feature or request"
}
],
"locked": false,
"number": 1,
"node_id": "I_kwDOIxVdCc5cS0To",
"assignee": null,
"comments": 6,
"html_url": "https://github.com/triggerdotdev/trigger.dev-examples/issues/1",
"assignees": [],
"closed_at": null,
"milestone": {
"id": 8941544,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/milestones/1",
"state": "open",
"title": "Test milestone",
"due_on": "2023-01-20T08:00:00Z",
"number": 1,
"creator": {
"id": 10635986,
"url": "https://api.github.com/users/matt-aitken",
"type": "User",
"login": "matt-aitken",
"node_id": "MDQ6VXNlcjEwNjM1OTg2",
"html_url": "https://github.com/matt-aitken",
"gists_url": "https://api.github.com/users/matt-aitken/gists{/gist_id}",
"repos_url": "https://api.github.com/users/matt-aitken/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/10635986?v=4",
"events_url": "https://api.github.com/users/matt-aitken/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/matt-aitken/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/matt-aitken/followers",
"following_url": "https://api.github.com/users/matt-aitken/following{/other_user}",
"organizations_url": "https://api.github.com/users/matt-aitken/orgs",
"subscriptions_url": "https://api.github.com/users/matt-aitken/subscriptions",
"received_events_url": "https://api.github.com/users/matt-aitken/received_events"
},
"node_id": "MI_kwDOIxVdCc4AiG_o",
"html_url": "https://github.com/triggerdotdev/trigger.dev-examples/milestone/1",
"closed_at": null,
"created_at": "2023-01-19T03:02:37Z",
"labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/milestones/1/labels",
"updated_at": "2023-01-19T17:21:25Z",
"description": "",
"open_issues": 1,
"closed_issues": 0
},
"reactions": {
"+1": 0,
"-1": 0,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/1/reactions",
"eyes": 0,
"heart": 0,
"laugh": 0,
"hooray": 0,
"rocket": 0,
"confused": 0,
"total_count": 0
},
"created_at": "2023-01-19T02:50:49Z",
"events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/1/events",
"labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/1/labels{/name}",
"updated_at": "2023-01-24T04:18:52Z",
"comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/1/comments",
"state_reason": "reopened",
"timeline_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/1/timeline",
"repository_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples",
"active_lock_reason": null,
"author_association": "MEMBER",
"performed_via_github_app": null
},
"action": "created",
"sender": {
"id": 534,
"url": "https://api.github.com/users/ericallam",
"type": "User",
"login": "ericallam",
"node_id": "MDQ6VXNlcjUzNA==",
"html_url": "https://github.com/ericallam",
"gists_url": "https://api.github.com/users/ericallam/gists{/gist_id}",
"repos_url": "https://api.github.com/users/ericallam/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/534?v=4",
"events_url": "https://api.github.com/users/ericallam/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/ericallam/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/ericallam/followers",
"following_url": "https://api.github.com/users/ericallam/following{/other_user}",
"organizations_url": "https://api.github.com/users/ericallam/orgs",
"subscriptions_url": "https://api.github.com/users/ericallam/subscriptions",
"received_events_url": "https://api.github.com/users/ericallam/received_events"
},
"comment": {
"id": 1401375866,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/comments/1401375866",
"body": "New comment",
"user": {
"id": 534,
"url": "https://api.github.com/users/ericallam",
"type": "User",
"login": "ericallam",
"node_id": "MDQ6VXNlcjUzNA==",
"html_url": "https://github.com/ericallam",
"gists_url": "https://api.github.com/users/ericallam/gists{/gist_id}",
"repos_url": "https://api.github.com/users/ericallam/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/534?v=4",
"events_url": "https://api.github.com/users/ericallam/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/ericallam/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/ericallam/followers",
"following_url": "https://api.github.com/users/ericallam/following{/other_user}",
"organizations_url": "https://api.github.com/users/ericallam/orgs",
"subscriptions_url": "https://api.github.com/users/ericallam/subscriptions",
"received_events_url": "https://api.github.com/users/ericallam/received_events"
},
"node_id": "IC_kwDOIxVdCc5Th0x6",
"html_url": "https://github.com/triggerdotdev/trigger.dev-examples/issues/1#issuecomment-1401375866",
"issue_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/1",
"reactions": {
"+1": 0,
"-1": 0,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/comments/1401375866/reactions",
"eyes": 0,
"heart": 0,
"laugh": 0,
"hooray": 0,
"rocket": 0,
"confused": 0,
"total_count": 0
},
"created_at": "2023-01-24T04:18:52Z",
"updated_at": "2023-01-24T04:18:52Z",
"author_association": "MEMBER",
"performed_via_github_app": null
},
"repository": {
"id": 588602633,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples",
"fork": false,
"name": "trigger.dev-examples",
"size": 161,
"forks": 0,
"owner": {
"id": 95297378,
"url": "https://api.github.com/users/triggerdotdev",
"type": "Organization",
"login": "triggerdotdev",
"node_id": "O_kgDOBa4fYg",
"html_url": "https://github.com/triggerdotdev",
"gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
"repos_url": "https://api.github.com/users/triggerdotdev/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
"events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/triggerdotdev/followers",
"following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
"organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
"subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
"received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
},
"topics": [],
"git_url": "git://github.com/triggerdotdev/trigger.dev-examples.git",
"license": null,
"node_id": "R_kgDOIxVdCQ",
"private": false,
"ssh_url": "git@github.com:triggerdotdev/trigger.dev-examples.git",
"svn_url": "https://github.com/triggerdotdev/trigger.dev-examples",
"archived": false,
"disabled": false,
"has_wiki": false,
"homepage": null,
"html_url": "https://github.com/triggerdotdev/trigger.dev-examples",
"keys_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/keys{/key_id}",
"language": "TypeScript",
"tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/tags",
"watchers": 1,
"blobs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/blobs{/sha}",
"clone_url": "https://github.com/triggerdotdev/trigger.dev-examples.git",
"forks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/forks",
"full_name": "triggerdotdev/trigger.dev-examples",
"has_pages": false,
"hooks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/hooks",
"pulls_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls{/number}",
"pushed_at": "2023-01-23T19:06:36Z",
"teams_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/teams",
"trees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/trees{/sha}",
"created_at": "2023-01-13T14:26:45Z",
"events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/events",
"has_issues": true,
"issues_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues{/number}",
"labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/labels{/name}",
"merges_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/merges",
"mirror_url": null,
"updated_at": "2023-01-23T14:22:40Z",
"visibility": "public",
"archive_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/{archive_format}{/ref}",
"commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/commits{/sha}",
"compare_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/compare/{base}...{head}",
"description": "Node.js project with multiple example Trigger.dev workflows",
"forks_count": 0,
"is_template": false,
"open_issues": 2,
"branches_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/branches{/branch}",
"comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/comments{/number}",
"contents_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contents/{+path}",
"git_refs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/refs{/sha}",
"git_tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/tags{/sha}",
"has_projects": true,
"releases_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/releases{/id}",
"statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/{sha}",
"allow_forking": true,
"assignees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/assignees{/user}",
"downloads_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/downloads",
"has_downloads": false,
"languages_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/languages",
"default_branch": "main",
"milestones_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/milestones{/number}",
"stargazers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/stargazers",
"watchers_count": 1,
"deployments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/deployments",
"git_commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/commits{/sha}",
"has_discussions": false,
"subscribers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscribers",
"contributors_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contributors",
"issue_events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/events{/number}",
"stargazers_count": 1,
"subscription_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscription",
"collaborators_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/collaborators{/collaborator}",
"issue_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/comments{/number}",
"notifications_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/notifications{?since,all,participating}",
"open_issues_count": 2,
"web_commit_signoff_required": false
},
"organization": {
"id": 95297378,
"url": "https://api.github.com/orgs/triggerdotdev",
"login": "triggerdotdev",
"node_id": "O_kgDOBa4fYg",
"hooks_url": "https://api.github.com/orgs/triggerdotdev/hooks",
"repos_url": "https://api.github.com/orgs/triggerdotdev/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
"events_url": "https://api.github.com/orgs/triggerdotdev/events",
"issues_url": "https://api.github.com/orgs/triggerdotdev/issues",
"description": "",
"members_url": "https://api.github.com/orgs/triggerdotdev/members{/member}",
"public_members_url": "https://api.github.com/orgs/triggerdotdev/public_members{/member}"
}
}
```
@@ -1,428 +0,0 @@
---
title: "Issue Event"
sidebarTitle: "Issues"
description: "Trigger a workflow whenever an issue action is performed in a GitHub repository."
---
## Usage
```ts
import * as github from "@trigger.dev/github";
new Trigger({
id: "demo",
on: github.events.issueEvent({
repo: "triggerdotdev/trigger.dev",
}),
run: async (event, ctx) => {},
}).listen();
```
## Params
<ParamField path="repo" type="string" required={true}>
The full path to the repository, including the organization
</ParamField>
## Event
<ResponseField name="action" type="string">
The issue action, can be one of assigned, closed, deleted, edited, labeled,
unlabeled, locked, opened, pinned, reopened, transferred, unlocked, or
unassigned.
</ResponseField>
<ResponseField name="issue" type="object" required={true}>
The issue object.
</ResponseField>
<ResponseField name="repository" type="object" required={true}>
A repository on GitHub.
</ResponseField>
<ResponseField name="sender" type="object" required={true}>
The GitHub user object who performed the action.
</ResponseField>
<ResponseField name="organization" type="object">
The organization object the repository belongs to.
</ResponseField>
## Additional event fields
### transferred issues
<ResponseField name="changes" type="object">
<Expandable title="properties">
<ResponseField name="new_issue" type="object">
The new issue object.
</ResponseField>
<ResponseField name="new_repository" type="object">
The new issue repository.
</ResponseField>
</Expandable>
</ResponseField>
### edited issues
<ResponseField name="changes" type="object">
<Expandable title="properties">
<ResponseField name="body" type="object">
<Expandable title="properties" defaultOpen={true}>
<ResponseField name="from" type="string">
The previous body text.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="title" type="object">
<Expandable title="properties" defaultOpen={true}>
<ResponseField name="from" type="string">
The previous title text.
</ResponseField>
</Expandable>
</ResponseField>
</Expandable>
</ResponseField>
### labeled/unlabeled issues
<ResponseField name="label" type="object">
The label object.
</ResponseField>
### assigned/unassigned issues
<ResponseField name="assignee" type="object">
The assignee object.
</ResponseField>
### opened issues
<ResponseField name="changes" type="object">
<Expandable title="properties">
<ResponseField name="old_issue" type="object">
The old issue object.
</ResponseField>
<ResponseField name="old_repository" type="object">
The old issue repository.
</ResponseField>
</Expandable>
</ResponseField>
## Example Workflows
<CodeGroup>
```typescript Notify Slack on Critical Issue
new Trigger({
id: "github-to-slack",
name: "Notify of critical issues",
on: github.events.issueEvent({
repo: "triggerdotdev/trigger.dev",
}),
run: async (event, ctx) => {
if (event.action === "labeled") {
if (event.label?.name === "critical") {
await slack.postMessage("send-to-slack", {
channelName: "serious-issues",
text: `Critical issue: ${event.issue.title} was labeled ${event.label.name}`,
});
}
}
return event;
},
}).listen();
```
</CodeGroup>
## Example Event payload
```json
{
"issue": {
"id": 1514714160,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev/issues/2",
"body": "This is the body text\r\n`const name = \"Matt\"`",
"user": {
"id": 10635986,
"url": "https://api.github.com/users/matt-aitken",
"type": "User",
"login": "matt-aitken",
"node_id": "MDQ6VXNlcjEwNjM1OTg2",
"html_url": "https://github.com/matt-aitken",
"gists_url": "https://api.github.com/users/matt-aitken/gists{/gist_id}",
"repos_url": "https://api.github.com/users/matt-aitken/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/10635986?v=4",
"events_url": "https://api.github.com/users/matt-aitken/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/matt-aitken/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/matt-aitken/followers",
"following_url": "https://api.github.com/users/matt-aitken/following{/other_user}",
"organizations_url": "https://api.github.com/users/matt-aitken/orgs",
"subscriptions_url": "https://api.github.com/users/matt-aitken/subscriptions",
"received_events_url": "https://api.github.com/users/matt-aitken/received_events"
},
"state": "open",
"title": "Test issue for webhook",
"labels": [
{
"id": 4858587614,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev/labels/documentation",
"name": "documentation",
"color": "0075ca",
"default": true,
"node_id": "LA_kwDOIiC6Ac8AAAABIZgp3g",
"description": "Improvements or additions to documentation"
},
{
"id": 5009913913,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev/labels/critical",
"name": "critical",
"color": "e99695",
"default": false,
"node_id": "LA_kwDOIiC6Ac8AAAABKp04OQ",
"description": ""
}
],
"locked": false,
"number": 2,
"node_id": "I_kwDOIiC6Ac5aSLQw",
"assignee": {
"id": 10635986,
"url": "https://api.github.com/users/matt-aitken",
"type": "User",
"login": "matt-aitken",
"node_id": "MDQ6VXNlcjEwNjM1OTg2",
"html_url": "https://github.com/matt-aitken",
"gists_url": "https://api.github.com/users/matt-aitken/gists{/gist_id}",
"repos_url": "https://api.github.com/users/matt-aitken/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/10635986?v=4",
"events_url": "https://api.github.com/users/matt-aitken/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/matt-aitken/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/matt-aitken/followers",
"following_url": "https://api.github.com/users/matt-aitken/following{/other_user}",
"organizations_url": "https://api.github.com/users/matt-aitken/orgs",
"subscriptions_url": "https://api.github.com/users/matt-aitken/subscriptions",
"received_events_url": "https://api.github.com/users/matt-aitken/received_events"
},
"comments": 2,
"html_url": "https://github.com/triggerdotdev/trigger.dev/issues/2",
"assignees": [
{
"id": 10635986,
"url": "https://api.github.com/users/matt-aitken",
"type": "User",
"login": "matt-aitken",
"node_id": "MDQ6VXNlcjEwNjM1OTg2",
"html_url": "https://github.com/matt-aitken",
"gists_url": "https://api.github.com/users/matt-aitken/gists{/gist_id}",
"repos_url": "https://api.github.com/users/matt-aitken/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/10635986?v=4",
"events_url": "https://api.github.com/users/matt-aitken/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/matt-aitken/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/matt-aitken/followers",
"following_url": "https://api.github.com/users/matt-aitken/following{/other_user}",
"organizations_url": "https://api.github.com/users/matt-aitken/orgs",
"subscriptions_url": "https://api.github.com/users/matt-aitken/subscriptions",
"received_events_url": "https://api.github.com/users/matt-aitken/received_events"
}
],
"closed_at": null,
"milestone": null,
"reactions": {
"+1": 0,
"-1": 0,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev/issues/2/reactions",
"eyes": 0,
"heart": 0,
"laugh": 0,
"hooray": 0,
"rocket": 0,
"confused": 0,
"total_count": 0
},
"created_at": "2022-12-30T18:34:01Z",
"events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/issues/2/events",
"labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/issues/2/labels{/name}",
"updated_at": "2023-01-15T20:18:14Z",
"comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/issues/2/comments",
"state_reason": null,
"timeline_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/issues/2/timeline",
"repository_url": "https://api.github.com/repos/triggerdotdev/trigger.dev",
"active_lock_reason": null,
"author_association": "MEMBER",
"performed_via_github_app": null
},
"label": {
"id": 5009913913,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev/labels/critical",
"name": "critical",
"color": "e99695",
"default": false,
"node_id": "LA_kwDOIiC6Ac8AAAABKp04OQ",
"description": ""
},
"action": "labeled",
"sender": {
"id": 7555566,
"url": "https://api.github.com/users/samejr",
"type": "User",
"login": "samejr",
"node_id": "MDQ6VXNlcjc1NTU1NjY=",
"html_url": "https://github.com/samejr",
"gists_url": "https://api.github.com/users/samejr/gists{/gist_id}",
"repos_url": "https://api.github.com/users/samejr/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/7555566?v=4",
"events_url": "https://api.github.com/users/samejr/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/samejr/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/samejr/followers",
"following_url": "https://api.github.com/users/samejr/following{/other_user}",
"organizations_url": "https://api.github.com/users/samejr/orgs",
"subscriptions_url": "https://api.github.com/users/samejr/subscriptions",
"received_events_url": "https://api.github.com/users/samejr/received_events"
},
"repository": {
"id": 572570113,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev",
"fork": false,
"name": "trigger.dev",
"size": 14727,
"forks": 2,
"owner": {
"id": 95297378,
"url": "https://api.github.com/users/triggerdotdev",
"type": "Organization",
"login": "triggerdotdev",
"node_id": "O_kgDOBa4fYg",
"html_url": "https://github.com/triggerdotdev",
"gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
"repos_url": "https://api.github.com/users/triggerdotdev/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
"events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/triggerdotdev/followers",
"following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
"organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
"subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
"received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
},
"topics": [
"apis",
"automation",
"event-driven",
"events",
"orchestration",
"scheduler",
"workflows"
],
"git_url": "git://github.com/triggerdotdev/trigger.dev.git",
"license": {
"key": "apache-2.0",
"url": "https://api.github.com/licenses/apache-2.0",
"name": "Apache License 2.0",
"node_id": "MDc6TGljZW5zZTI=",
"spdx_id": "Apache-2.0"
},
"node_id": "R_kgDOIiC6AQ",
"private": false,
"ssh_url": "git@github.com:triggerdotdev/trigger.dev.git",
"svn_url": "https://github.com/triggerdotdev/trigger.dev",
"archived": false,
"disabled": false,
"has_wiki": true,
"homepage": "https://trigger.dev",
"html_url": "https://github.com/triggerdotdev/trigger.dev",
"keys_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/keys{/key_id}",
"language": "TypeScript",
"tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/tags",
"watchers": 58,
"blobs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/git/blobs{/sha}",
"clone_url": "https://github.com/triggerdotdev/trigger.dev.git",
"forks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/forks",
"full_name": "triggerdotdev/trigger.dev",
"has_pages": false,
"hooks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/hooks",
"pulls_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/pulls{/number}",
"pushed_at": "2023-01-15T19:41:24Z",
"teams_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/teams",
"trees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/git/trees{/sha}",
"created_at": "2022-11-30T14:59:07Z",
"events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/events",
"has_issues": true,
"issues_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/issues{/number}",
"labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/labels{/name}",
"merges_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/merges",
"mirror_url": null,
"updated_at": "2023-01-15T18:49:01Z",
"visibility": "public",
"archive_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/{archive_format}{/ref}",
"commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/commits{/sha}",
"compare_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/compare/{base}...{head}",
"description": "The developer-first, open source Zapier Alternative. Coming soon. Give us a ⭐️ and we'll let you know",
"forks_count": 2,
"is_template": false,
"open_issues": 2,
"branches_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/branches{/branch}",
"comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/comments{/number}",
"contents_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/contents/{+path}",
"git_refs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/git/refs{/sha}",
"git_tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/git/tags{/sha}",
"has_projects": true,
"releases_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/releases{/id}",
"statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/statuses/{sha}",
"allow_forking": true,
"assignees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/assignees{/user}",
"downloads_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/downloads",
"has_downloads": true,
"languages_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/languages",
"default_branch": "main",
"milestones_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/milestones{/number}",
"stargazers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/stargazers",
"watchers_count": 58,
"deployments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/deployments",
"git_commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/git/commits{/sha}",
"has_discussions": false,
"subscribers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/subscribers",
"contributors_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/contributors",
"issue_events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/issues/events{/number}",
"stargazers_count": 58,
"subscription_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/subscription",
"collaborators_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/collaborators{/collaborator}",
"issue_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/issues/comments{/number}",
"notifications_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/notifications{?since,all,participating}",
"open_issues_count": 2,
"web_commit_signoff_required": false
},
"organization": {
"id": 95297378,
"url": "https://api.github.com/orgs/triggerdotdev",
"login": "triggerdotdev",
"node_id": "O_kgDOBa4fYg",
"hooks_url": "https://api.github.com/orgs/triggerdotdev/hooks",
"repos_url": "https://api.github.com/orgs/triggerdotdev/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
"events_url": "https://api.github.com/orgs/triggerdotdev/events",
"issues_url": "https://api.github.com/orgs/triggerdotdev/issues",
"description": "",
"members_url": "https://api.github.com/orgs/triggerdotdev/members{/member}",
"public_members_url": "https://api.github.com/orgs/triggerdotdev/public_members{/member}"
}
}
```
@@ -1,220 +0,0 @@
---
title: "New Star Event"
sidebarTitle: "New Star"
description: "Trigger a workflow whenever a user star's the specified GitHub repository."
---
## Usage
```ts
import * as github from "@trigger.dev/github";
new Trigger({
id: "demo",
on: github.events.newStarEvent({
repo: "triggerdotdev/trigger.dev",
}),
run: async (event, ctx) => {},
}).listen();
```
## Params
<ParamField path="repo" type="string" required={true}>
The full path to the repository, including the organization
</ParamField>
## Event
<ResponseField name="action" type="string" default="created">
The star action, which in this case is always `"created"`.
</ResponseField>
<ResponseField name="starred_at" type="Date" required={true}>
The date and time the starring occurred.
</ResponseField>
<ResponseField name="repository" type="object" required={true}>
A repository on GitHub.
</ResponseField>
<ResponseField name="sender" type="object" required={true}>
The GitHub user object who starred the repository.
</ResponseField>
<ResponseField name="organization" type="object">
The organization object the repository belongs to.
</ResponseField>
## Example Workflows
<CodeGroup>
```typescript Notify Slack on New GitHub Star
import * as slack from "@trigger.dev/slack";
new Trigger({
id: "new-star",
name: "On New Star",
on: github.events.newStarEvent({
repo: "triggerdotdev/trigger.dev",
}),
run: async (event, ctx) => {
await slack.postMessage("⭐️ New Star", {
channelName: "github-stars",
text: `Repo ${event.repository.full_name} got a star from ${event.sender.login}, for a total of ${event.repository.stargazers_count} stars!`,
});
},
}).listen();
```
</CodeGroup>
## Example Event payload
```json Example
{
"action": "created",
"starred_at": "2023-01-21T23:47:38Z",
"repository": {
"id": 516315865,
"node_id": "R_kgDOHsZa2Q",
"name": "apihero-openapi-generator",
"full_name": "triggerdotdev/apihero-openapi-generator",
"private": false,
"owner": {
"login": "triggerdotdev",
"id": 95297378,
"node_id": "O_kgDOBa4fYg",
"avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/triggerdotdev",
"html_url": "https://github.com/triggerdotdev",
"followers_url": "https://api.github.com/users/triggerdotdev/followers",
"following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
"gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
"starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
"organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
"repos_url": "https://api.github.com/users/triggerdotdev/repos",
"events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
"received_events_url": "https://api.github.com/users/triggerdotdev/received_events",
"type": "Organization",
"site_admin": false
},
"html_url": "https://github.com/triggerdotdev/apihero-openapi-generator",
"description": null,
"fork": false,
"url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator",
"forks_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/forks",
"keys_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/teams",
"hooks_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/hooks",
"issue_events_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/issues/events{/number}",
"events_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/events",
"assignees_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/assignees{/user}",
"branches_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/branches{/branch}",
"tags_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/tags",
"blobs_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/statuses/{sha}",
"languages_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/languages",
"stargazers_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/stargazers",
"contributors_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/contributors",
"subscribers_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/subscribers",
"subscription_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/subscription",
"commits_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/contents/{+path}",
"compare_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/merges",
"archive_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/downloads",
"issues_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/issues{/number}",
"pulls_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/pulls{/number}",
"milestones_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/milestones{/number}",
"notifications_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/labels{/name}",
"releases_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/releases{/id}",
"deployments_url": "https://api.github.com/repos/triggerdotdev/apihero-openapi-generator/deployments",
"created_at": "2022-07-21T09:57:53Z",
"updated_at": "2023-01-21T23:47:38Z",
"pushed_at": "2022-10-20T13:21:09Z",
"git_url": "git://github.com/triggerdotdev/apihero-openapi-generator.git",
"ssh_url": "git@github.com:triggerdotdev/apihero-openapi-generator.git",
"clone_url": "https://github.com/triggerdotdev/apihero-openapi-generator.git",
"svn_url": "https://github.com/triggerdotdev/apihero-openapi-generator",
"homepage": null,
"size": 4962,
"stargazers_count": 1,
"watchers_count": 1,
"language": "TypeScript",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 0,
"license": {
"key": "mit",
"name": "MIT License",
"spdx_id": "MIT",
"url": "https://api.github.com/licenses/mit",
"node_id": "MDc6TGljZW5zZTEz"
},
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 0,
"watchers": 1,
"default_branch": "main"
},
"organization": {
"login": "triggerdotdev",
"id": 95297378,
"node_id": "O_kgDOBa4fYg",
"url": "https://api.github.com/orgs/triggerdotdev",
"repos_url": "https://api.github.com/orgs/triggerdotdev/repos",
"events_url": "https://api.github.com/orgs/triggerdotdev/events",
"hooks_url": "https://api.github.com/orgs/triggerdotdev/hooks",
"issues_url": "https://api.github.com/orgs/triggerdotdev/issues",
"members_url": "https://api.github.com/orgs/triggerdotdev/members{/member}",
"public_members_url": "https://api.github.com/orgs/triggerdotdev/public_members{/member}",
"avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
"description": ""
},
"sender": {
"login": "ericallam",
"id": 534,
"node_id": "MDQ6VXNlcjUzNA==",
"avatar_url": "https://avatars.githubusercontent.com/u/534?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/ericallam",
"html_url": "https://github.com/ericallam",
"followers_url": "https://api.github.com/users/ericallam/followers",
"following_url": "https://api.github.com/users/ericallam/following{/other_user}",
"gists_url": "https://api.github.com/users/ericallam/gists{/gist_id}",
"starred_url": "https://api.github.com/users/ericallam/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/ericallam/subscriptions",
"organizations_url": "https://api.github.com/users/ericallam/orgs",
"repos_url": "https://api.github.com/users/ericallam/repos",
"events_url": "https://api.github.com/users/ericallam/events{/privacy}",
"received_events_url": "https://api.github.com/users/ericallam/received_events",
"type": "User",
"site_admin": false
}
}
```
@@ -1,97 +0,0 @@
---
title: "PR Review Comment Event"
sidebarTitle: "PR Review Comments"
description: "Trigger a workflow whenever an pull_request_review_comment action is performed in a GitHub repository."
---
<Note>
If you would like to trigger a workflow when a comment is made on a PR, use
the [issueCommentEvent](/integrations/apis/github/events/issue-comments)
instead
</Note>
## Usage
```ts
import * as github from "@trigger.dev/github";
new Trigger({
id: "demo",
on: github.events.pullRequestCommentEvent({
repo: "triggerdotdev/trigger.dev",
}),
run: async (event, ctx) => {},
}).listen();
```
## Params
<ParamField path="repo" type="string" required={true}>
The full path to the repository, including the organization
</ParamField>
## Event
<ResponseField name="action" type="string">
The pull_request action, can be one of: `created`, `edited`, `deleted`.
</ResponseField>
<ResponseField name="comment" type="object" required={true}>
The pull request review comment object.
</ResponseField>
<ResponseField name="pull_request" type="object" required={true}>
The pull request object.
</ResponseField>
<ResponseField name="repository" type="object" required={true}>
A repository on GitHub.
</ResponseField>
<ResponseField name="sender" type="object" required={true}>
The GitHub user object who performed the action.
</ResponseField>
<ResponseField name="organization" type="object">
The organization object the repository belongs to.
</ResponseField>
## Additional event fields
### edited PR Review Comment
<ResponseField name="changes" type="object">
<Expandable title="properties">
<ResponseField name="body" type="object">
<Expandable title="properties" defaultOpen={true}>
<ResponseField name="from" type="string">
The previous body text.
</ResponseField>
</Expandable>
</ResponseField>
</Expandable>
</ResponseField>
## Example Workflows
<CodeGroup>
```typescript Notify Slack on new PR
new Trigger({
id: "new-pr",
name: "Notify Slack on new PR Review Comment",
on: github.events.pullRequestCommentEvent({
repo: "triggerdotdev/trigger.dev",
}),
run: async (event, ctx) => {
if (event.action === "created") {
await slack.postMessage("New PR comment", {
channelName: "github-prs",
text: `New PR comment by ${event.sender.login} on PR ${event.pull_request.title} (${event.pull_request.html_url})`,
});
}
},
}).listen();
```
</CodeGroup>
@@ -1,625 +0,0 @@
---
title: "PR Review Event"
sidebarTitle: "PR Reviews"
description: "Trigger a workflow whenever an pull_request_review action is performed in a GitHub repository."
---
## Usage
```ts
import * as github from "@trigger.dev/github";
new Trigger({
id: "demo",
on: github.events.pullRequestReviewEvent({
repo: "triggerdotdev/trigger.dev",
}),
run: async (event, ctx) => {},
}).listen();
```
## Params
<ParamField path="repo" type="string" required={true}>
The full path to the repository, including the organization
</ParamField>
## Event
<ResponseField name="action" type="string">
The pull_request_review action, can be one of: `submitted`, `edited`,
`dismissed`.
</ResponseField>
<ResponseField name="review" type="object" required={true}>
The pull request review object.
</ResponseField>
<ResponseField name="pull_request" type="object" required={true}>
The pull request object.
</ResponseField>
<ResponseField name="repository" type="object" required={true}>
A repository on GitHub.
</ResponseField>
<ResponseField name="sender" type="object" required={true}>
The GitHub user object who performed the action.
</ResponseField>
<ResponseField name="organization" type="object">
The organization object the repository belongs to.
</ResponseField>
## Additional event fields
### edited PR Review
<ResponseField name="changes" type="object">
<Expandable title="properties">
<ResponseField name="body" type="object">
<Expandable title="properties" defaultOpen={true}>
<ResponseField name="from" type="string">
The previous body text.
</ResponseField>
</Expandable>
</ResponseField>
</Expandable>
</ResponseField>
## Example Workflows
<CodeGroup>
```typescript Notify Slack on new PR Review
new Trigger({
id: "new-pr",
name: "Notify Slack on new PR Review",
on: github.events.pullRequestReviewEvent({
repo: "triggerdotdev/trigger.dev",
}),
run: async (event, ctx) => {
if (event.action === "submitted") {
await slack.postMessage("New PR Review", {
channelName: "github-prs",
text: `New PR Review by ${event.sender.login} on PR ${event.pull_request.title} (${event.pull_request.html_url})`,
});
}
},
}).listen();
```
</CodeGroup>
## Example Event payload
```json
{
"action": "submitted",
"review": {
"id": 1266763458,
"body": "This is a PR review comment?",
"user": {
"id": 534,
"url": "https://api.github.com/users/ericallam",
"type": "User",
"login": "ericallam",
"node_id": "MDQ6VXNlcjUzNA==",
"html_url": "https://github.com/ericallam",
"gists_url": "https://api.github.com/users/ericallam/gists{/gist_id}",
"repos_url": "https://api.github.com/users/ericallam/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/534?v=4",
"events_url": "https://api.github.com/users/ericallam/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/ericallam/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/ericallam/followers",
"following_url": "https://api.github.com/users/ericallam/following{/other_user}",
"organizations_url": "https://api.github.com/users/ericallam/orgs",
"subscriptions_url": "https://api.github.com/users/ericallam/subscriptions",
"received_events_url": "https://api.github.com/users/ericallam/received_events"
},
"state": "commented",
"_links": {
"html": {
"href": "https://github.com/triggerdotdev/trigger.dev-examples/pull/4#pullrequestreview-1266763458"
},
"pull_request": {
"href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4"
}
},
"node_id": "PRR_kwDOIxVdCc5LgUbC",
"html_url": "https://github.com/triggerdotdev/trigger.dev-examples/pull/4#pullrequestreview-1266763458",
"commit_id": "efc58e149c06f4a45ebf7a0bf34ac25cdcd34b07",
"submitted_at": "2023-01-24T04:24:58Z",
"pull_request_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4",
"author_association": "MEMBER"
},
"sender": {
"id": 534,
"url": "https://api.github.com/users/ericallam",
"type": "User",
"login": "ericallam",
"node_id": "MDQ6VXNlcjUzNA==",
"html_url": "https://github.com/ericallam",
"gists_url": "https://api.github.com/users/ericallam/gists{/gist_id}",
"repos_url": "https://api.github.com/users/ericallam/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/534?v=4",
"events_url": "https://api.github.com/users/ericallam/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/ericallam/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/ericallam/followers",
"following_url": "https://api.github.com/users/ericallam/following{/other_user}",
"organizations_url": "https://api.github.com/users/ericallam/orgs",
"subscriptions_url": "https://api.github.com/users/ericallam/subscriptions",
"received_events_url": "https://api.github.com/users/ericallam/received_events"
},
"repository": {
"id": 588602633,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples",
"fork": false,
"name": "trigger.dev-examples",
"size": 161,
"forks": 0,
"owner": {
"id": 95297378,
"url": "https://api.github.com/users/triggerdotdev",
"type": "Organization",
"login": "triggerdotdev",
"node_id": "O_kgDOBa4fYg",
"html_url": "https://github.com/triggerdotdev",
"gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
"repos_url": "https://api.github.com/users/triggerdotdev/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
"events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/triggerdotdev/followers",
"following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
"organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
"subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
"received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
},
"topics": [],
"git_url": "git://github.com/triggerdotdev/trigger.dev-examples.git",
"license": null,
"node_id": "R_kgDOIxVdCQ",
"private": false,
"ssh_url": "git@github.com:triggerdotdev/trigger.dev-examples.git",
"svn_url": "https://github.com/triggerdotdev/trigger.dev-examples",
"archived": false,
"disabled": false,
"has_wiki": false,
"homepage": null,
"html_url": "https://github.com/triggerdotdev/trigger.dev-examples",
"keys_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/keys{/key_id}",
"language": "TypeScript",
"tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/tags",
"watchers": 1,
"blobs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/blobs{/sha}",
"clone_url": "https://github.com/triggerdotdev/trigger.dev-examples.git",
"forks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/forks",
"full_name": "triggerdotdev/trigger.dev-examples",
"has_pages": false,
"hooks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/hooks",
"pulls_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls{/number}",
"pushed_at": "2023-01-24T04:20:52Z",
"teams_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/teams",
"trees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/trees{/sha}",
"created_at": "2023-01-13T14:26:45Z",
"events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/events",
"has_issues": true,
"issues_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues{/number}",
"labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/labels{/name}",
"merges_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/merges",
"mirror_url": null,
"updated_at": "2023-01-23T14:22:40Z",
"visibility": "public",
"archive_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/{archive_format}{/ref}",
"commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/commits{/sha}",
"compare_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/compare/{base}...{head}",
"description": "Node.js project with multiple example Trigger.dev workflows",
"forks_count": 0,
"is_template": false,
"open_issues": 3,
"branches_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/branches{/branch}",
"comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/comments{/number}",
"contents_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contents/{+path}",
"git_refs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/refs{/sha}",
"git_tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/tags{/sha}",
"has_projects": true,
"releases_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/releases{/id}",
"statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/{sha}",
"allow_forking": true,
"assignees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/assignees{/user}",
"downloads_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/downloads",
"has_downloads": false,
"languages_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/languages",
"default_branch": "main",
"milestones_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/milestones{/number}",
"stargazers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/stargazers",
"watchers_count": 1,
"deployments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/deployments",
"git_commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/commits{/sha}",
"has_discussions": false,
"subscribers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscribers",
"contributors_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contributors",
"issue_events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/events{/number}",
"stargazers_count": 1,
"subscription_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscription",
"collaborators_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/collaborators{/collaborator}",
"issue_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/comments{/number}",
"notifications_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/notifications{?since,all,participating}",
"open_issues_count": 3,
"web_commit_signoff_required": false
},
"organization": {
"id": 95297378,
"url": "https://api.github.com/orgs/triggerdotdev",
"login": "triggerdotdev",
"node_id": "O_kgDOBa4fYg",
"hooks_url": "https://api.github.com/orgs/triggerdotdev/hooks",
"repos_url": "https://api.github.com/orgs/triggerdotdev/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
"events_url": "https://api.github.com/orgs/triggerdotdev/events",
"issues_url": "https://api.github.com/orgs/triggerdotdev/issues",
"description": "",
"members_url": "https://api.github.com/orgs/triggerdotdev/members{/member}",
"public_members_url": "https://api.github.com/orgs/triggerdotdev/public_members{/member}"
},
"pull_request": {
"id": 1214500311,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4",
"base": {
"ref": "main",
"sha": "e7c0680e23fcd3e52d35ddfbb4076112c640d9fa",
"repo": {
"id": 588602633,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples",
"fork": false,
"name": "trigger.dev-examples",
"size": 161,
"forks": 0,
"owner": {
"id": 95297378,
"url": "https://api.github.com/users/triggerdotdev",
"type": "Organization",
"login": "triggerdotdev",
"node_id": "O_kgDOBa4fYg",
"html_url": "https://github.com/triggerdotdev",
"gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
"repos_url": "https://api.github.com/users/triggerdotdev/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
"events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/triggerdotdev/followers",
"following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
"organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
"subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
"received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
},
"topics": [],
"git_url": "git://github.com/triggerdotdev/trigger.dev-examples.git",
"license": null,
"node_id": "R_kgDOIxVdCQ",
"private": false,
"ssh_url": "git@github.com:triggerdotdev/trigger.dev-examples.git",
"svn_url": "https://github.com/triggerdotdev/trigger.dev-examples",
"archived": false,
"disabled": false,
"has_wiki": false,
"homepage": null,
"html_url": "https://github.com/triggerdotdev/trigger.dev-examples",
"keys_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/keys{/key_id}",
"language": "TypeScript",
"tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/tags",
"watchers": 1,
"blobs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/blobs{/sha}",
"clone_url": "https://github.com/triggerdotdev/trigger.dev-examples.git",
"forks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/forks",
"full_name": "triggerdotdev/trigger.dev-examples",
"has_pages": false,
"hooks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/hooks",
"pulls_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls{/number}",
"pushed_at": "2023-01-24T04:20:52Z",
"teams_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/teams",
"trees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/trees{/sha}",
"created_at": "2023-01-13T14:26:45Z",
"events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/events",
"has_issues": true,
"issues_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues{/number}",
"labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/labels{/name}",
"merges_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/merges",
"mirror_url": null,
"updated_at": "2023-01-23T14:22:40Z",
"visibility": "public",
"archive_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/{archive_format}{/ref}",
"commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/commits{/sha}",
"compare_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/compare/{base}...{head}",
"description": "Node.js project with multiple example Trigger.dev workflows",
"forks_count": 0,
"is_template": false,
"open_issues": 3,
"branches_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/branches{/branch}",
"comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/comments{/number}",
"contents_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contents/{+path}",
"git_refs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/refs{/sha}",
"git_tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/tags{/sha}",
"has_projects": true,
"releases_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/releases{/id}",
"statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/{sha}",
"allow_forking": true,
"assignees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/assignees{/user}",
"downloads_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/downloads",
"has_downloads": false,
"languages_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/languages",
"default_branch": "main",
"milestones_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/milestones{/number}",
"stargazers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/stargazers",
"watchers_count": 1,
"deployments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/deployments",
"git_commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/commits{/sha}",
"has_discussions": false,
"subscribers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscribers",
"allow_auto_merge": false,
"contributors_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contributors",
"issue_events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/events{/number}",
"stargazers_count": 1,
"subscription_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscription",
"collaborators_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/collaborators{/collaborator}",
"issue_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/comments{/number}",
"notifications_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/notifications{?since,all,participating}",
"open_issues_count": 3,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_squash_merge": true,
"merge_commit_title": "MERGE_MESSAGE",
"allow_update_branch": false,
"merge_commit_message": "PR_TITLE",
"delete_branch_on_merge": false,
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"squash_merge_commit_message": "COMMIT_MESSAGES",
"web_commit_signoff_required": false,
"use_squash_pr_title_as_default": false
},
"user": {
"id": 95297378,
"url": "https://api.github.com/users/triggerdotdev",
"type": "Organization",
"login": "triggerdotdev",
"node_id": "O_kgDOBa4fYg",
"html_url": "https://github.com/triggerdotdev",
"gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
"repos_url": "https://api.github.com/users/triggerdotdev/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
"events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/triggerdotdev/followers",
"following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
"organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
"subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
"received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
},
"label": "triggerdotdev:main"
},
"body": null,
"head": {
"ref": "resend",
"sha": "efc58e149c06f4a45ebf7a0bf34ac25cdcd34b07",
"repo": {
"id": 588602633,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples",
"fork": false,
"name": "trigger.dev-examples",
"size": 161,
"forks": 0,
"owner": {
"id": 95297378,
"url": "https://api.github.com/users/triggerdotdev",
"type": "Organization",
"login": "triggerdotdev",
"node_id": "O_kgDOBa4fYg",
"html_url": "https://github.com/triggerdotdev",
"gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
"repos_url": "https://api.github.com/users/triggerdotdev/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
"events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/triggerdotdev/followers",
"following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
"organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
"subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
"received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
},
"topics": [],
"git_url": "git://github.com/triggerdotdev/trigger.dev-examples.git",
"license": null,
"node_id": "R_kgDOIxVdCQ",
"private": false,
"ssh_url": "git@github.com:triggerdotdev/trigger.dev-examples.git",
"svn_url": "https://github.com/triggerdotdev/trigger.dev-examples",
"archived": false,
"disabled": false,
"has_wiki": false,
"homepage": null,
"html_url": "https://github.com/triggerdotdev/trigger.dev-examples",
"keys_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/keys{/key_id}",
"language": "TypeScript",
"tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/tags",
"watchers": 1,
"blobs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/blobs{/sha}",
"clone_url": "https://github.com/triggerdotdev/trigger.dev-examples.git",
"forks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/forks",
"full_name": "triggerdotdev/trigger.dev-examples",
"has_pages": false,
"hooks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/hooks",
"pulls_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls{/number}",
"pushed_at": "2023-01-24T04:20:52Z",
"teams_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/teams",
"trees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/trees{/sha}",
"created_at": "2023-01-13T14:26:45Z",
"events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/events",
"has_issues": true,
"issues_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues{/number}",
"labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/labels{/name}",
"merges_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/merges",
"mirror_url": null,
"updated_at": "2023-01-23T14:22:40Z",
"visibility": "public",
"archive_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/{archive_format}{/ref}",
"commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/commits{/sha}",
"compare_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/compare/{base}...{head}",
"description": "Node.js project with multiple example Trigger.dev workflows",
"forks_count": 0,
"is_template": false,
"open_issues": 3,
"branches_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/branches{/branch}",
"comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/comments{/number}",
"contents_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contents/{+path}",
"git_refs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/refs{/sha}",
"git_tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/tags{/sha}",
"has_projects": true,
"releases_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/releases{/id}",
"statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/{sha}",
"allow_forking": true,
"assignees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/assignees{/user}",
"downloads_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/downloads",
"has_downloads": false,
"languages_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/languages",
"default_branch": "main",
"milestones_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/milestones{/number}",
"stargazers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/stargazers",
"watchers_count": 1,
"deployments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/deployments",
"git_commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/commits{/sha}",
"has_discussions": false,
"subscribers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscribers",
"allow_auto_merge": false,
"contributors_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contributors",
"issue_events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/events{/number}",
"stargazers_count": 1,
"subscription_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscription",
"collaborators_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/collaborators{/collaborator}",
"issue_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/comments{/number}",
"notifications_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/notifications{?since,all,participating}",
"open_issues_count": 3,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_squash_merge": true,
"merge_commit_title": "MERGE_MESSAGE",
"allow_update_branch": false,
"merge_commit_message": "PR_TITLE",
"delete_branch_on_merge": false,
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"squash_merge_commit_message": "COMMIT_MESSAGES",
"web_commit_signoff_required": false,
"use_squash_pr_title_as_default": false
},
"user": {
"id": 95297378,
"url": "https://api.github.com/users/triggerdotdev",
"type": "Organization",
"login": "triggerdotdev",
"node_id": "O_kgDOBa4fYg",
"html_url": "https://github.com/triggerdotdev",
"gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
"repos_url": "https://api.github.com/users/triggerdotdev/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
"events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/triggerdotdev/followers",
"following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
"organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
"subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
"received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
},
"label": "triggerdotdev:resend"
},
"user": {
"id": 534,
"url": "https://api.github.com/users/ericallam",
"type": "User",
"login": "ericallam",
"node_id": "MDQ6VXNlcjUzNA==",
"html_url": "https://github.com/ericallam",
"gists_url": "https://api.github.com/users/ericallam/gists{/gist_id}",
"repos_url": "https://api.github.com/users/ericallam/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/534?v=4",
"events_url": "https://api.github.com/users/ericallam/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/ericallam/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/ericallam/followers",
"following_url": "https://api.github.com/users/ericallam/following{/other_user}",
"organizations_url": "https://api.github.com/users/ericallam/orgs",
"subscriptions_url": "https://api.github.com/users/ericallam/subscriptions",
"received_events_url": "https://api.github.com/users/ericallam/received_events"
},
"draft": false,
"state": "open",
"title": "Example PR",
"_links": {
"html": {
"href": "https://github.com/triggerdotdev/trigger.dev-examples/pull/4"
},
"self": {
"href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4"
},
"issue": {
"href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/4"
},
"commits": {
"href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4/commits"
},
"comments": {
"href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/4/comments"
},
"statuses": {
"href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/efc58e149c06f4a45ebf7a0bf34ac25cdcd34b07"
},
"review_comment": {
"href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/comments{/number}"
},
"review_comments": {
"href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4/comments"
}
},
"labels": [],
"locked": false,
"number": 4,
"node_id": "PR_kwDOIxVdCc5IY83X",
"assignee": null,
"diff_url": "https://github.com/triggerdotdev/trigger.dev-examples/pull/4.diff",
"html_url": "https://github.com/triggerdotdev/trigger.dev-examples/pull/4",
"assignees": [],
"closed_at": null,
"issue_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/4",
"merged_at": null,
"milestone": null,
"patch_url": "https://github.com/triggerdotdev/trigger.dev-examples/pull/4.patch",
"auto_merge": null,
"created_at": "2023-01-24T04:20:51Z",
"updated_at": "2023-01-24T04:24:58Z",
"commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4/commits",
"comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/4/comments",
"statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/efc58e149c06f4a45ebf7a0bf34ac25cdcd34b07",
"requested_teams": [],
"merge_commit_sha": null,
"active_lock_reason": null,
"author_association": "MEMBER",
"review_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/comments{/number}",
"requested_reviewers": [],
"review_comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4/comments"
}
}
```
@@ -1,644 +0,0 @@
---
title: "Pull Request Event"
sidebarTitle: "Pull Requests"
description: "Trigger a workflow whenever an pull_request action is performed in a GitHub repository."
---
## Usage
```ts
import * as github from "@trigger.dev/github";
new Trigger({
id: "demo",
on: github.events.pullRequestEvent({
repo: "triggerdotdev/trigger.dev",
}),
run: async (event, ctx) => {},
}).listen();
```
## Params
<ParamField path="repo" type="string" required={true}>
The full path to the repository, including the organization
</ParamField>
## Event
<ResponseField name="action" type="string">
The pull_request action, which can one of assigned, unassigned,
auto_merge_enabled, auto_merge_disabled, review_requested,
review_request_removed, ready_for_review, labeled, unlabeled, opened, edited,
closed, reopened, synchronize, ready_for_review, locked, unlocked, or
converted_to_draft.
</ResponseField>
<ResponseField name="number" type="number" required={true}>
The pull request number.
</ResponseField>
<ResponseField name="pull_request" type="object" required={true}>
The pull request object.
</ResponseField>
<ResponseField name="repository" type="object" required={true}>
A repository on GitHub.
</ResponseField>
<ResponseField name="sender" type="object" required={true}>
The GitHub user object who performed the action.
</ResponseField>
<ResponseField name="organization" type="object">
The organization object the repository belongs to.
</ResponseField>
## Additional event fields
### review_requested/review_request_removed PRs
<ResponseField name="requested_reviewer" type="object">
The GitHub user object who was requested to review the PR.
</ResponseField>
<ResponseField name="requested_team" type="object">
The GitHub team object who was requested to review the PR.
</ResponseField>
### labeled/unlabeled PRs
<ResponseField name="label" type="object">
The label object.
</ResponseField>
### assigned/unassigned PRs
<ResponseField name="assignee" type="object">
The assignee object.
</ResponseField>
### edited PRs
<ResponseField name="changes" type="object">
<Expandable title="properties">
<ResponseField name="body" type="object">
<Expandable title="properties" defaultOpen={true}>
<ResponseField name="from" type="string">
The previous body text.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="title" type="object">
<Expandable title="properties" defaultOpen={true}>
<ResponseField name="from" type="string">
The previous title text.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="base" type="object">
<Expandable title="properties" defaultOpen={true}>
<ResponseField name="ref" type="object">
Use `ref.from` to get the previous base branch name.
</ResponseField>
<ResponseField name="sha" type="object">
Use `sha.from` to get the previous base branch SHA.
</ResponseField>
</Expandable>
</ResponseField>
</Expandable>
</ResponseField>
## Example Workflows
<CodeGroup>
```typescript Notify Slack on new PR
new Trigger({
id: "new-pr",
name: "Notify Slack on new PR",
on: github.events.pullRequestEvent({
repo: "triggerdotdev/trigger.dev",
}),
run: async (event, ctx) => {
if (event.action === "opened") {
await slack.postMessage("New PR", {
channelName: "github-prs",
text: `New PR: ${event.pull_request.html_url}`,
});
}
},
}).listen();
```
</CodeGroup>
## Example Event payload
```json
{
"action": "opened",
"number": 4,
"sender": {
"id": 534,
"url": "https://api.github.com/users/ericallam",
"type": "User",
"login": "ericallam",
"node_id": "MDQ6VXNlcjUzNA==",
"html_url": "https://github.com/ericallam",
"gists_url": "https://api.github.com/users/ericallam/gists{/gist_id}",
"repos_url": "https://api.github.com/users/ericallam/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/534?v=4",
"events_url": "https://api.github.com/users/ericallam/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/ericallam/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/ericallam/followers",
"following_url": "https://api.github.com/users/ericallam/following{/other_user}",
"organizations_url": "https://api.github.com/users/ericallam/orgs",
"subscriptions_url": "https://api.github.com/users/ericallam/subscriptions",
"received_events_url": "https://api.github.com/users/ericallam/received_events"
},
"repository": {
"id": 588602633,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples",
"fork": false,
"name": "trigger.dev-examples",
"size": 161,
"forks": 0,
"owner": {
"id": 95297378,
"url": "https://api.github.com/users/triggerdotdev",
"type": "Organization",
"login": "triggerdotdev",
"node_id": "O_kgDOBa4fYg",
"html_url": "https://github.com/triggerdotdev",
"gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
"repos_url": "https://api.github.com/users/triggerdotdev/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
"events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/triggerdotdev/followers",
"following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
"organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
"subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
"received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
},
"topics": [],
"git_url": "git://github.com/triggerdotdev/trigger.dev-examples.git",
"license": null,
"node_id": "R_kgDOIxVdCQ",
"private": false,
"ssh_url": "git@github.com:triggerdotdev/trigger.dev-examples.git",
"svn_url": "https://github.com/triggerdotdev/trigger.dev-examples",
"archived": false,
"disabled": false,
"has_wiki": false,
"homepage": null,
"html_url": "https://github.com/triggerdotdev/trigger.dev-examples",
"keys_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/keys{/key_id}",
"language": "TypeScript",
"tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/tags",
"watchers": 1,
"blobs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/blobs{/sha}",
"clone_url": "https://github.com/triggerdotdev/trigger.dev-examples.git",
"forks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/forks",
"full_name": "triggerdotdev/trigger.dev-examples",
"has_pages": false,
"hooks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/hooks",
"pulls_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls{/number}",
"pushed_at": "2023-01-24T04:20:52Z",
"teams_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/teams",
"trees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/trees{/sha}",
"created_at": "2023-01-13T14:26:45Z",
"events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/events",
"has_issues": true,
"issues_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues{/number}",
"labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/labels{/name}",
"merges_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/merges",
"mirror_url": null,
"updated_at": "2023-01-23T14:22:40Z",
"visibility": "public",
"archive_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/{archive_format}{/ref}",
"commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/commits{/sha}",
"compare_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/compare/{base}...{head}",
"description": "Node.js project with multiple example Trigger.dev workflows",
"forks_count": 0,
"is_template": false,
"open_issues": 3,
"branches_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/branches{/branch}",
"comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/comments{/number}",
"contents_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contents/{+path}",
"git_refs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/refs{/sha}",
"git_tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/tags{/sha}",
"has_projects": true,
"releases_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/releases{/id}",
"statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/{sha}",
"allow_forking": true,
"assignees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/assignees{/user}",
"downloads_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/downloads",
"has_downloads": false,
"languages_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/languages",
"default_branch": "main",
"milestones_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/milestones{/number}",
"stargazers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/stargazers",
"watchers_count": 1,
"deployments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/deployments",
"git_commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/commits{/sha}",
"has_discussions": false,
"subscribers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscribers",
"contributors_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contributors",
"issue_events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/events{/number}",
"stargazers_count": 1,
"subscription_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscription",
"collaborators_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/collaborators{/collaborator}",
"issue_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/comments{/number}",
"notifications_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/notifications{?since,all,participating}",
"open_issues_count": 3,
"web_commit_signoff_required": false
},
"organization": {
"id": 95297378,
"url": "https://api.github.com/orgs/triggerdotdev",
"login": "triggerdotdev",
"node_id": "O_kgDOBa4fYg",
"hooks_url": "https://api.github.com/orgs/triggerdotdev/hooks",
"repos_url": "https://api.github.com/orgs/triggerdotdev/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
"events_url": "https://api.github.com/orgs/triggerdotdev/events",
"issues_url": "https://api.github.com/orgs/triggerdotdev/issues",
"description": "",
"members_url": "https://api.github.com/orgs/triggerdotdev/members{/member}",
"public_members_url": "https://api.github.com/orgs/triggerdotdev/public_members{/member}"
},
"pull_request": {
"id": 1214500311,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4",
"base": {
"ref": "main",
"sha": "e7c0680e23fcd3e52d35ddfbb4076112c640d9fa",
"repo": {
"id": 588602633,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples",
"fork": false,
"name": "trigger.dev-examples",
"size": 161,
"forks": 0,
"owner": {
"id": 95297378,
"url": "https://api.github.com/users/triggerdotdev",
"type": "Organization",
"login": "triggerdotdev",
"node_id": "O_kgDOBa4fYg",
"html_url": "https://github.com/triggerdotdev",
"gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
"repos_url": "https://api.github.com/users/triggerdotdev/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
"events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/triggerdotdev/followers",
"following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
"organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
"subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
"received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
},
"topics": [],
"git_url": "git://github.com/triggerdotdev/trigger.dev-examples.git",
"license": null,
"node_id": "R_kgDOIxVdCQ",
"private": false,
"ssh_url": "git@github.com:triggerdotdev/trigger.dev-examples.git",
"svn_url": "https://github.com/triggerdotdev/trigger.dev-examples",
"archived": false,
"disabled": false,
"has_wiki": false,
"homepage": null,
"html_url": "https://github.com/triggerdotdev/trigger.dev-examples",
"keys_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/keys{/key_id}",
"language": "TypeScript",
"tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/tags",
"watchers": 1,
"blobs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/blobs{/sha}",
"clone_url": "https://github.com/triggerdotdev/trigger.dev-examples.git",
"forks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/forks",
"full_name": "triggerdotdev/trigger.dev-examples",
"has_pages": false,
"hooks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/hooks",
"pulls_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls{/number}",
"pushed_at": "2023-01-24T04:20:52Z",
"teams_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/teams",
"trees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/trees{/sha}",
"created_at": "2023-01-13T14:26:45Z",
"events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/events",
"has_issues": true,
"issues_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues{/number}",
"labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/labels{/name}",
"merges_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/merges",
"mirror_url": null,
"updated_at": "2023-01-23T14:22:40Z",
"visibility": "public",
"archive_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/{archive_format}{/ref}",
"commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/commits{/sha}",
"compare_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/compare/{base}...{head}",
"description": "Node.js project with multiple example Trigger.dev workflows",
"forks_count": 0,
"is_template": false,
"open_issues": 3,
"branches_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/branches{/branch}",
"comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/comments{/number}",
"contents_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contents/{+path}",
"git_refs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/refs{/sha}",
"git_tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/tags{/sha}",
"has_projects": true,
"releases_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/releases{/id}",
"statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/{sha}",
"allow_forking": true,
"assignees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/assignees{/user}",
"downloads_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/downloads",
"has_downloads": false,
"languages_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/languages",
"default_branch": "main",
"milestones_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/milestones{/number}",
"stargazers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/stargazers",
"watchers_count": 1,
"deployments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/deployments",
"git_commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/commits{/sha}",
"has_discussions": false,
"subscribers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscribers",
"allow_auto_merge": false,
"contributors_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contributors",
"issue_events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/events{/number}",
"stargazers_count": 1,
"subscription_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscription",
"collaborators_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/collaborators{/collaborator}",
"issue_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/comments{/number}",
"notifications_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/notifications{?since,all,participating}",
"open_issues_count": 3,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_squash_merge": true,
"merge_commit_title": "MERGE_MESSAGE",
"allow_update_branch": false,
"merge_commit_message": "PR_TITLE",
"delete_branch_on_merge": false,
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"squash_merge_commit_message": "COMMIT_MESSAGES",
"web_commit_signoff_required": false,
"use_squash_pr_title_as_default": false
},
"user": {
"id": 95297378,
"url": "https://api.github.com/users/triggerdotdev",
"type": "Organization",
"login": "triggerdotdev",
"node_id": "O_kgDOBa4fYg",
"html_url": "https://github.com/triggerdotdev",
"gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
"repos_url": "https://api.github.com/users/triggerdotdev/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
"events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/triggerdotdev/followers",
"following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
"organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
"subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
"received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
},
"label": "triggerdotdev:main"
},
"body": null,
"head": {
"ref": "resend",
"sha": "efc58e149c06f4a45ebf7a0bf34ac25cdcd34b07",
"repo": {
"id": 588602633,
"url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples",
"fork": false,
"name": "trigger.dev-examples",
"size": 161,
"forks": 0,
"owner": {
"id": 95297378,
"url": "https://api.github.com/users/triggerdotdev",
"type": "Organization",
"login": "triggerdotdev",
"node_id": "O_kgDOBa4fYg",
"html_url": "https://github.com/triggerdotdev",
"gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
"repos_url": "https://api.github.com/users/triggerdotdev/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
"events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/triggerdotdev/followers",
"following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
"organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
"subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
"received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
},
"topics": [],
"git_url": "git://github.com/triggerdotdev/trigger.dev-examples.git",
"license": null,
"node_id": "R_kgDOIxVdCQ",
"private": false,
"ssh_url": "git@github.com:triggerdotdev/trigger.dev-examples.git",
"svn_url": "https://github.com/triggerdotdev/trigger.dev-examples",
"archived": false,
"disabled": false,
"has_wiki": false,
"homepage": null,
"html_url": "https://github.com/triggerdotdev/trigger.dev-examples",
"keys_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/keys{/key_id}",
"language": "TypeScript",
"tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/tags",
"watchers": 1,
"blobs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/blobs{/sha}",
"clone_url": "https://github.com/triggerdotdev/trigger.dev-examples.git",
"forks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/forks",
"full_name": "triggerdotdev/trigger.dev-examples",
"has_pages": false,
"hooks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/hooks",
"pulls_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls{/number}",
"pushed_at": "2023-01-24T04:20:52Z",
"teams_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/teams",
"trees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/trees{/sha}",
"created_at": "2023-01-13T14:26:45Z",
"events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/events",
"has_issues": true,
"issues_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues{/number}",
"labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/labels{/name}",
"merges_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/merges",
"mirror_url": null,
"updated_at": "2023-01-23T14:22:40Z",
"visibility": "public",
"archive_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/{archive_format}{/ref}",
"commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/commits{/sha}",
"compare_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/compare/{base}...{head}",
"description": "Node.js project with multiple example Trigger.dev workflows",
"forks_count": 0,
"is_template": false,
"open_issues": 3,
"branches_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/branches{/branch}",
"comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/comments{/number}",
"contents_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contents/{+path}",
"git_refs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/refs{/sha}",
"git_tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/tags{/sha}",
"has_projects": true,
"releases_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/releases{/id}",
"statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/{sha}",
"allow_forking": true,
"assignees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/assignees{/user}",
"downloads_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/downloads",
"has_downloads": false,
"languages_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/languages",
"default_branch": "main",
"milestones_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/milestones{/number}",
"stargazers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/stargazers",
"watchers_count": 1,
"deployments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/deployments",
"git_commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/commits{/sha}",
"has_discussions": false,
"subscribers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscribers",
"allow_auto_merge": false,
"contributors_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contributors",
"issue_events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/events{/number}",
"stargazers_count": 1,
"subscription_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscription",
"collaborators_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/collaborators{/collaborator}",
"issue_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/comments{/number}",
"notifications_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/notifications{?since,all,participating}",
"open_issues_count": 3,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_squash_merge": true,
"merge_commit_title": "MERGE_MESSAGE",
"allow_update_branch": false,
"merge_commit_message": "PR_TITLE",
"delete_branch_on_merge": false,
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"squash_merge_commit_message": "COMMIT_MESSAGES",
"web_commit_signoff_required": false,
"use_squash_pr_title_as_default": false
},
"user": {
"id": 95297378,
"url": "https://api.github.com/users/triggerdotdev",
"type": "Organization",
"login": "triggerdotdev",
"node_id": "O_kgDOBa4fYg",
"html_url": "https://github.com/triggerdotdev",
"gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
"repos_url": "https://api.github.com/users/triggerdotdev/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
"events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/triggerdotdev/followers",
"following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
"organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
"subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
"received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
},
"label": "triggerdotdev:resend"
},
"user": {
"id": 534,
"url": "https://api.github.com/users/ericallam",
"type": "User",
"login": "ericallam",
"node_id": "MDQ6VXNlcjUzNA==",
"html_url": "https://github.com/ericallam",
"gists_url": "https://api.github.com/users/ericallam/gists{/gist_id}",
"repos_url": "https://api.github.com/users/ericallam/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/534?v=4",
"events_url": "https://api.github.com/users/ericallam/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/ericallam/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/ericallam/followers",
"following_url": "https://api.github.com/users/ericallam/following{/other_user}",
"organizations_url": "https://api.github.com/users/ericallam/orgs",
"subscriptions_url": "https://api.github.com/users/ericallam/subscriptions",
"received_events_url": "https://api.github.com/users/ericallam/received_events"
},
"draft": false,
"state": "open",
"title": "Example PR",
"_links": {
"html": {
"href": "https://github.com/triggerdotdev/trigger.dev-examples/pull/4"
},
"self": {
"href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4"
},
"issue": {
"href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/4"
},
"commits": {
"href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4/commits"
},
"comments": {
"href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/4/comments"
},
"statuses": {
"href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/efc58e149c06f4a45ebf7a0bf34ac25cdcd34b07"
},
"review_comment": {
"href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/comments{/number}"
},
"review_comments": {
"href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4/comments"
}
},
"labels": [],
"locked": false,
"merged": false,
"number": 4,
"commits": 1,
"node_id": "PR_kwDOIxVdCc5IY83X",
"assignee": null,
"comments": 0,
"diff_url": "https://github.com/triggerdotdev/trigger.dev-examples/pull/4.diff",
"html_url": "https://github.com/triggerdotdev/trigger.dev-examples/pull/4",
"additions": 220,
"assignees": [],
"closed_at": null,
"deletions": 0,
"issue_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/4",
"mergeable": null,
"merged_at": null,
"merged_by": null,
"milestone": null,
"patch_url": "https://github.com/triggerdotdev/trigger.dev-examples/pull/4.patch",
"auto_merge": null,
"created_at": "2023-01-24T04:20:51Z",
"rebaseable": null,
"updated_at": "2023-01-24T04:20:51Z",
"commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4/commits",
"comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/4/comments",
"statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/efc58e149c06f4a45ebf7a0bf34ac25cdcd34b07",
"changed_files": 3,
"mergeable_state": "unknown",
"requested_teams": [],
"review_comments": 0,
"merge_commit_sha": null,
"active_lock_reason": null,
"author_association": "MEMBER",
"review_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/comments{/number}",
"requested_reviewers": [],
"review_comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4/comments",
"maintainer_can_modify": false
}
}
```
@@ -1,311 +0,0 @@
---
title: "Push Event"
sidebarTitle: "Pushes"
description: "Trigger a workflow whenever a push action is performed in a GitHub repository."
---
## Usage
```ts
import * as github from "@trigger.dev/github";
new Trigger({
id: "demo",
on: github.events.pushEvent({
repo: "triggerdotdev/trigger.dev",
}),
run: async (event, ctx) => {},
}).listen();
```
## Params
<ParamField path="repo" type="string" required={true}>
The full path to the repository, including the organization
</ParamField>
## Event
<ResponseField name="ref" type="string">
The full git ref that was pushed. Example: refs/heads/master.
</ResponseField>
<ResponseField name="before" type="string">
The SHA of the commit before the push.
</ResponseField>
<ResponseField name="after" type="string">
The SHA of the commit after the push.
</ResponseField>
<ResponseField name="created" type="boolean">
Whether this was a created branch or tag.
</ResponseField>
<ResponseField name="deleted" type="boolean">
Whether this was a deleted branch or tag.
</ResponseField>
<ResponseField name="forced" type="boolean">
Whether this was a forced update or not.
</ResponseField>
<ResponseField name="base_ref" type="string">
If the ref is a branch, this is the branch name that the push was made to.
</ResponseField>
<ResponseField name="compare" type="string">
The HTTP URL to compare the two commits.
</ResponseField>
<ResponseField name="commits" type="array">
An array of commit objects describing the pushed commits.
</ResponseField>
<ResponseField name="head_commit" type="object">
The head commit object.
</ResponseField>
<ResponseField name="repository" type="object" required={true}>
A repository on GitHub.
</ResponseField>
<ResponseField name="sender" type="object" required={true}>
The GitHub user object who performed the action.
</ResponseField>
<ResponseField name="organization" type="object">
The organization object the repository belongs to.
</ResponseField>
## Example Workflows
<CodeGroup>
```typescript Notify Slack on new push
new Trigger({
id: "github-to-slack",
name: "Notify of new push",
on: github.events.pushEvent({
repo: "triggerdotdev/trigger.dev",
}),
run: async (event, ctx) => {
await slack.postMessage("New push to trigger.dev", {
channel: "github-changes",
text: `New push to trigger.dev by ${event.sender.login}: ${event.compare}`,
});
},
}).listen();
```
</CodeGroup>
## Example Event payload
```json
{
"ref": "refs/heads/main",
"after": "4a0834a1daa09cdd1a03038dbc131f807d887de8",
"before": "e7c0680e23fcd3e52d35ddfbb4076112c640d9fa",
"forced": false,
"pusher": {
"name": "ericallam",
"email": "eallam@icloud.com"
},
"sender": {
"id": 534,
"url": "https://api.github.com/users/ericallam",
"type": "User",
"login": "ericallam",
"node_id": "MDQ6VXNlcjUzNA==",
"html_url": "https://github.com/ericallam",
"gists_url": "https://api.github.com/users/ericallam/gists{/gist_id}",
"repos_url": "https://api.github.com/users/ericallam/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/534?v=4",
"events_url": "https://api.github.com/users/ericallam/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/ericallam/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/ericallam/followers",
"following_url": "https://api.github.com/users/ericallam/following{/other_user}",
"organizations_url": "https://api.github.com/users/ericallam/orgs",
"subscriptions_url": "https://api.github.com/users/ericallam/subscriptions",
"received_events_url": "https://api.github.com/users/ericallam/received_events"
},
"commits": [
{
"id": "4a0834a1daa09cdd1a03038dbc131f807d887de8",
"url": "https://github.com/triggerdotdev/trigger.dev-examples/commit/4a0834a1daa09cdd1a03038dbc131f807d887de8",
"added": [],
"author": {
"name": "Eric Allam",
"email": "eallam@icloud.com",
"username": "ericallam"
},
"message": "Add some documentation for how to run (needs work)",
"removed": [],
"tree_id": "5c06942324e80422eea4f4c11ff80d4bd8f9d7a7",
"distinct": true,
"modified": [
"README.md",
"pnpm-lock.yaml",
"src/examples/github-webhook.ts"
],
"committer": {
"name": "Eric Allam",
"email": "eallam@icloud.com",
"username": "ericallam"
},
"timestamp": "2023-01-24T04:43:40Z"
}
],
"compare": "https://github.com/triggerdotdev/trigger.dev-examples/compare/e7c0680e23fc...4a0834a1daa0",
"created": false,
"deleted": false,
"base_ref": null,
"repository": {
"id": 588602633,
"url": "https://github.com/triggerdotdev/trigger.dev-examples",
"fork": false,
"name": "trigger.dev-examples",
"size": 161,
"forks": 0,
"owner": {
"id": 95297378,
"url": "https://api.github.com/users/triggerdotdev",
"name": "triggerdotdev",
"type": "Organization",
"email": "hello@trigger.dev",
"login": "triggerdotdev",
"node_id": "O_kgDOBa4fYg",
"html_url": "https://github.com/triggerdotdev",
"gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
"repos_url": "https://api.github.com/users/triggerdotdev/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
"events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
"site_admin": false,
"gravatar_id": "",
"starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
"followers_url": "https://api.github.com/users/triggerdotdev/followers",
"following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
"organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
"subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
"received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
},
"topics": [],
"git_url": "git://github.com/triggerdotdev/trigger.dev-examples.git",
"license": null,
"node_id": "R_kgDOIxVdCQ",
"private": false,
"ssh_url": "git@github.com:triggerdotdev/trigger.dev-examples.git",
"svn_url": "https://github.com/triggerdotdev/trigger.dev-examples",
"archived": false,
"disabled": false,
"has_wiki": false,
"homepage": null,
"html_url": "https://github.com/triggerdotdev/trigger.dev-examples",
"keys_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/keys{/key_id}",
"language": "TypeScript",
"tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/tags",
"watchers": 1,
"blobs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/blobs{/sha}",
"clone_url": "https://github.com/triggerdotdev/trigger.dev-examples.git",
"forks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/forks",
"full_name": "triggerdotdev/trigger.dev-examples",
"has_pages": false,
"hooks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/hooks",
"pulls_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls{/number}",
"pushed_at": 1674535423,
"teams_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/teams",
"trees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/trees{/sha}",
"created_at": 1673620005,
"events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/events",
"has_issues": true,
"issues_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues{/number}",
"labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/labels{/name}",
"merges_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/merges",
"mirror_url": null,
"stargazers": 1,
"updated_at": "2023-01-23T14:22:40Z",
"visibility": "public",
"archive_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/{archive_format}{/ref}",
"commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/commits{/sha}",
"compare_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/compare/{base}...{head}",
"description": "Node.js project with multiple example Trigger.dev workflows",
"forks_count": 0,
"is_template": false,
"open_issues": 2,
"branches_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/branches{/branch}",
"comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/comments{/number}",
"contents_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contents/{+path}",
"git_refs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/refs{/sha}",
"git_tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/tags{/sha}",
"has_projects": true,
"organization": "triggerdotdev",
"releases_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/releases{/id}",
"statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/{sha}",
"allow_forking": true,
"assignees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/assignees{/user}",
"downloads_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/downloads",
"has_downloads": false,
"languages_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/languages",
"master_branch": "main",
"default_branch": "main",
"milestones_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/milestones{/number}",
"stargazers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/stargazers",
"watchers_count": 1,
"deployments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/deployments",
"git_commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/commits{/sha}",
"has_discussions": false,
"subscribers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscribers",
"contributors_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contributors",
"issue_events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/events{/number}",
"stargazers_count": 1,
"subscription_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscription",
"collaborators_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/collaborators{/collaborator}",
"issue_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/comments{/number}",
"notifications_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/notifications{?since,all,participating}",
"open_issues_count": 2,
"web_commit_signoff_required": false
},
"head_commit": {
"id": "4a0834a1daa09cdd1a03038dbc131f807d887de8",
"url": "https://github.com/triggerdotdev/trigger.dev-examples/commit/4a0834a1daa09cdd1a03038dbc131f807d887de8",
"added": [],
"author": {
"name": "Eric Allam",
"email": "eallam@icloud.com",
"username": "ericallam"
},
"message": "Add some documentation for how to run (needs work)",
"removed": [],
"tree_id": "5c06942324e80422eea4f4c11ff80d4bd8f9d7a7",
"distinct": true,
"modified": [
"README.md",
"pnpm-lock.yaml",
"src/examples/github-webhook.ts"
],
"committer": {
"name": "Eric Allam",
"email": "eallam@icloud.com",
"username": "ericallam"
},
"timestamp": "2023-01-24T04:43:40Z"
},
"organization": {
"id": 95297378,
"url": "https://api.github.com/orgs/triggerdotdev",
"login": "triggerdotdev",
"node_id": "O_kgDOBa4fYg",
"hooks_url": "https://api.github.com/orgs/triggerdotdev/hooks",
"repos_url": "https://api.github.com/orgs/triggerdotdev/repos",
"avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
"events_url": "https://api.github.com/orgs/triggerdotdev/events",
"issues_url": "https://api.github.com/orgs/triggerdotdev/issues",
"description": "",
"members_url": "https://api.github.com/orgs/triggerdotdev/members{/member}",
"public_members_url": "https://api.github.com/orgs/triggerdotdev/public_members{/member}"
}
}
```
@@ -1,128 +0,0 @@
---
title: "Send Email"
sidebarTitle: "Send Email"
description: "Send email using Resend.com"
---
Send email using Resend.com, which supports sending emails using React, HTML, and plain text. Resend.com is currently in private beta but you can request early access [here](https://resend.com/).
<Note>
If you'd like to render emails using React, please see the [React.email
docs](https://react.email/)
</Note>
## Params
<ParamField path="key" type="string" required={true}>
A unique string. Please see the [Keys and Resumability](/guides/resumability)
doc for more info.
</ParamField>
<ParamField path="message" type="object" required={true}>
<Expandable title="properties" defaultOpen={true}>
<ParamField path="text" type="string" required={false}>
The text of the email. If `html` is provided, this will be used as the
plain text version of the email.
</ParamField>
<ParamField path="html" type="string" required={false}>
The HTML of the email. If `text` is provided, this will be used as the
HTML version of the email.
</ParamField>
<ParamField path="react" type="react component" required={false}>
A React component that will be rendered to HTML and used as the email
content. Please see the [React.email docs](https://react.email/) for more info
</ParamField>
<ParamField path="subject" type="string" required={true}>
The subject of the email.
</ParamField>
<ParamField path="from" type="string" required={true}>
The email address of the sender.
</ParamField>
<ParamField path="to" type="string | string[]" required={true}>
One or more email addresses of the recipients.
</ParamField>
<ParamField path="cc" type="string | string[]" required={false}>
One or more email addresses of the CC recipients.
</ParamField>
<ParamField path="bcc" type="string | string[]" required={false}>
One or more email addresses of the BCC recipients.
</ParamField>
<ParamField path="replyTo" type="string | string[]" required={false}>
An optional email address to use as the reply-to address.
</ParamField>
</Expandable>
</ParamField>
## Response
<ResponseField name="id" type="string">
The ID of the email.
</ResponseField>
<ResponseField name="from" type="string">
The email address of the sender.
</ResponseField>
<ResponseField name="to" type="string">
The email address of the recipient.
</ResponseField>
<ResponseField name="created_at" type="string">
The date and time the email was created.
</ResponseField>
## Example Workflows
<CodeGroup>
```typescript criticalIssue.tsx
import * as github from "@trigger.dev/github";
import * as resend from "@trigger.dev/resend";
import { CriticalIssueEmail } from "./emails";
new Trigger({
id: "email-ops",
name: "On Critical Issue",
on: github.events.issueEvent({
repo: "triggerdotdev/trigger.dev",
}),
run: async (event, ctx) => {
if (event.action === "labeled" && event.label.name === "critical") {
await resend.sendEmail("🚨 Alert Ops", {
to: "ops@trigger.dev",
from: "internal@trigger.dev",
subject: `Critical issue: ${event.issue.title}`,
react: (
<CriticalIssueEmail
issue={event.issue}
sender={event.sender}
repo={event.repository}
/>
),
});
}
},
}).listen();
```
</CodeGroup>
## Example Response
```json
{
"id": "1673618429",
"from": "internal@trigger.dev",
"to": "ops@trigger.dev",
"created_at": "2023-01-24T14:38:26Z"
}
```
-11
View File
@@ -1,11 +0,0 @@
---
title: "Shopify"
sidebarTitle: "Shopify"
description: "Support for the Shopify API"
---
## Shopify API integration
Full reference of all functions is coming soon.
Check out some example workflows using the Shopify API [here](/examples/shopify).
-11
View File
@@ -1,11 +0,0 @@
---
title: "Slack"
sidebarTitle: "Slack"
description: "Support for the Slack API"
---
## Slack API integration
Full reference of all functions is coming soon.
Check out some example workflows using the Slack API [here](/examples/slack).
@@ -1,263 +0,0 @@
---
title: "Post Message"
sidebarTitle: "Post Message"
description: "Post a message to a Slack channel"
---
Publish Slack messages to a public or private channel in your Slack Workspace as the Trigger.dev Slack bot. If you need to publish messages to your customer's Slack channels, consider using [Incoming Webhooks](https://api.slack.com/messaging/webhooks) and our [fetch](/functions/fetch) function.
## Params
<ParamField path="key" type="string" required={true}>
A unique string. Please see the [Keys and Resumability](/guides/resumability)
doc for more info.
</ParamField>
<ParamField path="message" type="object" required={true}>
<Expandable title="properties" defaultOpen={true}>
<ParamField path="channelName" type="string" required={false}>
The name of the channel, can optionally include the `#`. E.g. `#team`.
Alternatively you can use the `channelId` param.
</ParamField>
<ParamField path="channelId" type="string" required={false}>
The slack ID of the channel, e.g. `C04GWUTDC4W`. Can be used instead of `channelName`. Use `channelId` if the slack channel name could change.
</ParamField>
<ParamField path="text" type="string" required={true}>
The formatted text of the message to be published, formatted as [mrkdwn](https://api.slack.com/reference/surfaces/formatting#basics).
</ParamField>
<ParamField path="blocks" type="object" required={false}>
You can use blocks to create a rich message with images, buttons, and more.
You can either pass in a JavaScript object or use [JSX Slack](https://github.com/yhatt/jsx-slack/) to create blocks. We highly recommend using JSX Slack as it's much easier to read and write. See the [block example](#blocks-with-interactivity) to see it in action.
For full details on Slack blocks, see the [Slack API docs](https://api.slack.com/reference/block-kit/blocks).
</ParamField>
</Expandable>
</ParamField>
## Response
<ResponseField name="ok" type="boolean" default="true">
Always true; non-ok responses will halt the workflow run and throw an error.
</ResponseField>
<ResponseField name="channel" type="string">
The channel ID of the channel the message was published to.
</ResponseField>
<ResponseField name="ts" type="string">
The "timestamp ID" of the message, which can be used to update or delete the
message.
</ResponseField>
<ResponseField name="message" type="object">
<Expandable title="properties">
<ResponseField name="ts" type="string">
The "timestamp ID" of the message, which can be used to update or delete the message.
</ResponseField>
<ResponseField name="text" type="string">
The text published to the channel.
</ResponseField>
<ResponseField name="user" type="string">
The user ID of the user who published the message.
</ResponseField>
<ResponseField name="bot_id" type="string">
The bot ID of the bot that published the message.
</ResponseField>
</Expandable>
</ResponseField>
## Example Workflows
### Notify Slack on New GitHub Star
<CodeGroup>
```typescript Notify Slack on New GitHub Star
import * as github from "@trigger.dev/github";
import * as slack from "@trigger.dev/slack";
new Trigger({
id: "new-star",
name: "On New Star",
on: github.events.newStarEvent({
repo: "triggerdotdev/trigger.dev",
}),
run: async (event, ctx) => {
await slack.postMessage("⭐️ New Star", {
channelName: "github-stars",
text: `Repo ${event.repository.full_name} got a star from ${event.sender.login}, for a total of ${event.repository.stargazers_count} stars!`,
});
},
}).listen();
```
```json Example response
{
"ok": true,
"ts": "1673618429.084699",
"channel": "C04GWUTDC3W",
"message": {
"ts": "1673618429.084699",
"text": "New domain created: trigger.dev by customer 1st-ever-slack-workflow-yippie",
"type": "message",
"user": "U04JTTQ08SF",
"bot_id": "B04JR3DCB4M"
}
}
```
</CodeGroup>
### Blocks with interactivity
You can add interaction and richer visual elements using Blocks. The easiest way to add them is using `jsx-slack` (which is a separate npm package that you can install).
This example messages your team every minute (!) and asks them how they're doing. There are two buttons and a dropdown menu.
In this examples there are two workflows:
1. Messages your team every minute (!) and asks them how they're doing.
2. Receives the interaction from users. It adds reactions when the buttons are pressed and posts a message when a user selects from the dropdown menu.
Please note, that to use `jsx-slack` you will need to add the `jsxImportSource` pragma to the top of your file. This is because `jsx-slack` is not a React library, but it uses the same syntax as React. Also, you might need to add `"jsx": "react-jsx"` to your `compilerOption` in `tsconfig.json`. The workflow file needs to be a `.jsx` or `.tsx` file (like when you use React).
<CodeGroup>
```typescript workflow.tsx
/** @jsxImportSource jsx-slack */
import * as slack from "@trigger.dev/slack";
import JSXSlack, {
Actions,
Blocks,
Button,
Section,
Select,
Option,
} from "jsx-slack";
import { z } from "zod";
const BLOCK_ID = "issue.action.block";
//1. every minute see how your employees are doing, we don't recommend this frequency 😉
new Trigger({
id: "slack-interactivity",
name: "Testing Slack Interactivity",
on: scheduleEvent({
rateOf: {
minutes: 1,
},
}),
run: async (event, ctx) => {
await slack.postMessage("jsx-test", {
channelName: "test-integrations",
//text appears in Slack notifications on mobile/desktop
text: "How is your progress today?",
//import and use JSXSlack to make creating rich messages much easier
blocks: JSXSlack(
<Blocks>
<Section>How is your progress today?</Section>
<Actions blockId={BLOCK_ID}>
<Button value="blocked" actionId="status-blocked">
I'm blocked
</Button>
<Button
value="help"
actionId="status-help"
url="https://xkcd.com/1349/"
>
Get help
</Button>
<Select actionId="rating" placeholder="Rate it!">
<Option value="5">5 {":star:".repeat(5)}</Option>
<Option value="4">4 {":star:".repeat(4)}</Option>
<Option value="3">3 {":star:".repeat(3)}</Option>
<Option value="2">2 {":star:".repeat(2)}</Option>
<Option value="1">1 {":star:".repeat(1)}</Option>
</Select>
</Actions>
</Blocks>
),
});
},
}).listen();
//2. this workflow listens for Slack interactions filtered by the block id and actions we used above
new Trigger({
id: "slack-block-interaction",
name: "Slack Block Interaction",
on: slack.events.blockActionInteraction({
blockId: BLOCK_ID,
actionId: ["status-blocked", "status-help", "rating"],
}),
run: async (event, ctx) => {
//create promises from all the actions
const promises = event.actions.map((action) => {
switch (action.action_id) {
case "status-blocked": {
//the user is blocked so add a 😢 emoji as a reaction
if (event.message) {
return slack.addReaction("React to message", {
name: "cry",
timestamp: event.message.ts,
channelId: event.channel.id,
});
}
break;
}
case "status-help": {
//the user needs help so add an 🆘 emoji as a reaction
if (event.message) {
return slack.addReaction("React to message", {
name: "sos",
timestamp: event.message.ts,
channelId: event.channel.id,
});
}
break;
}
case "rating": {
if (action.type != "static_select") {
throw new Error("This action should be a select");
}
//post the rating as a message that appears below the original,
//only the user pressing the button will see this message
return slack.postMessageResponse(
"Added a comment to the issue",
event.response_url,
{
text: `You rated your day ${action.selected_option?.value} stars`,
replace_original: false,
}
);
}
default:
return Promise.resolve();
}
});
await Promise.all(promises);
},
}).listen();
```
```json tsconfig.json
{
//other options
"compilerOptions": {
"jsx": "react-jsx"
//other options
}
}
```
</CodeGroup>
@@ -1,7 +0,0 @@
---
title: "Authentication"
sidebarTitle: "Authentication"
description: "Authentication"
---
Coming soon...
-162
View File
@@ -1,162 +0,0 @@
{
"name": "Trigger.dev",
"logo": {
"dark": "/logo/light.png",
"light": "/logo/light.png",
"href": "https://app.trigger.dev"
},
"favicon": "/images/favicon.png",
"colors": {
"primary": "#0fd122",
"light": "#41FF54",
"dark": "#632CCC",
"anchors": {
"from": "#069613",
"to": "#0fd122"
}
},
"backgroundImage": "/images/docs-background.png",
"modeToggle": {
"default": "dark",
"isHidden": true
},
"topbarLinks": [
{
"name": "Login",
"url": "https://app.trigger.dev"
},
{
"name": "Sign up",
"url": "https://app.trigger.dev"
}
],
"topbarCtaButton": {
"type": "github",
"url": "https://github.com/triggerdotdev/trigger.dev"
},
"anchors": [
{
"name": "Community",
"icon": "discord",
"url": "https://discord.gg/nkqV9xBYWy"
},
{
"name": "GitHub",
"icon": "github",
"url": "https://github.com/triggerdotdev/trigger.dev"
}
],
"navigation": [
{
"group": "Getting Started",
"pages": [
"welcome",
"getting-started",
"get-help"
]
},
{
"group": "Examples",
"pages": [
"examples/examples",
"examples/slack",
"examples/github",
"examples/shopify",
"examples/resend"
]
},
{
"group": "Triggers",
"pages": [
"triggers/webhooks",
"triggers/custom-events",
"triggers/scheduled"
]
},
{
"group": "Integrations",
"pages": [
{
"group": "APIs",
"pages": [
{
"group": "Slack",
"pages": [
"integrations/apis/slack/actions/post-message"
]
},
{
"group": "Resend.com",
"pages": [
"integrations/apis/resend/actions/send-email"
]
}
]
},
"integrations/authentication"
]
},
{
"group": "Functions",
"pages": [
"functions/fetch",
"functions/logging",
"functions/delays",
"functions/send-event",
"functions/loops-conditionals-etc"
]
},
{
"group": "Guides",
"pages": [
"guides/resumability",
"guides/event-filters",
"guides/zod",
"guides/event-driven"
]
},
{
"group": "SDK Reference",
"pages": [
"reference/trigger",
"reference/custom-event",
"reference/webhook-event",
"reference/schedule-event",
"reference/send-event"
]
},
{
"group": "API Reference",
"pages": [
"api/events/sendEvent"
]
},
{
"group": "Webhook Catalog",
"pages": [
{
"group": "GitHub",
"pages": [
"integrations/apis/github/events/push",
"integrations/apis/github/events/issues",
"integrations/apis/github/events/issue-comments",
"integrations/apis/github/events/pull-requests",
"integrations/apis/github/events/pull-request-reviews",
"integrations/apis/github/events/pull-request-comments",
"integrations/apis/github/events/new-star"
]
}
]
}
],
"footerSocials": {
"twitter": "https://twitter.com/triggerdotdev",
"github": "https://github.com/triggerdotdev/trigger.dev",
"discord": "https://discord.gg/nkqV9xBYWy"
},
"api": {
"auth": {
"method": "bearer"
}
}
}
-133
View File
@@ -1,133 +0,0 @@
openapi: 3.0.3
info:
title: Trigger.dev API
version: v0.2.3
description: Please see https://docs.trigger.dev for more details.
contact:
name: Eric
email: eric@trigger.dev
url: https://trigger.dev
termsOfService: https://trigger.dev/terms
servers:
- url: https://app.trigger.dev/api/v1
description: Trigger.dev
tags:
- name: "events"
description: "Send and manage custom events"
externalDocs:
description: "Trigger.dev Docs"
url: "https://docs.trigger.dev"
security:
- apiKey: []
paths:
/events:
post:
summary: Send Custom Event
description: Send a custom event to run your customEvent Triggers
operationId: "sendEvent"
tags:
- events
externalDocs:
description: "API method documentation"
url: "https://docs.trigger.dev/api/events/sendEvent"
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/customEvent"
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/customEvent"
"401":
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/error"
"405":
description: Method not allowed
content:
application/json:
schema:
$ref: "#/components/schemas/error"
"422":
description: Unprocessable Entity
content:
application/json:
schema:
$ref: "#/components/schemas/error"
components:
schemas:
error:
type: object
properties:
error:
type: string
customEvent:
type: object
required:
- id
- event
properties:
id:
type: string
description: "A unique event identifier, can be used to deduplicate events. Use a sufficiently unique ID generator, such as UUIDv4"
event:
type: object
additionalProperties: false
required:
- name
- payload
properties:
name:
type: string
example: user.created
description: "The name of the event. This is the same value you'd use in your customEvent trigger code to listen for events"
payload:
type: object
additionalProperties: true
description: "The JSON payload of the event"
context:
type: object
additionalProperties: true
description: "An optional context object for the event. This can be used to pass additional information about the event, such as the user who triggered it. Note that this is not currently exposed to the workflow (coming soon)."
timestamp:
type: string
format: "date-time"
example: "2022-01-01T12:30:00Z"
description: "An optional timestamp for the event. If not provided, one will be generated. Must be in ISO 8601 format (e.g. new Date().toISOString())"
delay:
type: object
description: "An optional delay object for the event. This can be used to delay the event by a certain amount of time. "
oneOf:
- type: object
properties:
seconds:
type: integer
- type: object
properties:
minutes:
type: integer
- type: object
properties:
hours:
type: integer
- type: object
properties:
days:
type: integer
- type: object
properties:
until:
type: string
format: date-time
securitySchemes:
apiKey:
type: apiKey
in: header
name: Authorization
-12
View File
@@ -1,12 +0,0 @@
{
"name": "docs",
"version": "1.0.0",
"description": "Trigger.dev documentation",
"private": true,
"scripts": {
"dev": "mintlify dev --port 3050"
},
"devDependencies": {
"mintlify": "^2.0.16"
}
}
-40
View File
@@ -1,40 +0,0 @@
---
title: "customEvent Trigger"
sidebarTitle: "customEvent"
description: "Trigger a workflow when a custom event is received."
---
## Usage
```ts
import { customEvent, Trigger } from "@trigger.dev/sdk";
new Trigger({
id: "user-created-notify-slack",
name: "User Created - Notify Slack",
on: customEvent({
name: "user.created",
schema: z.object({ id: z.string(), admin: z.boolean() }),
filter: {
admin: [false],
},
}),
run: async (event, ctx) => {},
}).listen();
```
## Options
<ParamField path="name" type="string" required={true}>
The name of the custom event to listen for.
</ParamField>
<ParamField path="filter" type="object" required={false}>
An event filter to apply to the custom event payload. See the [event filter
documentation](/guides/event-filters) for more information.
</ParamField>
<ParamField path="schema" type="Zod Schema" required={true}>
A Zod schema to validate the webhook event payload against. See our [Zod
guide](/guides/zod) for more information.
</ParamField>
-68
View File
@@ -1,68 +0,0 @@
---
title: "scheduleEvent Trigger"
sidebarTitle: "scheduleEvent"
description: "Run a workflow on a recurring schedule."
---
## Usage
```ts
import { scheduleEvent } from "@trigger.dev/sdk";
new Trigger({
id: "usage",
name: "usage",
on: scheduleEvent({ rateof: { minutes: 10 } }),
run: async (event, ctx) => {},
}).listen();
```
## Options
You must use one of the following options, but not both:
<ParamField path="rateOf" type="object" required={false}>
The rate of the schedule. This can be a number of minutes, hours,
or days. For example, `{ rateOf: { minutes: 10 } }` will run
every 10 minutes.
</ParamField>
<ParamField path="cron" type="string" required={false}>
A cron expression to run the workflow on. For example, `0 0 * * *` will run
the workflow every hour at the top of the hour. See
[crontab.guru](https://crontab.guru/) for more information.
</ParamField>
## Event Payload
<ResponseField name="scheduledTime" type="Date" required={true}>
The time the event was scheduled to run.
</ResponseField>
<ResponseField name="lastRunAt" type="Date" required={false}>
The time the event last run. This will be `undefined` if the event has never run. Use this parameter to run window queries:
```ts
import { scheduleEvent, Trigger } from "@trigger.dev/sdk";
new Trigger({
id: "usage",
name: "usage",
on: scheduleEvent({ rateof: { minutes: 10 } }),
run: async (event, ctx) => {
const { lastRunAt, scheduledTime } = event;
const query = `SELECT * FROM users WHERE created_at < ${scheduledTime}`;
if (lastRunAt) {
query += ` AND created_at > ${lastRunAt}`;
}
const latestUsers = await db.query(query);
// ...
},
}).listen();
```
</ResponseField>
-97
View File
@@ -1,97 +0,0 @@
---
title: "sendEvent"
sidebarTitle: "sendEvent"
description: "Send a custom event to Trigger, from inside or outside of a workflow."
---
## Usage
```ts
import { Trigger, customEvent } from "@trigger.dev/sdk";
new Trigger({
id: "usage",
name: "usage",
on: customEvent({
name: "user.created",
schema: z.any(),
}),
run: async (event, ctx) => {
await ctx.sendEvent("Sending context user.created event", {
name: "user.created",
payload: {
id: "1234_abc",
},
});
},
}).listen();
```
You can also use `sendEvent` by importing it from `@trigger.dev/sdk`:
```ts
import { sendEvent } from "@trigger.dev/sdk";
await sendEvent("Sending context user.created event", {
name: "user.created",
payload: {
id: "1234_abc",
},
});
```
<Note>
If calling `sendEvent` from outside of a workflow run, it will make an HTTP
API request to app.trigger.dev to send the event. Make sure you set the
`TRIGGER_API_KEY` environment variable if you will be using it this way.
</Note>
## Parameters
<ParamField path="key" type="string" required={true}>
A unique key for the event in the context of a workflow run. Please see the
[Keys and Resumability](/guides/resumability) guide for more info.
</ParamField>
<ParamField path="event" type="object" required={true}>
<Expandable title="properties" defaultOpen={true}>
<ParamField path="id" type="string" required={false}>
An optional unique ID for the event. If not provided, one will be
generated automatically (using `clid`). Set this field to perform event
deduplication.
</ParamField>
<ParamField path="name" type="string" required={true}>
The name of the event. This is the name you set when creating the
`customEvent` trigger.
</ParamField>
<ParamField path="payload" type="json object" required={true}>
The payload of the event.
</ParamField>
<ParamField path="timestamp" type="ISO8601 string" required={false}>
An optional timestamp for the event. If not provided, one will be generated. Must be in ISO 8601 format (e.g. `new Date().toISOString()`)
</ParamField>
<ParamField path="context" type="json object" required={false}>
An optional context object for the event. This can be used to pass
additional information about the event, such as the user who triggered
it. Note that this is not currently exposed to the workflow (coming soon).
</ParamField>
<ParamField path="delay" type="object" required={false}>
An optional delay object for the event. This can be used to delay the
event by a certain amount of time. Use one of the following options:
- `{ seconds: number }` - delay the event by a certain number of seconds
- `{ minutes: number }` - delay the event by a certain number of minutes
- `{ hours: number }` - delay the event by a certain number of hours
- `{ days: number }` - delay the event by a certain number of days
- `{ until: Date }` - delay the event until a certain date
See the [Delaying Event Delivery](/functions/send-event#delaying-event-delivery) docs for more info.
</ParamField>
</Expandable>
</ParamField>
-159
View File
@@ -1,159 +0,0 @@
---
title: "Trigger"
sidebarTitle: "Trigger"
description: "The Trigger class let's you define a workflow that is triggered by a specific event."
---
## Constructor
### Usage
```ts
import { customEvent, Trigger } from "@trigger.dev/sdk";
const trigger = new Trigger({
id: "user-created-notify-slack",
name: "User Created - Notify Slack",
on: customEvent({
name: "user.created",
schema: z.object({ id: z.string(), admin: z.boolean() }),
filter: {
admin: [false],
},
}),
run: async (event, ctx) => {},
});
```
### Options
<ParamField path="id" type="string" required={true}>
An identifier for this trigger. Must unique across your Trigger.dev
organization.
</ParamField>
<ParamField path="name" type="string" required={true}>
A display name for this trigger.
</ParamField>
<ParamField path="apiKey" type="string" required={false}>
Your Trigger.dev API key. If not provided, the API key will be read from the
`TRIGGER_API_KEY` environment variable.
</ParamField>
<ParamField path="endpoint" type="string" required={false}>
The URL of the Trigger.dev WebSocket server. If not provided, the endpoint
will point to the production server.
</ParamField>
<ParamField path="logLevel" type="string" required={false}>
The log level for the Trigger. Defaults to `info`
</ParamField>
<ParamField path="triggerTTL" type="number" required={false}>
The TTL for the trigger in seconds. If the delay between the event timestamp
and the current time is greater than the TTL, the trigger will not be
executed. Defaults to `3600` seconds, or 1 hour.
</ParamField>
<ParamField path="run" type="function" required={true}>
The function that will be executed when the trigger is fired. The function
will be passed the event data and a context object.
</ParamField>
### Context Object
<ParamField path="id" type="string">
The identifier of the individual run of this trigger.
</ParamField>
<ParamField path="environment" type="string">
Either `development` or `live`, depending on the API Key used.
</ParamField>
<ParamField path="apiKey" type="string">
The API Key used to authenticate this trigger.
</ParamField>
<ParamField path="organizationId" type="string">
The identifier of the organization that owns this trigger.
</ParamField>
<ParamField path="logger" type="object">
The logger object for this trigger. See the [Logging](/functions/logging) page
for more info.
</ParamField>
<ParamField path="isTest" type="boolean">
Whether or not this trigger is being run as a test.
</ParamField>
<ParamField path="sendEvent" type="function">
A function that can be used to send an event to trigger.dev. See the [Sending
Events](/functions/send-event) page for more info.
</ParamField>
<ParamField path="waitFor" type="function">
A function that can be used to wait for a specific amount of time before
continuing. See the [Delays](/functions/delays) page for more info.
</ParamField>
<ParamField path="waitUntil" type="function">
A function that can be used to wait for a specific date/time before
continuing. See the [Delays](/functions/delays) page for more info.
</ParamField>
<ParamField path="fetch" type="function">
A function that can be used to make HTTP requests. See the
[fetch](/functions/fetch) page for more info.
</ParamField>
## listen
The `listen` function will register the Trigger with Trigger.dev and start listening for events.
### Usage
```ts
const trigger = new Trigger({
id: "user-created-notify-slack",
name: "User Created - Notify Slack",
on: customEvent({
name: "user.created",
schema: z.object({ id: z.string(), admin: z.boolean() }),
filter: {
admin: [false],
},
}),
run: async (event, ctx) => {},
});
trigger.listen();
```
You can split the creation of the trigger and the listening for events by calling `trigger.listen()` at a later time.
<CodeGroup>
```ts triggers.ts
export const userCreatedNotifySlack = new Trigger({
id: "user-created-notify-slack",
name: "User Created - Notify Slack",
on: customEvent({
name: "user.created",
schema: z.object({ id: z.string(), admin: z.boolean() }),
filter: {
admin: [false],
},
}),
run: async (event, ctx) => {},
});
```
```ts index.ts
import { userCreatedNotifySlack } from "./triggers";
userCreatedNotifySlack.listen();
```
</CodeGroup>
-65
View File
@@ -1,65 +0,0 @@
---
title: "webhookEvent Trigger"
sidebarTitle: "webhookEvent"
description: "Trigger a workflow when a webhook event is received"
---
## Usage
```ts
import { webhookEvent, Trigger } from "@trigger.dev/sdk";
new Trigger({
id: "caldotcom-to-slack",
name: "Cal.com To Slack",
on: webhookEvent({
service: "cal.com",
eventName: "BOOKING_CREATED",
filter: {
triggerEvent: ["BOOKING_CREATED"],
},
schema: z.any(),
verifyPayload: {
enabled: true,
header: "X-Cal-Signature-256",
},
}),
run: async (event, ctx) => {},
}).listen();
```
## Options
<ParamField path="service" type="string" required={true}>
The name of the service that will be sending the webhook event.
</ParamField>
<ParamField path="name" type="string" required={true}>
The name of the event that will be sent by the service.
</ParamField>
<ParamField path="filter" type="object" required={false}>
An event filter to apply to the webhook event. See the [event filter
documentation](/guides/event-filters) for more information.
</ParamField>
<ParamField path="schema" type="Zod Schema" required={true}>
A Zod schema to validate the webhook event payload against. See our [Zod
guide](/guides/zod) for more information.
</ParamField>
<ParamField path="verifyPayload" type="object" required={false}>
Verify the payload of the webhook event. Currently only supports sha256 HMAC
signatures.
<Expandable title="properties">
<ParamField path="enabled" type="boolean" required={false}>
Whether to verify the payload of the webhook event. Defaults to `false`.
</ParamField>
<ParamField path="header" type="string" required={false}>
The name of the header that contains the signature to verify the payload
against. e.g. `X-Webhook-Signature`.
</ParamField>
</Expandable>
</ParamField>
-38
View File
@@ -1,38 +0,0 @@
---
title: "Resources"
description: "Learn more about how to build amazing documentation"
---
<CardGroup>
<Card title="Development" icon="rectangle-terminal" href="https://mintlify.com/docs/development">
Run on your computer to see changes locally
</Card>
<Card title="Global Settings" icon="sliders" href="https://mintlify.com/docs/settings/global">
Customizing the theme, branding, and other global configurations
</Card>
<Card title="Page Titles and Metadata" icon="heading" href="https://mintlify.com/docs/settings/page">
Setting the title and metadata for navigation and SEO
</Card>
<Card title="Writing Content" icon="pen-nib" href="https://mintlify.com/docs/components/overview">
Introduction on how to add and edit content
</Card>
</CardGroup>
## Advanced Topics
Learn more about how to take your documentation to the next level
<CardGroup>
<Card title="Custom Domains" icon="browser" href="https://mintlify.com/docs/settings/custom-domain/subdomain">
Get the documentation hosted at your custom domain
</Card>
<Card title="Advanced Components" icon="paintbrush-pencil" href="https://mintlify.com/docs/components/advanced/accordion">
Advanced components built for specific communication mediums
</Card>
<Card title="API Components" icon="square-code" href="https://mintlify.com/docs/api-components/overview">
Add an API playground into your documentation
</Card>
<Card title="Analytics" icon="chart-mixed" href="https://mintlify.com/docs/analytics/supported-integrations">
Learn how users are interacting with your documentation
</Card>
</CardGroup>
-117
View File
@@ -1,117 +0,0 @@
---
title: "Custom event triggers"
sidebarTitle: "Custom events"
description: "Custom event triggers allow you to run workflows from your own code (or your other workflows)"
---
[Send an event](/functions/send-event) and any workflows that subscribe to that custom event will get triggered.
## Name and Schemas
### Name
Custom event triggers have a `name`. They will only get triggered when a custom event with that name are sent.
### Schema
Custom event triggers take a [Zod](https://github.com/colinhacks/zod) schema. This is used to validate the data that is sent with the event. If the data does not match the schema, the workflow will not run.
It also means that inside your run function the event param will be typed correctly. We use [Zod](https://github.com/colinhacks/zod#installation) for our schemas it's a fantastic library that allows you to define schemas in a very simple way.
You can always start out by using `z.any()` as your schema, and then later on you can add more strict validation. See our [Zod guide](/guides/zod) for more information.
## Filters
You can also add filters to your custom event triggers. This allows you to filter out events that you don't want to run your workflow for.
```ts
new Trigger({
id: "new-user-slack",
name: "New user slack message",
on: customEvent({
name: "user.created",
schema: z.object({
name: z.string(),
email: z.string(),
paidPlan: z.boolean(),
}),
filter: {
//only run the workflow if the user is paying
paidPlan: [true],
},
}),
//this function is run when the custom event is received
run: async (event, ctx) => {
//send a message to the #new-users Slack channel with user details
const response = await slack.postMessage("send-to-slack", {
channel: "new-users",
text: `New user: ${event.name} (${event.email}) signed up. ${
event.paidPlan ? "They are paying" : "They are on the free plan"
}.`,
});
return response.message;
},
}).listen();
```
Please see the [Event filters guide](/guides/event-filters) for more information.
## Example
```ts
import { Trigger, customEvent } from "@trigger.dev/sdk";
import * as slack from "@trigger.dev/slack";
import { z } from "zod";
//this workflow will run when a "user.created" event is sent
new Trigger({
id: "new-user-slack",
name: "New user slack message",
apiKey: "<your_api_key>",
//this is the custom event subscription
on: customEvent({
name: "user.created",
schema: z.object({
name: z.string(),
email: z.string(),
paidPlan: z.boolean(),
}),
}),
//this function is run when the custom event is received
run: async (event, ctx) => {
//send a message to the #new-users Slack channel with user details
const response = await slack.postMessage("send-to-slack", {
channel: "new-users",
text: `New user: ${event.name} (${event.email}) signed up. ${
event.paidPlan ? "They are paying" : "They are on the free plan"
}.`,
});
return response.message;
},
}).listen();
```
That workflow will never run, unless an event is sent from your code somewhere it can be sent from a completely different server.
## Sending an event
There is a [full guide on sending events](/functions/send-event) but here is a quick example:
```ts
import { sendEvent } from "@trigger.dev/sdk";
//send an event with the name "user.created"
await sendEvent("fire-user-created-event", {
name: "user.created",
payload: { name: "John Doe", email: "john@doe.com", paidPlan: true },
});
```
If you are calling this from inside a workflow, ensure that the first parameter is unique inside your workflow.
<Note>
The same event can trigger many different workflows, just subscribe to the
same event name to achieve this.
</Note>
-109
View File
@@ -1,109 +0,0 @@
---
title: "Scheduled triggers"
sidebarTitle: "Scheduled"
description: "Run a workflow on a recurring schedule"
---
See the [reference](/reference/schedule-event) for more details.
## Examples
### Every 5 minutes
This job will run every 5 minutes, starting 5 minutes after this code is first run on your server (that includes running locally).
```ts
import { Trigger, scheduleEvent } from "@trigger.dev/sdk";
new Trigger({
id: "scheduled-workflow",
name: "Scheduled Workflow",
apiKey: "<your_api_key>",
on: scheduleEvent({ rateOf: { minutes: 5 } }),
run: async (event, ctx) => {
await ctx.logger.info("Received the scheduled event", {
event,
wallTime: new Date(),
});
return { foo: "bar" };
},
}).listen();
```
### Using CRON syntax
This job will run at 2:30pm every Monday. You can get help with [CRON syntax](https://crontab.guru/).
```ts
import { Trigger, scheduleEvent } from "@trigger.dev/sdk";
new Trigger({
id: "cron-scheduled-workflow",
name: "Cron Scheduled Workflow",
apiKey: "<your_api_key>",
on: scheduleEvent({ cron: "30 14 * * 1" }),
run: async (event, ctx) => {
await ctx.logger.info("Received the cron scheduled event", {
event,
wallTime: new Date(),
});
return { foo: "bar" };
},
}).listen();
```
## Preventing late runs
To prevent a scheduled trigger from running late, you can set a `triggerTTL` option when creating the `Trigger`, like so:
```ts
new Trigger({
id: "scheduled-workflow",
name: "Scheduled Workflow",
apiKey: "<your_api_key>",
on: scheduleEvent({ rateOf: { minutes: 5 } }),
triggerTTL: 300,
run: async (event, ctx) => {
await ctx.logger.info("Received the scheduled event", {
event,
wallTime: new Date(),
});
return { foo: "bar" };
},
}).listen();
```
This will prevent the trigger from running if it is running more than `300` seconds behind, which can happen if the server running your `Trigger` code goes down or is otherwise unavailable.
This is especially useful for scheduled triggers that run on a very short interval, like every minute, so you don't get a backlog of runs that all run at once when the server comes back online.
<Tip>
Set your `triggerTTL` to the same time (or double) as the rateOf the trigger.
</Tip>
## Live-only scheduled events
In many cases, you only want scheduled events to run when your code is running on a server, and not locally during development. To do this, you can check the `context.environment` property together with the `context.isTest` property, like so:
```ts
new Trigger({
id: "check-scheduler",
name: "Check Scheduler",
on: scheduleEvent({ rateOf: { minutes: 10 } }),
logLevel: "info",
triggerTTL: 600,
run: async (event, context) => {
// Return if in development and not running a test
if (context.environment === "development" && !context.isTest) {
return;
}
// do stuff here
},
}).listen();
```
By checking `context.isTest`, you can manually test scheduled events locally before pushing to live.
-117
View File
@@ -1,117 +0,0 @@
---
title: "Webhooks"
sidebarTitle: "Webhooks"
description: "Webhooks allow you to subscribe to events from APIs you use."
---
Webhooks are a crucial part of API development, allowing for real-time reactions to various events across different systems, such as when a Stripe Payment is made, or when a GitHub issue is created.
## Advantages of using Trigger.dev for webhooks
Webhooks can be difficult to work with, especially when developing locally. We make them far easier to use with our [integrations](/integrations/apis).
- You don't need to register/unregister for webhooks, we do it for you
- They work locally during development without needing to use tunnels (e.g. Ngrok)
- We receive the webhook, then keep trying to send it to you until you receive it. If your server goes down, no problem.
## Usage
There are two ways to use webhooks with Trigger.dev:
1. Use one of our built-in integrations, such as [GitHub](/integrations/github). We'll take care of registering the webhook for you.
2. Use our [webhookEvent](/reference/webhook-event) function to create a webhook subscription and you'll register the webhook yourself.
## Webhook integrations
We currently have built in integrations for the following webhooks:
- [GitHub](/integrations/apis/github)
Please [join our discord community](https://discord.gg/kA47vcd8P6) and let us know which integration you'd like us to add.
We've documented all the support webhooks for each integration in the sidebar, for example the GitHub [newStarEvent](/integrations/apis/github/events/new-star) webhook:
```ts
import * as github from "@trigger.dev/github";
new Trigger({
id: "demo",
on: github.events.newStarEvent({
repo: "triggerdotdev/trigger.dev",
}),
run: async (event, ctx) => {},
}).listen();
```
Once you've connected to Trigger.dev, and authorized your GitHub account, we'll go ahead and register the webhook in the repository you've specified and start triggering your `Trigger.run` function when new stars roll in.
## Manual Webhooks
If we haven't built out the integration you need, you can use our `webhookEvent` function to create a webhook subscription. You'll need to register the webhook yourself, but we'll take care of the rest. Here's an example for triggering events when a new booking happens in [Cal.com](https://cal.com):
```ts
new Trigger({
id: "caldotcom-to-slack",
name: "Cal.com To Slack",
on: webhookEvent({
service: "cal.com",
eventName: "BOOKING_CREATED",
filter: {
triggerEvent: ["BOOKING_CREATED"],
},
schema: z.any(),
verifyPayload: {
enabled: true,
header: "X-Cal-Signature-256",
},
}),
run: async (event, ctx) => {},
}).listen();
```
For more information on the various options for `webhookEvent`, see the [webhookEvent reference](/reference/webhook-event).
Once you connect to Trigger.dev, we will display the URL and (optionally) the secret you need to register with the webhook provider on the workflow overview page:
![Webhook URL](/images/webhook-url.png)
Copy the URL and secret, and register the webhook with the provider (in this case, Cal.com). Once you've done that, we'll start triggering your `Trigger.run` function when the webhook fires.
## Examples
<CodeGroup>
```ts Github
import { Trigger } from "@trigger.dev/sdk";
import * as github from "@trigger.dev/github";
import * as slack from "@trigger.dev/slack";
new Trigger({
id: "escalate-critical-issues",
name: "Posts to Slack when GitHub Issue created or modified",
apiKey: "<my_api_key>",
//this is the webhook subscription
on: github.events.issueEvent({
repo: "my-github-org/my-github-repo",
}),
//this function is run when the webhook fires
run: async (event, ctx) => {
if (event.action === "labeled") {
await ctx.logger.info(
`The issue ${event.issue.title} was labeled ${event.label.name}`
);
if (event.label.name === "critical") {
await slack.postMessage("send-to-slack", {
channel: "serious-issues",
text: `Critical issue: ${event.issue.title} was labeled ${event.label.name}`,
});
}
}
return event;
},
}).listen();
```
</CodeGroup>
-55
View File
@@ -1,55 +0,0 @@
---
title: "Trigger.dev Documentation"
sidebarTitle: "Welcome"
description: ""
---
Trigger.dev is an open source platform that enables developers to create event-driven background tasks directly in their code. Build, test and run workflows locally and subscribe to webhooks, schedule jobs, run background jobs and add long delays easily and reliably.
Workflows live in your codebase so you can use your existing types, functions, version control and IDE. They are triggered by us but run on your server so your private data is never exposed.
Go to [trigger.dev](https://app.trigger.dev) and sign up or login to your account.
_A workflow in action:_
![Test a run](/images/workflow-demo.gif)
<iframe
width="100%"
height="440"
src="https://www.youtube.com/embed/aFlwD0frvnQ?rel=0"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowfullscreen
></iframe>
&nbsp;
<CardGroup>
<Card title="Getting Started" icon="circle-play" href="/getting-started">
Quickly get up and running with Trigger.dev by following our quick start
guide.
</Card>
<Card
title="Examples"
icon="arrow-right-arrow-left"
href="/examples/examples"
>
One of the quickest ways to learn how Trigger.dev works is to view some
example workflows.
</Card>
<Card
title="Join Our Discord"
icon="discord"
href="https://discord.gg/kA47vcd8P6"
>
The #help-and-questions channel is a great place to get help with any
questions about Trigger.dev.
</Card>
<Card
title="Schedule a call"
icon="phone"
href="https://cal.com/team/triggerdotdev/support"
>
Arrange a call with one of the founders. We can help answer questions, build
API integrations for you and help you with workflows.
</Card>
</CardGroup>
+16
View File
@@ -0,0 +1,16 @@
{
"sourceType": "unambiguous",
"presets": [
[
"@babel/preset-env",
{
"targets": {
"chrome": 100
}
}
],
"@babel/preset-typescript",
"@babel/preset-react"
],
"plugins": []
}
-24
View File
@@ -1,24 +0,0 @@
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/postgres
SESSION_SECRET=<random string>
MAGIC_LINK_SECRET=<random string>
GITHUB_CLIENT_ID=<random string>
GITHUB_SECRET=<random string>
FROM_EMAIL=<your email address>
REPLY_TO_EMAIL=<your email address>
RESEND_API_KEY=<RESEND_API_KEY>
MERGENT_KEY=<Mergent key>
LOGIN_ORIGIN=http://localhost:3000
APP_ORIGIN=http://localhost:3000
# Production Pulsar
# PULSAR_SERVICE_URL="pulsar+ssl://<cluster>.<orgId>.snio.cloud:6651"
# PULSAR_CLIENT_ID="<client id>"
# PULSAR_CLIENT_SECRET="<client secret>"
# PULSAR_ISSUER_URL="https://auth.streamnative.cloud/"
# PULSAR_AUDIENCE="urn:sn:pulsar:<orgId>:<instanceName>"
# PULSAR_TENANT="triggerdotdev"
# PULSAR_WORKFLOWS_NAMESPACE="workflows"
# PULSAR_QUEUES_NAMESPACE="queues"
# Dev Pulsar
PULSAR_SERVICE_URL="pulsar://localhost:6650"
+11 -5
View File
@@ -1,7 +1,13 @@
{
"extends": [
"@remix-run/eslint-config",
"@remix-run/eslint-config/node",
"prettier"
]
"extends": ["@remix-run/eslint-config", "@remix-run/eslint-config/node", "prettier"],
"rules": {
"@typescript-eslint/strict-boolean-expressions": [
"error",
{
"allowNullableBoolean": true,
"allowNullableString": true,
"allowNullableNumber": true
}
]
}
}
+11 -1
View File
@@ -7,4 +7,14 @@ node_modules
/cypress/screenshots
/cypress/videos
/app/styles/tailwind.css
/app/styles/tailwind.css
# Storybook build outputs
build-storybook.log
.out
.storybook-out
storybook-static
/prisma/seed.js
+49
View File
@@ -0,0 +1,49 @@
import type { StorybookConfig } from "@storybook/react-webpack5";
import path from "path";
const root = path.resolve(__dirname, "../app");
const config: StorybookConfig = {
webpackFinal: async (config) => {
return {
...config,
resolve: {
...config.resolve,
alias: {
...(config.resolve?.alias ?? {}),
"~": root,
},
extensions: [
...(config.resolve?.extensions ?? []),
...[".ts", ".tsx", ".js", ".jsx", ".mdx"],
],
},
};
},
stories: ["../app/**/stories/*.mdx", "../app/**/stories/*.stories.@(js|jsx|ts|tsx)"],
addons: [
"@storybook/addon-links",
"@storybook/addon-essentials",
"@storybook/addon-interactions",
"storybook-addon-variants",
"storybook-addon-designs",
"@storybook/addon-docs",
{
name: "@storybook/addon-styling",
options: {
// Check out https://github.com/storybookjs/addon-styling/blob/main/docs/api.md
// For more details on this addon's options.
postCss: true,
},
},
],
framework: {
name: "@storybook/react-webpack5",
options: {},
},
docs: {
autodocs: "tag",
},
staticDirs: [path.resolve("public")],
};
export default config;
+47
View File
@@ -0,0 +1,47 @@
import type { Preview } from "@storybook/react";
import "../app/tailwind.css";
import { unstable_createRemixStub } from "@remix-run/testing";
import React from "react";
import { LocaleContextProvider } from "../app/components/primitives/LocaleProvider";
import { OperatingSystemContextProvider } from "../app/components/primitives/OperatingSystemProvider";
const preview: Preview = {
parameters: {
actions: { argTypesRegex: "^on[A-Z].*" },
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/,
},
},
backgrounds: {
default: "App background",
values: [
{
name: "App background",
value: "#0B1018",
},
],
},
},
decorators: [
(Story) => {
const RemixStub = unstable_createRemixStub([
{
path: "/*",
element: <Story />,
},
]);
return (
<OperatingSystemContextProvider platform="mac">
<LocaleContextProvider locales={window.navigator.languages as string[]}>
<RemixStub initialEntries={["/"]} />
</LocaleContextProvider>
</OperatingSystemContextProvider>
);
},
],
};
export default preview;
-73
View File
@@ -1,73 +0,0 @@
FROM node:16-bullseye AS pruner
RUN apt-get update && apt-get install openssl -y
WORKDIR /app
RUN npm install turbo -g
COPY . .
RUN turbo prune --scope=webapp --docker
RUN find . -name "node_modules" -type d -prune -exec rm -rf '{}' +
# Base strategy to have layer caching
FROM node:16-bullseye AS base
RUN apt-get update && apt-get install openssl ca-certificates g++ make wget python3 -y
ENV PULSAR_CPP_CLIENT_VERSION=2.10.3
RUN wget https://archive.apache.org/dist/pulsar/pulsar-${PULSAR_CPP_CLIENT_VERSION}/DEB/apache-pulsar-client.deb -q
RUN wget https://archive.apache.org/dist/pulsar/pulsar-${PULSAR_CPP_CLIENT_VERSION}/DEB/apache-pulsar-client-dev.deb -q
RUN dpkg -i ./apache-pulsar-client*.deb
WORKDIR /app
COPY .gitignore .gitignore
COPY --from=pruner /app/out/json/ .
COPY --from=pruner /app/out/pnpm-lock.yaml ./pnpm-lock.yaml
COPY --from=pruner /app/out/pnpm-workspace.yaml ./pnpm-workspace.yaml
FROM base AS production-deps
WORKDIR /app
RUN npm install turbo -g
RUN corepack enable
ENV NODE_ENV production
RUN npm config set python /usr/bin/python3
COPY --from=pruner /app/out/full/apps/webapp/prisma/schema.prisma /app/apps/webapp/prisma/schema.prisma
RUN pnpm install --prod --frozen-lockfile
RUN pnpx prisma generate --schema /app/apps/webapp/prisma/schema.prisma
FROM base AS builder
WORKDIR /app
RUN npm install turbo -g
COPY turbo.json turbo.json
RUN corepack enable
COPY --from=pruner /app/out/full/ .
RUN npm config set python /usr/bin/python3
ENV NODE_ENV development
RUN pnpm install --ignore-scripts --frozen-lockfile
ENV NODE_ENV production
RUN pnpm run generate
RUN pnpm run build --filter=webapp...
RUN pnpx prisma migrate deploy --schema apps/webapp/prisma/schema.prisma
# Runner
FROM node:16-bullseye AS runner
RUN apt-get update && apt-get install openssl ca-certificates g++ make wget python3 -y
ENV PULSAR_CPP_CLIENT_VERSION=2.10.3
RUN wget https://archive.apache.org/dist/pulsar/pulsar-${PULSAR_CPP_CLIENT_VERSION}/DEB/apache-pulsar-client.deb -q
RUN wget https://archive.apache.org/dist/pulsar/pulsar-${PULSAR_CPP_CLIENT_VERSION}/DEB/apache-pulsar-client-dev.deb -q
RUN dpkg -i ./apache-pulsar-client*.deb
RUN npm install turbo -g
WORKDIR /app
RUN corepack enable
ENV NODE_ENV production
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 remixjs
RUN chown -R remixjs:nodejs /app
USER remixjs
COPY --from=pruner --chown=remixjs:nodejs /app/out/full/ .
COPY --from=production-deps --chown=remixjs:nodejs /app .
COPY --from=builder --chown=remixjs:nodejs /app/apps/webapp/app/styles/tailwind.css ./apps/webapp/app/styles/tailwind.css
COPY --from=builder --chown=remixjs:nodejs /app/apps/webapp/build/server.js ./apps/webapp/build/server.js
COPY --from=builder --chown=remixjs:nodejs /app/apps/webapp/build ./apps/webapp/build
COPY --from=builder --chown=remixjs:nodejs /app/apps/webapp/public ./apps/webapp/public
COPY --from=builder --chown=remixjs:nodejs /app/apps/webapp/prisma/schema.prisma ./apps/webapp/build/schema.prisma
COPY --from=builder --chown=remixjs:nodejs /app/apps/webapp/prisma/migrations ./apps/webapp/build/migrations
COPY --from=builder --chown=remixjs:nodejs /app/apps/webapp/node_modules/.prisma/client/libquery_engine-debian-openssl-1.1.x.so.node ./apps/webapp/build/libquery_engine-debian-openssl-1.1.x.so.node
# release_command = "pnpx prisma migrate deploy --schema apps/webapp/prisma/schema.prisma"
ENTRYPOINT ["pnpm", "--filter", "webapp", "run", "start"]
+15
View File
@@ -0,0 +1,15 @@
import { ApiEventLog } from "@trigger.dev/core";
import { EventRecord } from "@trigger.dev/database";
export function eventRecordToApiJson(eventRecord: EventRecord): ApiEventLog {
return {
id: eventRecord.eventId,
name: eventRecord.name,
payload: eventRecord.payload as any,
context: eventRecord.context as any,
timestamp: eventRecord.timestamp,
deliverAt: eventRecord.deliverAt,
deliveredAt: eventRecord.deliveredAt,
cancelledAt: eventRecord.cancelledAt,
};
}
@@ -0,0 +1,12 @@
export function DynamicTriggerIcon({ className }: { className?: string }) {
return (
<svg viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg" className={className}>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M2.0151 4C2.01629 2.89543 2.91269 2.00097 4.01726 2.00216L16.0172 2.0151C17.1218 2.01629 18.0163 2.91269 18.0151 4.01726L18.0021 16.0172C18.001 17.1218 17.1046 18.0163 16 18.0151L4 18.0021C2.89543 18.001 2.00097 17.1046 2.00216 16L2.0151 4ZM9.26429 4.75782C9.26473 4.34361 9.60088 4.00818 10.0151 4.00863C10.4293 4.00907 10.7647 4.34522 10.7643 4.75944L10.7606 8.1988L13.1952 5.76942C13.4884 5.47684 13.9633 5.47735 14.2559 5.77056C14.5484 6.06377 14.5479 6.53864 14.2547 6.83122L11.8201 9.26058L15.2594 9.26429C15.6736 9.26473 16.0091 9.60088 16.0086 10.0151C16.0082 10.4293 15.672 10.7647 15.2578 10.7643L11.8185 10.7606L14.2478 13.1952C14.5404 13.4884 14.5399 13.9633 14.2467 14.2558C13.9535 14.5484 13.4786 14.5479 13.186 14.2547L10.7567 11.8201L10.753 15.2594C10.7525 15.6736 10.4164 16.0091 10.0022 16.0086C9.58794 16.0082 9.25252 15.672 9.25296 15.2578L9.25667 11.8185L6.82209 14.2478C6.52888 14.5404 6.05401 14.5399 5.76143 14.2467C5.46885 13.9535 5.46937 13.4786 5.76258 13.186L8.19718 10.7567L4.75782 10.753C4.34361 10.7525 4.00818 10.4164 4.00863 10.0022C4.00907 9.58794 4.34522 9.25252 4.75944 9.25296L8.19877 9.25667L5.76942 6.82207C5.47684 6.52886 5.47735 6.05399 5.77056 5.76141C6.06377 5.46883 6.53864 5.46935 6.83122 5.76255L9.26058 8.19716L9.26429 4.75782Z"
fill="currentColor"
/>
</svg>
);
}
@@ -0,0 +1,13 @@
export function ErrorIcon({ className }: { className?: string }) {
return (
<svg className={className} viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="10" cy="10" r="7" fill="white" />
<path
fillRule="evenodd"
clipRule="evenodd"
d="M18 10C18 14.4183 14.4183 18 10 18C5.58172 18 2 14.4183 2 10C2 5.58172 5.58172 2 10 2C14.4183 2 18 5.58172 18 10ZM10 5C10.4142 5 10.75 5.33579 10.75 5.75V10.25C10.75 10.6642 10.4142 11 10 11C9.58579 11 9.25 10.6642 9.25 10.25V5.75C9.25 5.33579 9.58579 5 10 5ZM10 15C10.5523 15 11 14.5523 11 14C11 13.4477 10.5523 13 10 13C9.44771 13 9 13.4477 9 14C9 14.5523 9.44771 15 10 15Z"
fill="currentColor"
/>
</svg>
);
}
@@ -0,0 +1,161 @@
export function OneTreeIcon({ className }: { className?: string }) {
return (
<svg
className={className}
width="20"
height="20"
viewBox="0 0 20 20"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<g clipPath="url(#clip0_4914_58397)">
<g filter="url(#filter0_d_4914_58397)">
<path
d="M9 14H11C11 14 11 15 11 17C11 19 11.5 20 11.5 20H8.5C8.5 20 9 19 9 17C9 15 9 14 9 14Z"
fill="url(#paint0_linear_4914_58397)"
/>
</g>
<g filter="url(#filter1_d_4914_58397)">
<circle cx="5.5" cy="8.5" r="3.5" fill="currentColor" />
</g>
<g filter="url(#filter2_d_4914_58397)">
<circle cx="8" cy="12" r="3" fill="currentColor" />
</g>
<circle cx="13" cy="11" r="4" fill="currentColor" />
<circle cx="15.5" cy="7.5" r="2.5" fill="currentColor" />
<g filter="url(#filter3_d_4914_58397)">
<circle cx="9" cy="6" r="4" fill="currentColor" />
</g>
<circle cx="12.5" cy="5.5" r="3.5" fill="currentColor" />
</g>
<defs>
<filter
id="filter0_d_4914_58397"
x="4.5"
y="14"
width="11"
height="14"
filterUnits="userSpaceOnUse"
colorInterpolationFilters="sRGB"
>
<feFlood floodOpacity="0" result="BackgroundImageFix" />
<feColorMatrix
in="SourceAlpha"
type="matrix"
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
result="hardAlpha"
/>
<feOffset dy="4" />
<feGaussianBlur stdDeviation="2" />
<feComposite in2="hardAlpha" operator="out" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0" />
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_4914_58397" />
<feBlend
mode="normal"
in="SourceGraphic"
in2="effect1_dropShadow_4914_58397"
result="shape"
/>
</filter>
<filter
id="filter1_d_4914_58397"
x="-2"
y="5"
width="15"
height="15"
filterUnits="userSpaceOnUse"
colorInterpolationFilters="sRGB"
>
<feFlood floodOpacity="0" result="BackgroundImageFix" />
<feColorMatrix
in="SourceAlpha"
type="matrix"
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
result="hardAlpha"
/>
<feOffset dy="4" />
<feGaussianBlur stdDeviation="2" />
<feComposite in2="hardAlpha" operator="out" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0" />
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_4914_58397" />
<feBlend
mode="normal"
in="SourceGraphic"
in2="effect1_dropShadow_4914_58397"
result="shape"
/>
</filter>
<filter
id="filter2_d_4914_58397"
x="1"
y="9"
width="14"
height="14"
filterUnits="userSpaceOnUse"
colorInterpolationFilters="sRGB"
>
<feFlood floodOpacity="0" result="BackgroundImageFix" />
<feColorMatrix
in="SourceAlpha"
type="matrix"
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
result="hardAlpha"
/>
<feOffset dy="4" />
<feGaussianBlur stdDeviation="2" />
<feComposite in2="hardAlpha" operator="out" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0" />
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_4914_58397" />
<feBlend
mode="normal"
in="SourceGraphic"
in2="effect1_dropShadow_4914_58397"
result="shape"
/>
</filter>
<filter
id="filter3_d_4914_58397"
x="1"
y="-2"
width="16"
height="16"
filterUnits="userSpaceOnUse"
colorInterpolationFilters="sRGB"
>
<feFlood floodOpacity="0" result="BackgroundImageFix" />
<feColorMatrix
in="SourceAlpha"
type="matrix"
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
result="hardAlpha"
/>
<feOffset />
<feGaussianBlur stdDeviation="2" />
<feComposite in2="hardAlpha" operator="out" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0" />
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_4914_58397" />
<feBlend
mode="normal"
in="SourceGraphic"
in2="effect1_dropShadow_4914_58397"
result="shape"
/>
</filter>
<linearGradient
id="paint0_linear_4914_58397"
x1="10"
y1="14"
x2="10"
y2="20"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#402309" />
<stop offset="1" stopColor="#713F12" />
</linearGradient>
<clipPath id="clip0_4914_58397">
<rect width="20" height="20" fill="white" />
</clipPath>
</defs>
</svg>
);
}
@@ -0,0 +1,137 @@
export function SaplingIcon({ className }: { className?: string }) {
return (
<svg
className={className}
width="20"
height="20"
viewBox="0 0 20 20"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<g clipPath="url(#clip0_4906_23816)">
<path
d="M4.39538 17.7403C7.25332 16.3563 13.2867 16.4291 15.5096 17.7403C16.6666 18.4227 17.2938 19.0069 17.6294 19.4103C17.8542 19.6806 17.651 20 17.2994 20H2.34215C2.151 20 1.9749 19.8835 2.01519 19.6967C2.09465 19.3281 2.53308 18.6421 4.39538 17.7403Z"
fill="url(#paint0_linear_4906_23816)"
/>
<g filter="url(#filter0_d_4906_23816)">
<path
d="M9.37762 9.80872C7.43627 7.16364 3.49903 8.13783 2.43836 8.66818C2.26159 9.02174 3.32907 8.80396 4.08851 10.8279C4.84794 12.8519 7.63503 13.1864 8.74087 12.0806C9.27121 11.5502 9.69141 10.2363 9.37762 9.80872Z"
fill="currentColor"
/>
</g>
<g filter="url(#filter1_d_4906_23816)">
<path
d="M9.03577 9.94522L9.99862 9.80223C9.99862 9.80223 10.0387 16.2908 10.9485 16.8179C11.8582 17.345 8.47933 17.1309 8.92618 16.8179C9.37303 16.505 9.03577 9.94522 9.03577 9.94522Z"
fill="currentColor"
/>
</g>
<g filter="url(#filter2_d_4906_23816)">
<path
d="M9.36235 10.1127C9.36235 5.78131 13.3229 4.41473 15.9395 4.00389C16.1892 3.96468 16.3818 4.22916 16.2961 4.46698C16.0763 5.07608 15.7914 6.09975 15.6717 7.46762C15.5019 9.40897 14.8971 10.3478 14.3613 10.962C13.3664 12.1026 9.36235 12.2341 9.36235 10.1127Z"
fill="currentColor"
/>
</g>
</g>
<defs>
<filter
id="filter0_d_4906_23816"
x="-1.58107"
y="8.04684"
width="15.0664"
height="12.6571"
filterUnits="userSpaceOnUse"
colorInterpolationFilters="sRGB"
>
<feFlood floodOpacity="0" result="BackgroundImageFix" />
<feColorMatrix
in="SourceAlpha"
type="matrix"
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
result="hardAlpha"
/>
<feOffset dy="4" />
<feGaussianBlur stdDeviation="2" />
<feComposite in2="hardAlpha" operator="out" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0" />
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_4906_23816" />
<feBlend
mode="normal"
in="SourceGraphic"
in2="effect1_dropShadow_4906_23816"
result="shape"
/>
</filter>
<filter
id="filter1_d_4906_23816"
x="4.88525"
y="9.80223"
width="10.2195"
height="15.3357"
filterUnits="userSpaceOnUse"
colorInterpolationFilters="sRGB"
>
<feFlood floodOpacity="0" result="BackgroundImageFix" />
<feColorMatrix
in="SourceAlpha"
type="matrix"
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
result="hardAlpha"
/>
<feOffset dy="4" />
<feGaussianBlur stdDeviation="2" />
<feComposite in2="hardAlpha" operator="out" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0" />
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_4906_23816" />
<feBlend
mode="normal"
in="SourceGraphic"
in2="effect1_dropShadow_4906_23816"
result="shape"
/>
</filter>
<filter
id="filter2_d_4906_23816"
x="5.36235"
y="4"
width="14.9544"
height="15.7756"
filterUnits="userSpaceOnUse"
colorInterpolationFilters="sRGB"
>
<feFlood floodOpacity="0" result="BackgroundImageFix" />
<feColorMatrix
in="SourceAlpha"
type="matrix"
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
result="hardAlpha"
/>
<feOffset dy="4" />
<feGaussianBlur stdDeviation="2" />
<feComposite in2="hardAlpha" operator="out" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0" />
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_4906_23816" />
<feBlend
mode="normal"
in="SourceGraphic"
in2="effect1_dropShadow_4906_23816"
result="shape"
/>
</filter>
<linearGradient
id="paint0_linear_4906_23816"
x1="10"
y1="16.7294"
x2="10"
y2="20"
gradientUnits="userSpaceOnUse"
>
<stop offset="0.291667" stopColor="#402309" />
<stop offset="1" stopColor="#713F12" />
</linearGradient>
<clipPath id="clip0_4906_23816">
<rect width="20" height="20" fill="white" />
</clipPath>
</defs>
</svg>
);
}
@@ -0,0 +1,6 @@
import { CalendarDaysIcon } from "@heroicons/react/24/solid";
import { cn } from "~/utils/cn";
export function ScheduleIcon({ className }: { className?: string }) {
return <CalendarDaysIcon className={cn("text-sky-500", className)} />;
}
@@ -0,0 +1,44 @@
export function TwoTreesIcon({ className }: { className?: string }) {
return (
<svg
className={className}
width="20"
height="20"
viewBox="0 0 20 20"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<g clipPath="url(#clip0_4906_58417)">
<path
d="M10 20V17"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M17.7239 16.3L14.8274 13H15.1171C15.3061 12.9973 15.4901 12.9371 15.6464 12.8271C15.8027 12.717 15.9243 12.5619 15.9963 12.3808C16.0683 12.1998 16.0873 12.001 16.0512 11.8088C16.015 11.6167 15.9252 11.4398 15.7929 11.3L12.8965 8H13.0896C13.2868 8.01843 13.4847 7.97361 13.6565 7.87162C13.8282 7.76963 13.9656 7.6154 14.0499 7.42984C14.1342 7.24428 14.1614 7.03636 14.1278 6.83425C14.0942 6.63215 14.0014 6.44564 13.862 6.3L10 2L7.29699 5.0096C8.25755 5.0792 9.16726 5.48607 9.85673 6.16512C10.5124 6.81087 10.9224 7.65741 11.023 8.56163C11.6295 8.91846 12.136 9.42887 12.4856 10.0473C12.9492 10.8671 13.1066 11.8229 12.9286 12.7472C12.7507 13.6714 12.2496 14.5014 11.5168 15.0945C10.8041 15.6712 9.91568 15.9888 8.99914 15.999V18H17.0481C17.237 17.9973 17.4211 17.9371 17.5774 17.8271C17.7337 17.717 17.8553 17.5618 17.9273 17.3808C17.9992 17.1998 18.0183 17.001 17.9822 16.8088C17.946 16.6167 17.8562 16.4398 17.7239 16.3ZM7.99914 18V15.9991H6.00231V18H7.99914ZM4.97036 15.9991H5.00231L5.00231 18H2.95193C2.76296 17.9973 2.57892 17.9371 2.42263 17.8271C2.26635 17.717 2.14468 17.5618 2.07272 17.3808C2.00076 17.1998 1.98168 17.001 2.01783 16.8088C2.05398 16.6167 2.14377 16.4398 2.27609 16.3L3.01417 15.4591C3.59927 15.795 4.26325 15.9821 4.94587 15.9988C4.95403 15.999 4.9622 15.9991 4.97036 15.9991ZM3.69171 14.6872C4.08702 14.8804 4.52307 14.9881 4.97036 14.9991H8.93032C9.64375 15.0045 10.3365 14.7632 10.8877 14.3171C11.4389 13.871 11.8137 13.2485 11.9466 12.5581C12.0796 11.8678 11.9623 11.1534 11.6151 10.5395C11.268 9.9256 10.7131 9.45119 10.0472 9.19898V8.99898C10.0472 8.20331 9.7263 7.44023 9.15504 6.87761C8.58378 6.31499 7.80899 5.99891 7.00111 5.99891C6.77881 5.99891 6.55901 6.02285 6.34528 6.06926L6.13804 6.3C5.99864 6.44564 5.90584 6.63215 5.87222 6.83425C5.8386 7.03636 5.86579 7.24428 5.9501 7.42984C6.03441 7.6154 6.17176 7.76963 6.34354 7.87162C6.51533 7.97361 6.71323 8.01843 6.91043 8H7.10353L4.20706 11.3C4.07475 11.4398 3.98496 11.6167 3.94881 11.8088C3.91266 12.001 3.93174 12.1998 4.0037 12.3808C4.07566 12.5619 4.19732 12.717 4.35361 12.8271C4.5099 12.9371 4.69394 12.9973 4.88291 13H5.17255L3.69171 14.6872Z"
fill="currentColor"
/>
<path
d="M7 20L7 13.9814"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
/>
<path
d="M10.0472 9V9.2C10.7131 9.4522 11.268 9.92661 11.6151 10.5405C11.9623 11.1544 12.0796 11.8687 11.9466 12.5591C11.8137 13.2494 11.4389 13.8719 10.8877 14.318C10.3365 14.7641 9.64374 15.0054 8.93032 15H4.97036C4.26546 14.9827 3.58847 14.7251 3.05487 14.2712C2.52126 13.8172 2.1641 13.195 2.0443 12.5106C1.92449 11.8263 2.04946 11.1222 2.3979 10.5185C2.74634 9.91474 3.29666 9.44875 3.95499 9.2V9C3.95499 8.20435 4.27592 7.44129 4.84718 6.87868C5.41843 6.31607 6.19323 6 7.00111 6C7.80899 6 8.58378 6.31607 9.15504 6.87868C9.7263 7.44129 10.0472 8.20435 10.0472 9Z"
fill="currentColor"
/>
</g>
<defs>
<clipPath id="clip0_4906_58417">
<rect width="20" height="20" fill="white" />
</clipPath>
</defs>
</svg>
);
}
@@ -0,0 +1,12 @@
export function WebhookIcon({ className }: { className?: string }) {
return (
<svg className={className} viewBox="0 0 190 180" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
fill="currentColor"
fillRule="evenodd"
clipRule="evenodd"
d="M97.1775 62.8673C96.7903 62.892 96.4025 62.9043 96.0145 62.9042C86.0767 62.9042 78.008 54.8167 78.008 44.8556C78.008 34.8946 86.0767 26.807 96.0145 26.807C105.952 26.807 114.021 34.8946 114.021 44.8556C114.027 48.9969 112.605 53.0129 109.996 56.2245L129.9 92.8984C134.805 91.1113 139.984 90.1972 145.203 90.1972C169.928 90.1972 190 110.317 190 135.099C190 159.881 169.928 180 145.203 180C136.454 179.997 127.896 177.435 120.577 172.628C119.792 172.117 119.128 171.439 118.632 170.642C118.136 169.846 117.82 168.95 117.706 168.019C117.593 167.087 117.684 166.141 117.974 165.249C118.263 164.356 118.745 163.538 119.384 162.851C119.397 162.837 119.411 162.822 119.437 162.819C120.511 161.665 121.955 160.925 123.518 160.727C125.08 160.53 126.662 160.888 127.989 161.738C133.116 165.067 139.095 166.838 145.203 166.838C162.68 166.838 176.868 152.616 176.868 135.099C176.868 117.581 162.68 103.36 145.203 103.36C139.151 103.36 130.562 106.013 125.398 109.298C125.132 109.498 124.826 109.639 124.502 109.71C124.177 109.781 123.841 109.781 123.516 109.711C123.191 109.64 122.885 109.5 122.619 109.301C122.352 109.101 122.132 108.846 121.973 108.554L97.1775 62.8673ZM88.9103 140.885C88.0018 146.036 86.2022 150.988 83.5926 155.517C71.2305 176.98 43.8113 184.345 22.3993 171.954C0.987294 159.563 -6.35938 132.079 6.0019 110.616C10.3798 103.023 16.8727 96.8744 24.6848 92.9248C25.5195 92.4994 26.4369 92.2623 27.3727 92.2302C28.3085 92.1981 29.24 92.3718 30.1017 92.739C30.9639 93.1059 31.7354 93.6575 32.3621 94.3552C32.9888 95.0529 33.4555 95.8797 33.7294 96.7775C33.7346 96.7969 33.7399 96.8153 33.7294 96.8391C34.1899 98.3489 34.1078 99.9727 33.4973 101.428C32.8868 102.883 31.7866 104.078 30.3881 104.804C24.9482 107.59 20.4286 111.894 17.3741 117.197C8.63613 132.367 13.829 151.795 28.9642 160.554C44.0994 169.313 63.4824 164.107 72.2204 148.936C75.2464 143.683 77.2482 134.9 76.9926 128.775C76.9519 128.444 76.9829 128.108 77.0835 127.79C77.1841 127.473 77.3519 127.18 77.5754 126.934C77.799 126.687 78.073 126.491 78.3788 126.36C78.6846 126.229 79.015 126.166 79.3475 126.175L131.219 127.494C131.39 127.148 131.573 126.805 131.769 126.466C136.737 117.84 147.759 114.879 156.366 119.859C164.974 124.841 167.926 135.888 162.957 144.515C157.988 153.141 146.966 156.101 138.359 151.12C134.778 149.055 132.019 145.813 130.548 141.943L88.9103 140.885ZM67.1689 79.2862C63.1721 75.9215 59.7926 71.8828 57.1827 67.3521C44.8205 45.8901 52.1672 18.4061 73.5792 6.01594C94.9912 -6.3742 122.411 0.98963 134.773 22.4507C139.144 30.0472 141.21 38.757 140.717 47.5127C140.667 48.4501 140.414 49.3652 139.973 50.1937C139.533 51.0222 138.917 51.7442 138.169 52.3088C137.421 52.8734 136.559 53.2671 135.643 53.4622C134.727 53.6572 133.779 53.649 132.866 53.438C132.847 53.4336 132.828 53.4283 132.812 53.4072C131.278 53.0521 129.916 52.169 128.964 50.9115C128.012 49.654 127.53 48.1018 127.602 46.5249C127.915 40.4094 126.456 34.3338 123.4 29.031C114.662 13.8614 95.2802 8.65544 80.145 17.4139C65.0107 26.1731 59.8161 45.6005 68.5549 60.771C71.5809 66.0244 78.1687 72.1539 83.5882 74.9942C83.8943 75.1245 84.1687 75.3194 84.3928 75.5657C84.617 75.8119 84.7855 76.1036 84.8871 76.421C84.9886 76.7384 85.0207 77.074 84.9812 77.405C84.9417 77.7359 84.8315 78.0544 84.6581 78.3389L57.5815 122.706C57.7958 123.027 58.0005 123.357 58.1963 123.696C63.1644 132.324 60.2113 143.371 51.6042 148.352C42.9979 153.332 31.9762 150.372 27.0072 141.745C22.0383 133.119 24.9914 122.071 33.5976 117.091C37.173 115.015 41.3538 114.241 45.4328 114.9L67.1689 79.2862Z"
/>
</svg>
);
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

+192 -64
View File
@@ -1,64 +1,192 @@
<svg width="751" height="131" viewBox="0 0 751 131" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M195.022 16.2694H135.445H137.799V32.5133H157.858V102.411H174.84V32.5133H195.022V16.2694Z" fill="url(#paint0_linear_228_1439)"/>
<path d="M211.265 51.4645V40.8814H195.391V102.411H211.265V73C211.265 60.0787 221.726 56.3868 229.971 57.3713V39.6508C222.218 39.6508 214.465 43.0964 211.265 51.4645Z" fill="url(#paint1_linear_228_1439)"/>
<path d="M246.954 33.4978C252.368 33.4978 256.799 29.0676 256.799 23.7761C256.799 18.4845 252.368 13.9313 246.954 13.9313C241.662 13.9313 237.232 18.4845 237.232 23.7761C237.232 29.0676 241.662 33.4978 246.954 33.4978ZM239.078 102.411H254.953V40.8814H239.078V102.411Z" fill="url(#paint2_linear_228_1439)"/>
<path d="M315.253 40.8814V48.5111C310.946 42.7273 304.301 39.1586 295.563 39.1586C278.089 39.1586 264.922 53.4335 264.922 70.6618C264.922 88.0133 278.089 102.165 295.563 102.165C304.301 102.165 310.946 98.5964 315.253 92.8126V99.4579C315.253 109.18 309.1 114.594 299.132 114.594C289.657 114.594 285.596 110.779 283.011 105.98L269.475 113.733C274.889 123.701 285.473 128.746 298.64 128.746C314.884 128.746 330.759 119.64 330.759 99.4579V40.8814H315.253ZM298.025 87.5211C288.057 87.5211 280.796 80.5066 280.796 70.6618C280.796 60.9401 288.057 53.9257 298.025 53.9257C307.992 53.9257 315.253 60.9401 315.253 70.6618C315.253 80.5066 307.992 87.5211 298.025 87.5211Z" fill="url(#paint3_linear_228_1439)"/>
<path d="M390.936 40.8814V48.5111C386.629 42.7273 379.983 39.1586 371.246 39.1586C353.772 39.1586 340.604 53.4335 340.604 70.6618C340.604 88.0133 353.772 102.165 371.246 102.165C379.983 102.165 386.629 98.5964 390.936 92.8126V99.4579C390.936 109.18 384.783 114.594 374.815 114.594C365.339 114.594 361.278 110.779 358.694 105.98L345.157 113.733C350.572 123.701 361.155 128.746 374.323 128.746C390.566 128.746 406.441 119.64 406.441 99.4579V40.8814H390.936ZM373.707 87.5211C363.74 87.5211 356.479 80.5066 356.479 70.6618C356.479 60.9401 363.74 53.9257 373.707 53.9257C383.675 53.9257 390.936 60.9401 390.936 70.6618C390.936 80.5066 383.675 87.5211 373.707 87.5211Z" fill="url(#paint4_linear_228_1439)"/>
<path d="M432.9 78.1685H479.294C479.663 76.0765 479.909 73.9845 479.909 71.6464C479.909 53.5566 466.988 39.1586 448.775 39.1586C429.454 39.1586 416.287 53.3105 416.287 71.6464C416.287 89.9822 429.331 104.134 450.005 104.134C461.819 104.134 471.049 99.3348 476.832 90.9667L464.034 83.5832C461.327 87.1519 456.404 89.7361 450.251 89.7361C441.883 89.7361 435.115 86.2904 432.9 78.1685ZM432.654 65.8625C434.5 57.9867 440.284 53.4335 448.775 53.4335C455.42 53.4335 462.065 57.0022 464.034 65.8625H432.654Z" fill="url(#paint5_linear_228_1439)"/>
<path d="M505.199 51.4645V40.8814H489.324V102.411H505.199V73C505.199 60.0787 515.659 56.3868 523.904 57.3713V39.6508C516.151 39.6508 508.398 43.0964 505.199 51.4645Z" fill="url(#paint6_linear_228_1439)"/>
<path d="M529.934 104.011C535.717 104.011 540.394 99.3347 540.394 93.5509C540.394 87.7671 535.717 83.0909 529.934 83.0909C524.15 83.0909 519.474 87.7671 519.474 93.5509C519.474 99.3347 524.15 104.011 529.934 104.011Z" fill="url(#paint7_linear_228_1439)"/>
<path d="M596.632 16.2694V48.1419C592.202 42.4811 585.68 39.1586 576.696 39.1586C560.206 39.1586 546.67 53.3104 546.67 71.6463C546.67 89.9822 560.206 104.134 576.696 104.134C585.68 104.134 592.202 100.811 596.632 95.1507V102.411H612.507V16.2694L596.632 16.2694ZM579.65 88.9977C569.805 88.9977 562.544 81.9833 562.544 71.6463C562.544 61.3093 569.805 54.2948 579.65 54.2948C589.371 54.2948 596.632 61.3093 596.632 71.6463C596.632 81.9833 589.371 88.9977 579.65 88.9977Z" fill="url(#paint8_linear_228_1439)"/>
<path d="M637.98 78.1685H684.374C684.743 76.0765 684.989 73.9845 684.989 71.6464C684.989 53.5566 672.068 39.1586 653.855 39.1586C634.534 39.1586 621.367 53.3105 621.367 71.6464C621.367 89.9823 634.411 104.134 655.085 104.134C666.899 104.134 676.129 99.3348 681.912 90.9667L669.114 83.5832C666.407 87.1519 661.484 89.7362 655.331 89.7362C646.963 89.7362 640.195 86.2905 637.98 78.1685ZM637.734 65.8625C639.58 57.9867 645.364 53.4335 653.855 53.4335C660.5 53.4335 667.145 57.0022 669.114 65.8625H637.734Z" fill="url(#paint9_linear_228_1439)"/>
<path d="M732.859 40.8814L717.846 83.9523L702.956 40.8814H685.481L708.863 102.411H726.952L750.334 40.8814H732.859Z" fill="url(#paint10_linear_228_1439)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M35.664 42.3995L59.4114 1.26865L118.264 103.206H0.558823L24.3062 62.0734L41.1046 71.7723L34.157 83.8065H84.6658L59.4114 40.0656L52.4638 52.0998L35.664 42.3995Z" fill="url(#paint11_linear_228_1439)"/>
<defs>
<linearGradient id="paint0_linear_228_1439" x1="329.675" y1="150.096" x2="329.675" y2="13.9313" gradientUnits="userSpaceOnUse">
<stop stop-color="#41FF54"/>
<stop offset="1" stop-color="#E7FF52"/>
</linearGradient>
<linearGradient id="paint1_linear_228_1439" x1="329.675" y1="150.096" x2="329.675" y2="13.9313" gradientUnits="userSpaceOnUse">
<stop stop-color="#41FF54"/>
<stop offset="1" stop-color="#E7FF52"/>
</linearGradient>
<linearGradient id="paint2_linear_228_1439" x1="329.675" y1="150.096" x2="329.675" y2="13.9313" gradientUnits="userSpaceOnUse">
<stop stop-color="#41FF54"/>
<stop offset="1" stop-color="#E7FF52"/>
</linearGradient>
<linearGradient id="paint3_linear_228_1439" x1="329.675" y1="150.096" x2="329.675" y2="13.9313" gradientUnits="userSpaceOnUse">
<stop stop-color="#41FF54"/>
<stop offset="1" stop-color="#E7FF52"/>
</linearGradient>
<linearGradient id="paint4_linear_228_1439" x1="329.675" y1="150.096" x2="329.675" y2="13.9313" gradientUnits="userSpaceOnUse">
<stop stop-color="#41FF54"/>
<stop offset="1" stop-color="#E7FF52"/>
</linearGradient>
<linearGradient id="paint5_linear_228_1439" x1="329.675" y1="150.096" x2="329.675" y2="13.9313" gradientUnits="userSpaceOnUse">
<stop stop-color="#41FF54"/>
<stop offset="1" stop-color="#E7FF52"/>
</linearGradient>
<linearGradient id="paint6_linear_228_1439" x1="329.675" y1="150.096" x2="329.675" y2="13.9313" gradientUnits="userSpaceOnUse">
<stop stop-color="#41FF54"/>
<stop offset="1" stop-color="#E7FF52"/>
</linearGradient>
<linearGradient id="paint7_linear_228_1439" x1="634.904" y1="139.733" x2="651.44" y2="25.9754" gradientUnits="userSpaceOnUse">
<stop stop-color="#2563EB"/>
<stop offset="1" stop-color="#A855F7"/>
</linearGradient>
<linearGradient id="paint8_linear_228_1439" x1="634.904" y1="139.733" x2="651.44" y2="25.9754" gradientUnits="userSpaceOnUse">
<stop stop-color="#2563EB"/>
<stop offset="1" stop-color="#A855F7"/>
</linearGradient>
<linearGradient id="paint9_linear_228_1439" x1="634.904" y1="139.733" x2="651.44" y2="25.9754" gradientUnits="userSpaceOnUse">
<stop stop-color="#2563EB"/>
<stop offset="1" stop-color="#A855F7"/>
</linearGradient>
<linearGradient id="paint10_linear_228_1439" x1="634.904" y1="139.733" x2="651.44" y2="25.9754" gradientUnits="userSpaceOnUse">
<stop stop-color="#2563EB"/>
<stop offset="1" stop-color="#A855F7"/>
</linearGradient>
<linearGradient id="paint11_linear_228_1439" x1="95.8594" y1="103.206" x2="94.7605" y2="31.2414" gradientUnits="userSpaceOnUse">
<stop stop-color="#41FF54"/>
<stop offset="1" stop-color="#E7FF52"/>
</linearGradient>
</defs>
</svg>
<svg
xmlns="http://www.w3.org/2000/svg"
width="751"
height="131"
fill="none"
viewBox="0 0 751 131"
>
<path
fill="url(#paint0_linear_228_1439)"
d="M195.022 16.27h-59.577 2.354v16.243h20.059v69.898h16.982V32.513h20.182V16.27z"
></path>
<path
fill="url(#paint1_linear_228_1439)"
d="M211.265 51.465V40.88h-15.874v61.53h15.874V73c0-12.921 10.461-16.613 18.706-15.629v-17.72c-7.753 0-15.506 3.445-18.706 11.813z"
></path>
<path
fill="url(#paint2_linear_228_1439)"
d="M246.954 33.498c5.414 0 9.845-4.43 9.845-9.722 0-5.291-4.431-9.845-9.845-9.845-5.292 0-9.722 4.554-9.722 9.845 0 5.292 4.43 9.722 9.722 9.722zm-7.876 68.913h15.875v-61.53h-15.875v61.53z"
></path>
<path
fill="url(#paint3_linear_228_1439)"
d="M315.253 40.881v7.63c-4.307-5.784-10.952-9.352-19.69-9.352-17.474 0-30.641 14.275-30.641 31.503 0 17.351 13.167 31.503 30.641 31.503 8.738 0 15.383-3.569 19.69-9.352v6.645c0 9.722-6.153 15.136-16.121 15.136-9.475 0-13.536-3.815-16.121-8.614l-13.536 7.753c5.414 9.968 15.998 15.013 29.165 15.013 16.244 0 32.119-9.106 32.119-29.288V40.88h-15.506zm-17.228 46.64c-9.968 0-17.229-7.014-17.229-16.86 0-9.72 7.261-16.735 17.229-16.735 9.967 0 17.228 7.014 17.228 16.736 0 9.845-7.261 16.86-17.228 16.86z"
></path>
<path
fill="url(#paint4_linear_228_1439)"
d="M390.936 40.881v7.63c-4.307-5.784-10.953-9.352-19.69-9.352-17.474 0-30.642 14.275-30.642 31.503 0 17.351 13.168 31.503 30.642 31.503 8.737 0 15.383-3.569 19.69-9.352v6.645c0 9.722-6.153 15.136-16.121 15.136-9.476 0-13.537-3.815-16.121-8.614l-13.537 7.753c5.415 9.968 15.998 15.013 29.166 15.013 16.243 0 32.118-9.106 32.118-29.288V40.88h-15.505zm-17.229 46.64c-9.967 0-17.228-7.014-17.228-16.86 0-9.72 7.261-16.735 17.228-16.735 9.968 0 17.229 7.014 17.229 16.736 0 9.845-7.261 16.86-17.229 16.86z"
></path>
<path
fill="url(#paint5_linear_228_1439)"
d="M432.9 78.168h46.394c.369-2.092.615-4.184.615-6.522 0-18.09-12.921-32.487-31.134-32.487-19.321 0-32.488 14.151-32.488 32.487 0 18.336 13.044 32.488 33.718 32.488 11.814 0 21.044-4.8 26.827-13.167l-12.798-7.384c-2.707 3.569-7.63 6.153-13.783 6.153-8.368 0-15.136-3.446-17.351-11.568zm-.246-12.306c1.846-7.875 7.63-12.428 16.121-12.428 6.645 0 13.29 3.568 15.259 12.428h-31.38z"
></path>
<path
fill="url(#paint6_linear_228_1439)"
d="M505.199 51.465V40.88h-15.875v61.53h15.875V73c0-12.921 10.46-16.613 18.705-15.629v-17.72c-7.753 0-15.506 3.445-18.705 11.813z"
></path>
<path
fill="url(#paint7_linear_228_1439)"
d="M529.934 104.011c5.783 0 10.46-4.676 10.46-10.46 0-5.784-4.677-10.46-10.46-10.46a10.451 10.451 0 00-10.46 10.46c0 5.784 4.676 10.46 10.46 10.46z"
></path>
<path
fill="url(#paint8_linear_228_1439)"
d="M596.632 16.27v31.872c-4.43-5.66-10.952-8.983-19.936-8.983-16.49 0-30.026 14.151-30.026 32.487 0 18.336 13.536 32.488 30.026 32.488 8.984 0 15.506-3.323 19.936-8.983v7.26h15.875V16.269h-15.875zM579.65 88.997c-9.845 0-17.106-7.015-17.106-17.352s7.261-17.351 17.106-17.351c9.721 0 16.982 7.014 16.982 17.351s-7.261 17.352-16.982 17.352z"
></path>
<path
fill="url(#paint9_linear_228_1439)"
d="M637.98 78.168h46.394c.369-2.092.615-4.184.615-6.522 0-18.09-12.921-32.487-31.134-32.487-19.321 0-32.488 14.151-32.488 32.487 0 18.336 13.044 32.488 33.718 32.488 11.814 0 21.044-4.8 26.827-13.167l-12.798-7.384c-2.707 3.569-7.63 6.153-13.783 6.153-8.368 0-15.136-3.446-17.351-11.568zm-.246-12.306c1.846-7.875 7.63-12.428 16.121-12.428 6.645 0 13.29 3.568 15.259 12.428h-31.38z"
></path>
<path
fill="url(#paint10_linear_228_1439)"
d="M732.859 40.881l-15.013 43.071-14.89-43.07h-17.475l23.382 61.529h18.089l23.382-61.53h-17.475z"
></path>
<path
fill="url(#paint11_linear_228_1439)"
fillRule="evenodd"
d="M35.664 42.4L59.411 1.269l58.853 101.937H.559l23.747-41.133 16.799 9.7-6.948 12.034h50.509L59.41 40.066 52.464 52.1l-16.8-9.7z"
clipRule="evenodd"
></path>
<defs>
<linearGradient
id="paint0_linear_228_1439"
x1="329.675"
x2="329.675"
y1="150.096"
y2="13.931"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#41FF54"></stop>
<stop offset="1" stopColor="#E7FF52"></stop>
</linearGradient>
<linearGradient
id="paint1_linear_228_1439"
x1="329.675"
x2="329.675"
y1="150.096"
y2="13.931"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#41FF54"></stop>
<stop offset="1" stopColor="#E7FF52"></stop>
</linearGradient>
<linearGradient
id="paint2_linear_228_1439"
x1="329.675"
x2="329.675"
y1="150.096"
y2="13.931"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#41FF54"></stop>
<stop offset="1" stopColor="#E7FF52"></stop>
</linearGradient>
<linearGradient
id="paint3_linear_228_1439"
x1="329.675"
x2="329.675"
y1="150.096"
y2="13.931"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#41FF54"></stop>
<stop offset="1" stopColor="#E7FF52"></stop>
</linearGradient>
<linearGradient
id="paint4_linear_228_1439"
x1="329.675"
x2="329.675"
y1="150.096"
y2="13.931"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#41FF54"></stop>
<stop offset="1" stopColor="#E7FF52"></stop>
</linearGradient>
<linearGradient
id="paint5_linear_228_1439"
x1="329.675"
x2="329.675"
y1="150.096"
y2="13.931"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#41FF54"></stop>
<stop offset="1" stopColor="#E7FF52"></stop>
</linearGradient>
<linearGradient
id="paint6_linear_228_1439"
x1="329.675"
x2="329.675"
y1="150.096"
y2="13.931"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#41FF54"></stop>
<stop offset="1" stopColor="#E7FF52"></stop>
</linearGradient>
<linearGradient
id="paint7_linear_228_1439"
x1="634.904"
x2="651.44"
y1="139.733"
y2="25.975"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#2563EB"></stop>
<stop offset="1" stopColor="#A855F7"></stop>
</linearGradient>
<linearGradient
id="paint8_linear_228_1439"
x1="634.904"
x2="651.44"
y1="139.733"
y2="25.975"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#2563EB"></stop>
<stop offset="1" stopColor="#A855F7"></stop>
</linearGradient>
<linearGradient
id="paint9_linear_228_1439"
x1="634.904"
x2="651.44"
y1="139.733"
y2="25.975"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#2563EB"></stop>
<stop offset="1" stopColor="#A855F7"></stop>
</linearGradient>
<linearGradient
id="paint10_linear_228_1439"
x1="634.904"
x2="651.44"
y1="139.733"
y2="25.975"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#2563EB"></stop>
<stop offset="1" stopColor="#A855F7"></stop>
</linearGradient>
<linearGradient
id="paint11_linear_228_1439"
x1="95.859"
x2="94.76"
y1="103.206"
y2="31.241"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#41FF54"></stop>
<stop offset="1" stopColor="#E7FF52"></stop>
</linearGradient>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Some files were not shown because too many files have changed in this diff Show More