fix/core-api-request-timeout
30 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
df78ef96d9 |
feat: multi dev branches (#4023)
Closes this feature request: [https://triggerdev.featurebase.app/p/isolated-dev-sessions-for-multiple-local-trigger-dev-instances](https://triggerdev.featurebase.app/p/isolated-dev-sessions-for-multiple-local-trigger-dev-instances) ### Feature notes: - CLI `trigger dev` works as before - `trigger dev --branch my-branch` to create a new branch and run against it. - `trigger dev archive --branch my-branch` to archive (or in webapp). - New webapp page to manage and archive dev branches, currently feature flagged. ### Implementation details: - No changes to data model, no backfill. `isBranchableEnvironment` column is ignored for dev branches, we use `parentEnvironmentId IS NULL` instead. - `x-trigger-branch` overloaded for preview and dev branches - New `TRIGGER_DEV_BRANCH` env var available locally. `TRIGGER_PREVIEW_BRANCH` overloaded for child runs. - Lots of new glue code to sanitise the branch checks. ### Rollout - Deploy webapp/API changes (all backwards compatible) - Manual tests on some orgs - Deploy docs, release CLI, flip feature flag for webapp feature ### NB - `api.v1.projects.$projectRef.environments.ts` will return `isBranchableEnvironment: true` for all dev environments. ### Prerequisites - [x] Typecheck will not pass until we make a new release of `@trigger.dev/platform` and bump it here |
||
|
|
03e4d5fe31 |
feat(webapp,database): API key rotation grace period (#3420)
## Summary
Regenerating a RuntimeEnvironment API key no longer immediately
invalidates the previous one. Rotation is now overlap-based: the old key
keeps working for 24 hours so customers can roll it out in their env
vars without downtime, then stops working.
## Design
- **New `RevokedApiKey` table** (one row per revocation). Holds the
archived `apiKey`, a FK to the env, an `expiresAt`, and a `createdAt`.
Indexed on `apiKey` (high-cardinality equality — single-row hits) and on
`runtimeEnvironmentId`.
- **`regenerateApiKey` wraps both writes in a single `$transaction`:**
insert a `RevokedApiKey` with `expiresAt = now + 24h`, update the env
with the new `apiKey`/`pkApiKey`.
- **`findEnvironmentByApiKey` does a two-step lookup:** primary
unique-index hit on `RuntimeEnvironment.apiKey` first; on miss,
`RevokedApiKey.findFirst({ apiKey, expiresAt: { gt: now } })` with an
`include: { runtimeEnvironment }`. Two-step (not `OR`-join) keeps the
hot path identical to today and puts the fallback cost only on invalid
keys. Both lookups use `$replica`.
- **Admin endpoint** `POST /admin/api/v1/revoked-api-keys/:id` accepts
`{ expiresAt }` and updates the row. Setting to `now` ends the grace
window immediately; setting to the future extends it.
- **Modal copy** on the regenerate dialog updated — previously warned of
downtime, now explains the 24h overlap.
## Why a separate table instead of columns on `RuntimeEnvironment`
- Keeps the hot auth path's primary lookup unchanged — no
OR/nullable-apiKey semantics to reason about.
- Naturally supports multiple in-flight grace windows (regenerate twice
in a day → two old keys valid until their independent expiries).
- FK + cascade cleans up correctly when an env is deleted; nothing to
backfill.
## Test plan
Verified locally against hello-world with dev and prod env keys:
- [x] baseline — current key authenticates (`GET /api/v1/runs`) → `200`
- [x] regenerate via UI — DB shows old key in `RevokedApiKey` with
`expiresAt ≈ now+24h`, env has new key
- [x] grace window — both old and new keys → `200`; bogus key → `401`
- [x] admin endpoint: `expiresAt = now` → old key `401`
- [x] admin endpoint: `expiresAt = +1h` (after early-expire) → old key
`200` again
- [x] admin endpoint: `expiresAt = past` → old key `401`
- [x] admin 400 (invalid body), 404 (unknown id), 401 (missing/non-admin
PAT)
- [x] same flow exercised end-to-end on a PROD-typed env — behavior
identical
- [x] `pnpm run typecheck --filter webapp` passes
|
||
|
|
9b21f8d322 |
feat(webapp): Vercel integration (#2994)
Vercel integration Desc + Vid coming soon For human reviewer: - check the db schema - check if posthog user attribution call is correct (telemetry.server.ts & `referralSource`) <!-- devin-review-badge-begin --> --- <a href="https://app.devin.ai/review/triggerdotdev/trigger.dev/pull/2994" target="_blank"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1"> <img src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1" alt="Open with Devin"> </picture> </a> <!-- devin-review-badge-end --> |
||
|
|
49de105862 |
Feat(webapp): collapsible side menu (#2939)
- Better separation between main feature pages and manage pages - Toggle via keyboard shortcut Cmd/Ctrl + B or click collapse button - Collapsed state persisted to database (survives page refresh) - All menu items show tooltips when collapsed - Smooth animations using Framer Motion and CSS transitions - Impersonation-safe (preferences not modified when impersonating) https://github.com/user-attachments/assets/35827922-b80a-418e-8341-eb22c9bb5ed4 <!-- devin-review-badge-begin --> --- <a href="https://app.devin.ai/review/triggerdotdev/trigger.dev/pull/2939"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1"> <img src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1" alt="Open with Devin"> </picture> </a> <!-- devin-review-badge-end --> |
||
|
|
3056a51b82 |
Query improvements (#2905)
What changed - Upgraded recharts to 2.15.2 - Added multiple chart types and components: big number, line, stacked, bar (including zoomable & reference line), big dataset bar, and usage graph - Implemented custom legend with animated values, tooltip showing x-axis data, and hover/highlight behaviors for stacks and legend - Added loading, no-data, and invalid chart states plus loading spinners and improved loading animations/layout - Storybook integration: initial charts setup, separate chart files, alphabetized menu, chart state toggles, and story updates - Interaction & UX improvements: zooming (drag/select), crosshair pointer, show/select dates while zooming, prevent text selection on drag, hide mouse wheel zoom, capped legend items, axis/legend styling tweaks, better spacing, and min-height for charts - Data & state handling: moved date data to route for unified zooming, moved chartState to main Chart component, moved hard-coded/mock data out of components, and set chart data when zooming to start/end dates - Performance & animation: turned off/reduced chart animations, sped up animated numbers, removed hover transitions for bars - New UI primitives and layout: Card component, small card updates, SVG icons, improved segmented control and popover variants, table improvements (resizable columns, filtering, sorting, scrolling fixes) - Various fixes and polish: tooltip style fixes, legend value updates, hover/leave state resets, bar width fixes for small datasets, type/import fixes, and numerous small style/typo tweaks --------- Co-authored-by: James Ritchie <james@trigger.dev> |
||
|
|
b042b0b2f9 |
fix(webapp): cancel button in API key regeneration modal (#2878)
The Cancel button was missing an onClick handler to close the modal dialog. This caused confusing behavior where clicking Cancel would not dismiss the dialog. Also added type="button" to prevent form submission since the button is inside a form. Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
583d299891 |
chore(webapp): Concurrency page UI improvements (#2825)
### UI Improvements to the Concurrency page: - Truncates long branch names and includes a tooltip - The Tables have a new variant if you don't want the rows to highlight on hover - Small fix to pluralize some words in the purchase modal - Fix to prevent tooltip buttons being `type=submit` - Updates the /limits docs page to include purchasing more concurrency - Adds a clear banner when you have a positive balance of unallocated concurrency https://github.com/user-attachments/assets/54d927c3-84e3-4d55-8f42-726098f4daf0 |
||
|
|
ea853b243e | Remove onsole.log… oops (#2125) | ||
|
|
12f4653cd6 |
Fix long preview branch names (#2124)
* Truncate long branch names, don’t let the icon shrink * Truncate and show tooltip for long branch names |
||
|
|
068c024477 |
Preview branches (#2086)
* Initial preview migrations * Modified the staging endpoint to create preview environments * Added isBranchableEnvironment to RuntimeEnvironment * Staging = yellow Preview = orange * Changed the env sort order * Set isBranchableEnvironment correctly. Create preview for new projects * Very basic branch menu * Creating branches from the dashboard * Fix for string icons on project delete page * Don’t show branch API keys * WIP on the manage branches page * RuntimeEnvironment added projectId index * Only create the parentEnvironmentId column if it doesn’t exist already * Improved the limit wording * Add search to the branch list * contains in both places * Many style improvements * Branch dropdown and v4 badge * Arching/unarchive branches working in the dashboard * Tidied imports * Change preview slug from `prev` to `preview` * Use correct color for side menu preview branch icon * Upsert the branch and use the shortcode as a unique constraint * Upserting working with nice messages in the dashboard * Better errors when upserting branches * Button shortcut, don’t allow event to propagate * Better duplicate error message * Filter out archived branches from the env selector * Archiving/creating tweaked some more * Add an archived banner to the app, fixes for archived branches and upsells * Fixed pagination * Disable editing schedules, pausing queues, testing tasks * Don’t allow replaying if the env is archived * When deploying detect the correct environment * Get the projectClient when there’s a branch * createGitMeta function, most code from the vercel CLI repo * Deploy, getting the correct environment client * Added git column to WorkerDeployment * Add GitMeta to core schemas * Create branch when deploying * WIP on branch support in the API * Delete old createTaskRunAttempt fn * apiAuth remove export from internal functions * Rename env var to “TRIGGER_PREVIEW_BRANCH” * Add TRIGGER_PREVIEW_BRANCH to resolved env vars for runs * First preview deploy and run working * Set the preview branch in the main SDK * Added git links to the preview branches table * Better errors when replaying/testing archived branches * Don’t dequeue archived environments * Env var resolution with parent environment * Hello world default machine small-2x to save my memory * Fix for more env var functions * Only return non-archived envs * Switch to controlled state for the checkboxes * Uncheck everything when PREVIEW is checked * WIP on branch UI * Show the preview branch label on the env vars list * Fix for overriding env vars * Adding preview branch env vars working * Progress on new env vars * Only allow selecting a single branch * Layout fix when there are errors * Set the defaultValue so there are some fields * Conform fix for team invite page * Archived environments don’t run scheduled tasks * Added Git data to deployments * Added git data to the deployment inspector * Don’t allow upserting schedules when archived * Deduplicate and blacklist some env vars * Fix for wrong conform function being used * Show a better error if all vars were blacklisted * Added environment variable search (by key and value) * Improved preview branch icon * Replay now supports branches * Schedule page render branches properly * Show the env icon in bottom-left of the test page * When editing older schedules (that have multi-env) show preview branches correctly * Fix for incorrect disallowed branch name character * Extract and improve the directory verification code * WIP for CLI preview archive command * Improved the preview branch action buttons * Redirect to the project if we don’t find a matching env * Archiving branch via the CLI working * Fix for archiving branches * Public access token test task * JWTs working are with preview branches * Add branch and git data to the Run ctx * Updated GitMeta functions to work in CI * Added pullRequestState * Archive when deploying if the PR is closed/merged * Fix for the changesets guide * Fix for CLI dev bug introduced * CLI promote now supports preview branches * Add PR title. Reordered them and added tooltips * syncEnvVars working with branches * Added preview branch support to syncVercelEnvVars() * Detect the branch from Vercel env var (set during build) * Allow passing a branch in * Use process.env.VERCEL_TOKEN as well… this used in Vercel CI * Temp delete * Improved regenerate api key modal * Added Accordion component (with styles) * Redesigned the API keys page * Revert "Temp delete" This reverts commit 177b92cd935a6161456bde65d01294e23ecfd47f. * Changeset * Fixed docs link * The new branch panel closes when a branch is created * Update apps/webapp/app/services/upsertBranch.server.ts Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Removed findUniques from WorkerGroupTokenService * Made the parentEnvironmentId migrations safe * Latest lockfile * Update packages/cli-v3/src/commands/workers/build.ts Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Move isValidGitBranchName to a separate file * Move the sanitize fn too * removeBlacklistedVariables moved to a separate file * Moved deduplicateVariableArray to a separate file… * Fix broken sanitizeBranchName import * Another import fix… * Improved blacklisted error message * SImplified migration to use `ADD COLUMN IF NOT EXISTS "parentEnvironmentId" TEXT` --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> |
||
|
|
be02439d1d |
Icons: updates and new icons for the side menu, run page and general improvements to the way they work (#1825)
* New format for the functions instead of “onWait() task” * Make the icon sizes match the hero icons * Updating icons for the new task hooks * Adds new icons to the RunIcon.tsx component * Improves the size of the menu icons * Fixes the missaligned environment dropdown and dev connected button * Changes the button colours so they are all unique * More icon updates * Adds new variables for main page icons * Improves icons sizes * Using new color variables in the side menu and blank states * Adds preview environment color variable * Align the env icon in the menu * Updates the env icons to be the correct size and padding to match hero icons * Label uses new colors, removes unused cases and new env icons * Lower case env label * Removes unused code * Use full env title * Organize imports * More variants of the runs icon to work at smaller sizes * small padding adjustment * reformat init function span * Fix last init formatting * New colour for settings * Organize switch statement for icons nicely * Use new color variable * Update icon svgs * Renamed lifecycle hook icon to Function icon * Renamed function icon file name |
||
|
|
7b862b9438 |
Major dashboard improvements (environment centric) (#1796)
* Delete the proxy app (was v2) * Delete RunPresenterElectric * Select the best proj/org/env * Storing current proj/env in DB. Initial selection logic working with tasks page * 2sm needed to be in the Tailwind merge list * Move the task stream route (although we don’t actually use the env for now) * Alerts moved from /v3 * API keys page moved from /v3 * Concurrency page moved from /v3 * WIP on side menu sections * Improved the accordion animation * Moved schedules from /v3 * More pages moved * Move pages working * Run page working * Schedules working * Moved deployments * Alert pages moved * Delete electric hooks, not used * Started setting up blank states * Test page working * Removed “Select task” from the test page * Some work on deployment page * Style tweaks * Redirect from project root to approriate env * Improved env selector styling * Fix for jsx errors * Better min width on env selector * Improved the env switching logic * Added deployments to env routing * Redirect deployments to the correct env * Redirect run from proj to env * JSX icon fix * Only allow single env schedules from now on * Remove env var count from the API keys page * Move improvements and redirects * Project settings moved * Fix for scroll area on test page * Tweaked the test design * Made recent payloads column narrower * Improved the test layout some more * Added org icon, new project selector menu * WIP on org switching menu * Org switching is working * New menu working well, removed old side menu items * Buttons can now have a component name or an actual component for their icons * Removed the Projects page, instead redirect appropriately * Fix for broken blank states * Minor run table improvements * Removed unused switcher log and logic * Concurrency page fix for invalid html, improved layout * Minor improvements * Moved the side menu to the project level * Improved account styling * Moved org settings pages (with redirects) * Add current plan to billing side menu link * Upgrade to get staging from env dropdown * New env badge on concurrency limits page * Show Run Engine version in span presenter * New promote icon * Concurrency limits page is the sum of engine v1 + v2 queues * Fix for missing batch import * Added currentConcurrencyOfEnvQueue function * Basic avatar setting working * Avatar setting is working * You can change the color of your icon * Avatar improvements * Bugfix for mising prop * Removed some old env badges * Fixed replaying * Removed EnvironmentLabel * Old env badge deleted, changed everywhere to the new one * Fix for Slack integration paths * Fix for waitpoint completion form moving * Bulk replay/cancel env fix * Fix for alert webhook path * Redirect projects/v3/* to project/* * Fixes for CLI redirect routes * Remove welcome email (unused) * Change how we count schedules towards your limits * Use new schedules limits when checking a schedule * Added projectId back in to task queries (indexes) * WIP dev presence * CLI modal * Moved things around and use Context * Fix for p inside p * Dev connected status on run page * Correct dev env (not a teammates) * Show disconnected message at the end * Minor tweak on project dropdown icon padding * Fix for inconsistent date format for presence * Added a message when pushing to the billing page * Center the team page * Project settings page centered * Improvements to the dev presence |
||
|
|
6cf86d5916 |
Deleting v2 dashboard/api (#1628)
* Delete v2 Stripe routes * Delete v2 billing/usage pages * Delete v2 integration pages * Delete v2 project pages * Deleted a load of components and services * Deleted a load more components, presenters and services * Deleted another 100 files or so… * Removed old v2 paths * Removed named icons from form titles * Removed more string icons * Delete NamedIcon * Fixed some type errors * Delete endpointApi * Removed v2 from core/sdk * Post merge fixes * added explicit return types * using the new sdk export without v3 * Delete old v2 file * Added explicit return types because TS was complaining… * Don’t export RuntimeEnvironmentType from two core files. Was causing TS issue * Fix for removal of NamedIcon in new route * Removed strange eslintrc rule * Use the new redis client --------- Co-authored-by: James Ritchie <james@trigger.dev> |
||
|
|
1b3a2f2e5b |
Full width tables (#1474)
* Updated styling * Updated the main Table component styles to the new design * Run page table layout style updates * Updated row styling and new scrolling behaviour * Fixed bulk action bar no appearing * Improved table component styles * Pagination arrows now chevrons * Added link to Runs docs page * Small popover tweak * Moved the extra Test button out of Tables and into the RunsTable * WIP refactoring the sticky table cell * Support for the existing way we have menus in the sticky table cells * Created a specific Docs style button * Improved dialog trigger button styles * Improved docs button styles * Updated Docs buttons to the new style in the tooltips * Adding a Test button on hover * Removed the page padding and made table scroll * Fixed table scrolling * cleaned up imports * WIP adding a test button that links to the test page * added a docs button to the header * Much nicer display bar for showing how many schedules you have (and it works with the updated table) * Fixed the button types in the schedules info panel * Fixed button icon colour * Removed the pagination as it’s not being used * Delete modal button position updated * Fixed padding on recent payloads panel * Fixed button icon colours * Better style for active table row * Table scrolling now behaves properly * environment buttons now have a hover state * Bigger Run test bar to match the Run page * Small layout fixes to the schedule side panel * Test page now has link to docs * fixed text alignment with table headers * API keys page now has full width tables * Fix typo and modal layout * Table uses new sticky button type * Tidy imports * Env var table now full width * Form buttons have a border top * Updated button styles * Updated blank state message style to be consistent * Removed unnecessary form button border * Alerts page tables now full width * Allowing the Detail cell to be styled * Updated the page structure to be the same as the scheduled page – with better progress indicator * Concurrency limits page now full width * Fixed function name label extending too far * Improved the button sizes on the replay modal * Added a minimal style to the info panels * Make sure you can always see the info and unlock staging info when the table scrolls * Info panel style updated to match the others * Removed the duplicate header * Usage page tables now full width * Personal access token page using full width tables * Small CSS fixes * Deployments page table now full width * Deploy page scrolls properly and pagination stays on screen if table is scrollable * TableCellMenu using the correct popover * Added missing button variant * Button group is now named so it doesn’t cause conflicts * Added docs link to the Run page * Typo * Added a link to the test page if you have no runs * Make the table sticky cell buttons more obvious * Env var page now using the new popover menu * Improved the menu items * Copy tweak * Made the icons bright on hover * Updated the cancel run dialog * Improved the API keys sticky menu behaviour * Alerts table menu using the new popover * Correct sized buttons in the Env Var page table menu * Fixed weird Dialog text styling * Schedules page blank state using correct docs button style * Copy tweak * Menu buttons styled correctly * Added close buttons to the deploy dialogs * Made the Dialog footer match the Form footer style * Fixed feedback form buttons * Fixed cancel run dialog * Test page uses the taskIdentifier in the path * Test task button working * Added Spline component for 404 logo to remove spline logo * Removed todo comment * Added a docs button to the PAT page --------- Co-authored-by: Matt Aitken <matt@mattaitken.com> |
||
|
|
68107565a4 |
v3: Fix issues with posting alerts to public slack channels (#1108)
* Fix issues with posting alerts to public slack channels * Use the actual values in the new environmentTypes column to display the environment type labels in the alerts list * Implement environment alert options |
||
|
|
6baf9e5294 | Dismiss the dev user tooltip in the task page when your mouse leaves the target | ||
|
|
f90960fc13 |
Better display when there are lots of dev environment (#1093)
* Created an EnvironmentLabels component that puts extra dev environments behind a + * Added new environment labels components to schedules pages |
||
|
|
2a1273b683 |
Major v3 web app update (#924)
* Added the new colours to the Tailwind config * Fixed Tsailwind compile errors * WIP Geist working in the app * WIP Storybook * Storybook is working again… ouch * Use Geist mono for CodeMirror * Some find/replace class changes * Resizable colours improved * WIP on primary button * Minor style improvements * Improve the side menu header styling * Improved v2 breadcrumbs * Account side menu tweaks * The page now works with the NavBar and UpgradePrompt * Removed unused import * Refactored the buttons to be dry-er * Removed the breadcrumbs * WIP on nav bar * WIP updating the button styles * Fix for the old test page * Fix for type errors * Removed console.log * Colour change in the resizable handle * New loading bar divider * Removed the design plugin * Creating our own storybook pages * Added some “storybook” pages * Added DetailCell storybook * WIP new animation for the loading page * Added the new loading divider * Fix for the time frame filter having a green border * Style improvements to the new test page * Small style improvements * Improvements to the list pagination components * Nav bar back button improved * Improvements to the run page * Lots of v2 style improvements * Help looks better * Improvements to the regenerate API key modal * More general improvements * Added section titles to our storybook * Added form stories * Fix for missing key prop * Loading bar is working * Fixed button submitting state * Fix for the test button icon * Code bg improved * Improved oauth buttons * Integration page header fix * Various improvements, mainly changing button variants * Segmented control style updates * Added an outline of 3px for the segment control * Fixes for the billing pages * More pricing improvements * Added dialog to storybook * Typography now in storybook * Free usage bar added to storybook * Added inline clode to storybook * Separated menu types into a sub section in storybook * NamedIcon now in storybook * Added page header to storybook * Added pricing callout to storybook * Added radio groups to storybook * Added segmented controllers to storybook * Added shortcuts to storybook * Added switches to storybook * Added toast to storybook * Added tooltips to storybook * Added tree view to storybook * Added usage charts to storybook * Tarted up the environment variables page * Fix for the FreePlanUsage panel bg colours * Added new badge variants * Added the <TaskPath /> to the tasks table * Span header improvements * Started work on the timeline * Started work on the timeline * Fix for the run page header * Timeline tick marks are working * Timeline working * Got the durations showing on hover * Button improvements * Experimenting with how the duration should be shown * Lots of refinements to the timeline * Much nicer API for the Timeline * The switch is now purple to match the design, with inverted thumb when on * Removed old stuff * Export the props * Added the span with duration back in * Simplified more and fixed the span durations * Put in some decent dummy data * Rendering defaults * Wip with the mouse cursor * Improvements to the story * Added Slider primitive * Integrated the icons into the slider * Lots of layout improvements * Cleaned up imports * “Root” indicator * Animated background on partials * Pull the styles through to the spans and log dots * Fixed some bugs in the TreeView when nodes get created or destroyed * Fix for incorrect parentTask reference * Added run streaming endpoint for live refreshing * Added the tabs to Storybook * Fix for status font size mismatch * Fix for the misaligned run filter status * Set a minimum duration on the timeline * The TreeView now re-calculates if the number of nodes has changed * Partials now render to the end * Improved the durations gutter * The duration is calculated using the current time if there are partial events * Added the environment label to storybook * Improved the environment label style * Removed bottom margin from badge * Button style improvements * Callouts style fits the new design better * Got the scrollbars to appear on the tree/timeline * Added scroll support * Synced scrolling working * Close button and exit icon for the detail panel * secure field shows start of env * Clipboard improvements * Latest lockfile * Fix for the durations wrapping --------- Co-authored-by: James Ritchie <james@jamesritchie.co.uk> |
||
|
|
d7c79ee651 |
V3 API keys page and Environment Variables (#907)
* New API keys page working * Added EnvironmentVariable and EnvironmentVariableValue tables * Environment variables presenter and repository started * Icon now accepts a ReactNode as well * The create form is working * Improvements to validation * Getting all the environment variables is working * Editing an env var working * Fix for deleting a value from an env var * Separate route for adding new env vars. Works with “Save and add another” * Editing is working properly, and revealing all values * Deleting env vars * Get environment variables with the environment id * Added th env vars count to the Environment variables page * Removed the commented out old Env & API keys side menu item * Fix imports in ClipboardField * Added a storybook page for all the variants of input fields * Upgraded Tailwind for the :has selector * Fix for the edit button not filling the width * Reworked the input fields so they work with a variable width icon on the left * Improvements to the new env var modal * Improve the style of the edit environment variable panel * Fix for when Input is type=“text” * Icon now works with FunctionComponents and ComponentTypes properly * Removed a console log * Removed unused imports * Use a const schema for SecretValue * Added friendlyId to EnvironmentVariable |
||
|
|
584936fa29 |
Early v3 project UI (#904)
* Added ProjectVersion to projects, defaults to V2 * Moved v3Enabled to the existing feature flags * Update to using the v3Enabled feature flag * Allow people to choose v3 when creating a new project * Added version to the ProjectPresenter * v2 project and v3 project redirecting * .env.example for the v3-catalog * Added sdkVersion and cliVersion columns to the BackgroundWorker table * Added additional classes for environments * First draft of the Tasks table * Link to the task page * V3 side menu project items * Moved the ListPagination component into the components folder * Moved the TaskListPresenter to a v3 folder * Bare bones task page with tabs * Task page, we’re going to delete this though * Bare bones runs table working * Rejigged the columns * The run table status * Environment and status filtering working * Added time filters * Cursor and direction is working… I think it’s tricky to know for sure * Added TaskRun numbers * Selecting a task now links to the runs page with filters turned on * Added support for the enqueued status * Reworked the task table * Link to the task and environment runs * The run page is rendering a tree of the events * Change the task table column to “Created at" * WIP on making the run tree view look good * Improvements to the run tree * Removed the janky scroll bar flash * Change the title of the task logs to just the task ID * Live timer when a span is running * Added “Show parent items” link * Fixed the bug jumping to parent items * Style improvements to the run * Added the resizable handle to the run page * Moved formatDuration to core/v3 * Wait for now has nice log messages * The run detail panel is working with just a title for now * Navigating to a span and persisting between page reloads is working * The run detail timeline * Wrap log dates in a paragraph * Latest span detail view * Scrolling in the right-hand panel * Tweak default resizable layout for the run page * Attempted improvements to stop a recursive issue on TreeView * TreeView useReducer WIP * Changed the change callback * Add changes to the state * Use the new onSelectedIdChanged in the app * Don’t update the state from the outside * Filtering fix, although navigation doesn’t work nicely * Filtering working when changing the content and clearing it * Don’t allow the same selectedId callback to be called twice… * useDebounce hook * Switch from using defer to just typedjson for now * Latest attempt at span navigation * Removed log * Turn off filtering for now, it’s causing the Links to break somehow * Fix for page height issue * Added (Developer Preview) to the v3 project select box * Revert "Filtering working when changing the content and clearing it" This reverts commit 20d9fbe36ded619e9d3eb0b23d4ed0568a88a615. # Conflicts: # apps/webapp/app/components/primitives/TreeView/TreeView.tsx * Switch to using the old filtering * Added useThrottle hook * Instantly close the panel when deselecting a node, use debounce when navigating to a span * Better spacing in the right hand panel * Comment out the v3 side menu pages that don’t exist yet * Fix for typecheck fail * Clear the statuses too |
||
|
|
8880d8afe2 |
feat: view teammates' dev env job runs (#708)
* feat: view teammates' job runs on dev env * fix typechecks --------- Co-authored-by: Matt Aitken <matt@mattaitken.com> |
||
|
|
9c6838e5c8 |
HTTP endpoints, HTTP triggers and new sidebar (#720)
* Setup basic storybook page * storybook preview pages don’t have padding * Added a storybook story for the side menu * WIP on a new side menu component * New variant for the side menu button style * Side menu items can now recieve a badge ‘count’ * Storybook side menu update * Added a new font size * you can now set the spacing between an icon and the text * Moving the error and count badge to the right side of the button * Added a menu sub item button style * added sub items to the menu and all the rest of the items * Proper background class used * Added a side menu header and main org header * Removed the no-mobile blocker overlay so you can use the site on a phone * Better section name * Created a cusom popover trigger that can take anything as children. Also the popover titles can now take a variant * Added a popover for the user avatar menu item * Removed the tool tip * Arrow Popover can no also go full width * neater conditiona; * Removed unnessary div. And error icon can display an error message * menu item buttons can take a variant * Added placeholder items for the org dropdown * add a max height to the org menu popover and handle scrollbars * Added a border if the menu scrolls when you have lots of project items * warning badges display tooltips if you give them some error text * Removed the sticky header so the scrollbar looks better * Fixed a layout issue from removing the sticky header * Better spacing between lists * Popover can take any react component icon and an icon classname * Side menu headers now have a dropdown by clicking the ellipsis icon * Side menu items can take an icon colour * Updated styling for the dropdown Popover menus * Installed Tabler icons * Updated some icons to use Tabler * Started defining the HttpTrigger class * RequestFilterSchema is part of core * Use the RequestFilterSchema from core * EventSpecificationExample now derived from schema * Need to define the class like EventTrigger * Catalog reference that uses the httpTrigger * The logic for the httpTrigger is in the separate file, just call it from the client using defineHttpTrigger * Basic HttpTrigger * Import fixes * Transforming httpTrigger to the format we want * Initial httpTrigger types working * Added HTTP generic type * Added some notes * Rejigged some things to support verifying payloads * Use new security function for verifying * Added truncating text support if side menu names get long * Renamed some stuff * Removed test copy * HttpEndpoin that isn’t a trigger * Renamed hostname to source * Created HttpEndpoint as a top-level concept, it produces triggers using onRequest * Started working on registration of the httpEndpoints * Removed the new TriggerMetadata for now, http will use static * Added PayloadType to EventRecord. Default is JSON. * The payload from an HTTPEndpoint is now a Request * Initial TriggerHttpEndpoint migrations * Initial server side work * Migration to add shortcode to RuntimeEnvironment * Added TriggerHttpEndpointEnvironment table * Made the httptrigger catalog example runnable * Progress creating/updating httpEndpoints * HTTPEndpointEnvironment updating now works * Added a note about EventRecord HttpEndpoint relationship * When creating environments, create a shortcode * Fix for secret not being retrieved correctly * Request filtering * Add DOM types to Core * Early work dealing with a webhook arriving * Added some todo notes to discuss tomorrow * Added relations to the endpoint so we can call the user’s server * Basic handling of immediate responses * The immediate responses are now going back to the webhook provider * Handling is now generating events and responding where relevant. Not yet matching filters and doing verification * Added source to TriggerHttpEndpointEnvironment * The event filter is now optional * The source is passed through from the httpEndpointEnv * Added optional payloadType when ingesting an event * Added tabler * Updated @remix-run/testing usage for remix 2 * Fixed org menu header width and added org and project types * Added custom icons for Runs and Endpoints * Updated the menu icons * storybook side menu shows static project and org data * Updated side menu * Plumbed in paths * Updated eventFilter to deal with undefined/null payloads * Started work on filtering, but it’s not working * Strict null * async filtering it working * Added environment shortcodes to the seedCloud script * Don’t pass the secret back, added a verifyPayload function that gets called before runs start * Fix for skipping triggering runs * The verify callback is now passed through to the trigger so it can be called * If verifying fails, have a reason which we can show to the user * Don’t verify if it’s a test run * Fixed the log in the example code * Added loader and action to storybook preview * Fix for svg attribute name issues in EndpointIcon * Started work on the side menu * This logic has moved to a separate file, in a different branch * Don’t get the environments when getting orgs * Lots of fixes for the new SideMenu * Refactored some org/project things to fit the new structure better * Some progress restructuring the app for the new sidebar * More changes to data loading * Deleted some old pages. The redirecting is working if you’re on the root but logged in * Basic styling for the account page. We need a back button * Fixes for the integrations pages * Breadcrumb implemented * Add a border to the bottom of the breadcrumb * Feedback is working, not in Storybook * Removed expandSidebar from the Handle * Org level breadcrumbs * Getting the project in the org route now works properly * orgslug route before using the presenter * More UI improvements * Removed commented out line * Use presenters for org and root * Removed forceActive * Split the project selector and user menu out * The side menu items have correct active states * Fixed the scrolling * Put the org name in * Improved the admin features * Created the HTTP Endpoints list page * Work on the HTTP endpoint page * WIP on the HTTP Endpoint page * Fix for response filter not showing * Change page URLs to “http-endpoints” (from httpendpoints) * Slugify the HTTP endpoint id * Added todos for EventRecord associations * Removed the Job/Trigger tab for now * First draft of the help panels * Rejigged the HTTP endpoint page so it splits out the deployed and not deployed environments * Removed irrelevant columns * Added a link to the deployment guide * Removed the background image from the frameworks pages Also… - reordered the frameworks so supported ones come first in the list - added logos to 3 framework pages that were missing them - removed lots of un-used imports * Fixed an issue where the breadcrumb could be hidden on small screens so broken the pages The breadcrumb is always visible now * Renamed ‘Onboarding’ to ‘Framework setup’ * Added a new http-endpoint icon to the side menu * Side menu now has a nice looking scrollbar * Scrollbar on the usage and billing page updated to the nice style * Icon and colour updates to the side bar menu items * Small copy improvement * Fixed bug with the height of the org menu dropdown * Page breadcrumbs now don’t include duplicate path links * renamed uiBorder to ui-border * Remove the padding from the small menu item if it’s used as a button * Made the paragraph text a bit smaller * EventRecord has relationships with TriggerHttpEndpoint/TriggerHttpEndpointEnvironment * Improved the presenter used by the side menu. Also added the HTTP Endpoint badge count to the sidebar * The dropdown org menu has the same badge as the side menu * Improved the Projects page * Fixed button style miss-match in the jobs table dropdown * Made the popover dialogs support Headers and improved the regenerate API key popover * Made the active status of a job more subtle * Allow the Job to have a link on its Trigger * Simplified loader because we ditched the Jobs menu. Also showing no runs help panel now * Fixed type errors * Pages that are org level can scroll if the content gets too long * Fixed a redirect bug so you now redirect to the org page * Updated the shortcode migration, to add additional letters to the end * Removed the nav bar from the welcome onboarding page * Only show the countBadge if the number is > 0 * Jobs icon now has a default colour the same as the nav menu * Capital I for integration * Clone the request before calling verify * Separate the checks out so they can be easily logged * Make the failure reason optional * Made the verification error look better, if it’s provided * Working WhatsApp example * Can set the immediateResponseFilter to null in an update * Deal with a null immediateResponseFilter * Cal.com webhook working * Header height reduced slightly * Fixed button padding * Removed un-used imports * http endpoint table displays a message if you have no entries in the table * Removed some duplicate text and swapped primary buttons for secondary style * All ‘HTTP Endpoints’ now ‘HTTP endpoints’ * You have to use a RequestFilter when using HTTP Trigger * Synchronous eventDispatcher filtering again. Better content-type check * Stripe example * Side menu “Usage & Billing” is just “Usage” if self-hosting * Fix for filtering not working * Removed filter log * Fix for jobs being optional and null * Removed old nav bar from the invite page * Deleted old nav bar component * import cleanup * NoTask message only displays if the run has status “SUCCESS” * Added a global page loading indicator * Added documentation buttons to the most important pages * Added GitHub * Use “verifyRequestSignature” helpr * Removed todo * Fixed the layout of the Rerun Job popover * Jobs table has margin bottom so it sits off the bottom of the page * Small improvement to the search bar layout on the integration page * HTTP endpoint and Trigger concept docs * Reference docs and JSDocs for HTTP endpoint * SDK reference docs for HttpEndpoint * Added an HttpTrigger SDK reference, which mainly just point you elsewhere * Improved the copy in the help panels * Removed unused code * Improved HTTP endpoint comment about setting the secret * Delete unused asyncFilter * Fixed the delete modal not having a title * Always try get the arrayBuffer for an HTTP request, catch and use undefined as the default * Add extra method to invokeTrigger * Use a transaction for the secret store * verifyRequestSignature docs page and JSDocs * Added verifyRequestSignature docs page to nav * Warn if they use the same HttpEndpoint id twice * Added another job using the same HttpEndpoint * Renamed the api route to http-endpoints from httpendpoints * Debug bar for VSCode is now in the commandCenter --------- Co-authored-by: James Ritchie <james@jamesritchie.co.uk> |
||
|
|
83455e3ad4 | feat: implement API key regeneration (#649) | ||
|
|
50e3d9e43a |
Indexing errors don't get displayed anywhere (#605)
* Added EndpointIndex status. Default is PENDING, existing rows are SUCCESS * Made it easier to create a migration SQL file * Created a job-catalog file for misconfigured Jobs that should error when running the CLI * EndpointIndex data and state are now optional * The Environments page now shows the status of the last refresh * Improved the UI about endpoints * Added EndpointIndex error column * WIP making the endpoint indexing more robust * Indexing errors are now surfaced * Improved the error show it shows the job id * Use “performEndpointIndexing” when you create your first endpoint from the UI * Use “performEndpointIndexing” for the recurring endpoint checker * Staging is now auto-indexed every 10 mins too * Use “performEndpointIndexing” for the webhook * Moved the throttling to a util * Removed instructional comments * Created a reusable retry system with exponential backoff * Use p-retry for retrying with backoff * The CLI gets indexing results and displays errors * Improved the indexing error messages and display in the console * Use a pre so the Indexing error is correctly split over multiple lines * Use a db transaction for webhook that triggers endpoint indexing * Tidied up imports * Support older versions of the server * Improved the comment on the misconfigured job * Changeset: When indexing user's jobs errors are now stored and displayed |
||
|
|
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> |
||
|
|
8a4ae0df20 | WIP on the Environment clients | ||
|
|
014a97fcdc | improved the env labels | ||
|
|
afd05f93fc | Tried to improve the environment label but it’s a bit fooked | ||
|
|
ad48f9bb19 | slate-1000 and slate-950 replaced with midnight-900 and midnight-850 | ||
|
|
0153c4f900 | Nice status and environment components |