Compare commits

...
Author SHA1 Message Date
Sonarly Claude Code 4595ef980c fix(auth): add iss parameter to authorization response and pass scope/resource through OAuth flow
https://sonarly.com/issue/34930?type=bug

The OAuth authorization flow advertises `authorization_response_iss_parameter_supported: true` in discovery metadata but never includes the `iss` parameter in the authorization response redirect. Additionally, `scope` and `resource` URL parameters from the authorization request are not captured or forwarded through the flow. Strict OAuth 2.1 clients like ChatGPT reject the incomplete authorization response.

Fix: Three surgical changes to complete the MCP OAuth flow for strict clients like ChatGPT:

1. **`auth.service.ts`** — Added `iss` (issuer) parameter to the authorization response redirect URL per RFC 9207. The discovery metadata already advertises `authorization_response_iss_parameter_supported: true`, so strict OAuth 2.1 clients expect this parameter in the callback. Without it, clients like ChatGPT reject the authorization response as a potential mix-up attack. Uses `this.twentyConfigService.get('SERVER_URL')` — the same pattern already used in `oauth.service.ts:478` for token introspection.

2. **`authorizeApp.ts`** — Added `$scope: String` variable to the GraphQL mutation definition so the frontend can forward the scope parameter from the authorization URL to the backend.

3. **`Authorize.tsx`** — Reads the `scope` query parameter from the authorization URL (which MCP clients include per spec) and passes it through to the `authorizeApp` mutation. This allows proper scope negotiation instead of silently defaulting to all scopes.

**Post-merge action required:** Run `npx nx run twenty-front:graphql:generate` to regenerate the typed GraphQL client (`generated-metadata/graphql.ts`) which will pick up the new `scope` variable in the `AuthorizeAppMutationVariables` type.

**Note:** The `resource` parameter (RFC 9396 / RFC 9728) is not addressed in this PR. Full resource indicator support would require storing `resource` in the auth code context and validating it during token exchange — a larger change that should be handled in a follow-up.
2026-05-05 16:14:49 +00:00
Paul RastoinandGitHub 3b180e7cb5 Fix root monorepo package json focused installation (#20292)
# Introduction
Running `yarn workspace focus twenty`( only installing root package.json
dependencies ) would fail because the yarn constraint expect the yarn
types to be installed
2026-05-05 15:13:31 +00:00
Abdul RahmanandGitHub 3d60e6dbfc Fix stale address coordinates after clearing autofill (#20264)
Closes #20082
2026-05-05 14:43:51 +00:00
e89b12488c i18n - translations (#20290)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-05-05 16:44:11 +02:00
31674253a1 i18n - translations (#20289)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-05-05 16:33:11 +02:00
633553f729 feat(sdk): add defineCommandMenuItem (#20256)
## Summary

- Add `defineCommandMenuItem` and `definePageLayoutWidget` as standalone
SDK defines, mirroring the existing `definePageLayoutTab` pattern. Both
entities can still be declared nested inside their parent
(`defineFrontComponent.command` / `definePageLayout.tabs[].widgets[]`).
- Add `CommandMenuItem` and `PageLayoutWidget` to the `SyncableEntity`
enum and the dev-mode UI labels.
- Wire the SDK manifest-build to extract the two new defines into
top-level `commandMenuItems` / `pageLayoutWidgets` arrays on the
manifest, and the server aggregator to consume them through the existing
flat-entity converters.
- On the server, expose `Application.commandMenuItems` (relation + DTO +
service hydration in `findOneApplication`).
- On the front, list command menu items in the application content tab
and add a dedicated detail page with a settings tab, mirroring how
`frontComponents` are surfaced.
- Add `twenty add` templates and Vitest unit tests for both new defines.
- Document the standalone-vs-nested pattern in
`packages/twenty-sdk/README.md`.

### Why

Until now, command menu items could only be declared as the nested
`command:` field on `defineFrontComponent` — there was no way to
register a command menu item from a separate file or from another
package. The `SyncableEntity` enum had 12 values, while the server
already synced 18 (including `commandMenuItem` and `pageLayoutWidget`).
The same gap existed for `pageLayoutWidget`, which had no top-level
define despite being synced server-side. This PR closes both gaps and
aligns the SDK surface with what the server actually accepts.

The standalone defines coexist with the nested form — pick one per
entity, never both with the same `universalIdentifier` (the manifest
aggregator will throw on duplicates). The README now documents this.

## Test plan

- [x] `npx nx typecheck twenty-sdk` / `twenty-server` / `twenty-front`
- [x] `npx nx lint:diff-with-main twenty-front` / `twenty-server`
- [x] `npx nx lint twenty-sdk` / `twenty-shared`
- [x] New unit tests: `define-command-menu-item.spec.ts`,
`define-page-layout-widget.spec.ts`
- [x] Existing manifest extract config tests still pass
- [ ] Codegen `npx nx run twenty-front:graphql:generate
--configuration=metadata` should be re-run after merge — the generated
`graphql.ts` was patched manually to include `commandMenuItems` on
`Application` and the `FindOneApplication` document.
- [ ] Smoke test: scaffold an app with `twenty add` for both new entity
types, run `twenty dev`, confirm the dev UI shows them in the sync list
and the settings page surfaces command menu items in the content tab.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: martmull <martmull@hotmail.fr>
Co-authored-by: Charles Bochet <charles@twenty.com>
2026-05-05 14:16:04 +00:00
neo773andGitHub 4dd08097ce CalDAV refactor (#20180)
Original CalDAV driver was written almost a year ago and code quality,
patterns were not up to the mark including having no test coverage, this
PR does the following:

- Splits the monolithic driver into isolated utilities with test
coverage

- Adds support for syncing legacy servers by checking if server supports
`syncCollection` and branches into two sync methods
`fetchEventsViaSyncCollection` or `fetchEventsViaCtagEtag` with this I
believe our driver is feature complete

Real testing report

| Provider  | Server            | Sync method          | Auth   |
| --------- | ----------------- | -------------------- | ------ |
| iCloud    | Apple's CalDAV    | sync-collection      | Basic  |
| Nextcloud | sabre/dav         | sync-collection      | Basic  |
| all-inkl  | sabre/dav (older) | ctag + etag fallback | Digest |
2026-05-05 14:15:05 +00:00
65ba36d475 i18n - translations (#20286)
Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
2026-05-05 15:31:52 +02:00
Charles BochetandGitHub 2a4db16970 fix(website-new): inherit test target so twenty-shared builds in CI (#20285)
## Summary
The new `CI Website` workflow added in #20281 fails on the `test` matrix
job because tests cannot resolve `twenty-shared/translations` — a
subpath that requires `twenty-shared` to be built first.

Root cause: `packages/twenty-website-new/project.json` fully overrides
the `test` target, duplicating the executor/options/configurations from
`nx.json` `targetDefaults` but **losing `dependsOn: ["^build"]`** (and
`inputs` / `cache`). As a result, `nx affected -t test` for
`twenty-website-new` does not build `twenty-shared` first.

`twenty-front` works because its `project.json` declares `"test": {}`
and inherits the full default. This PR does the same for
`twenty-website-new`.

Verified the diagnosis from the failing run — `front-task (test)` logs
show `nx run twenty-shared:build` is invoked transitively, while
`website-task (test)` logs do not, leading to the missing-module error.
2026-05-05 15:30:56 +02:00
neo773andGitHub d040756fcf remove direction from messages (#20026)
This was a leftover column removed in
https://github.com/twentyhq/twenty/pull/6743 but was accidentally added
again when we migrated to `buildMessageStandardFlatFieldMetadatas` from
workspace decorator

/closes #20011
2026-05-05 15:24:25 +02:00
e50adaff2d feat(sdk): give Docker-not-running error an actionable next step (#20280)
## Summary

The current Docker-not-running message is unhelpful in two ways:

1. It doesn't tell users **how** to start Docker
2. "try again" is meaningless because a first-time user doesn't yet know
the command they just ran (they got here from `create-twenty-app`, not
from typing `yarn twenty server start` themselves)

**Before:**
```
Docker is not running. Please start Docker and try again.
```

**After (macOS example):**
```
Docker is not running.

Start Docker:
  Run: open -a Docker
  (or launch Docker Desktop from Applications)

Then retry:
  yarn twenty server start

Don't have Docker? Install from https://docs.docker.com/get-docker/
```

The platform-specific line is detected via `process.platform`:
- `darwin` → `open -a Docker` + Docker Desktop fallback
- `linux` → `sudo systemctl start docker` + Docker Desktop fallback
- `win32` → "Launch Docker Desktop from the Start menu"
- other → link to install docs

The retry command is computed at the call site so it preserves the
user's actual flags — `yarn twenty server start --test`, `yarn twenty
server upgrade 2.2.0 --test`, etc.

## Why

This came out of shadowing a first-time app developer who hit this error
during `npx create-twenty-app`. They were stuck — the CLI told them to
"try again" but they had only learned two commands so far
(`create-twenty-app` and `yarn dev`), neither of which was the right
one. Improving the message turns the error into a teaching moment.

## Test plan
- [x] `npx nx typecheck twenty-sdk` passes
- [x] `npx nx lint twenty-sdk` passes
- [x] Manually verified rendered output for both `server start` and
`server upgrade` flows on macOS
- [ ] Verify message renders correctly on Linux/Windows in practice

## Possible follow-ups (out of scope)

- Auto-launch Docker Desktop on macOS if installed (changes user state —
separate PR)
- Make the multi-line CLI error printer style only the first line in
red, so guidance reads as default text rather than red

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-05 15:24:12 +02:00
f9a24072b7 docs: restructure Getting Started around three explicit phases (#20283)
## Summary

Restructures the apps Getting Started doc around the three things a
developer actually has to do, so the mental model is visible upfront and
discoverable when something goes wrong.

**Why this matters:** the previous flow read as one continuous list of
bash commands and prompts, which made it easy to miss that scaffolding,
running a Twenty server, and live-syncing changes are three separate
concepts. When the user hits a failure (Docker not running, server not
up, auth not authorized), they have no mental map for which step they're
in — so they end up retrying `yarn twenty dev`, which is the only
command they remember.

## What changes


**[getting-started.mdx](https://github.com/twentyhq/twenty/blob/docs/restructure-getting-started-three-phases/packages/twenty-docs/developers/extend/apps/getting-started.mdx):**
- New summary table at the top showing the three-phase arc:

  | Phase | What you do | Tool | Result |
  |---|---|---|---|
| **1. Scaffold** | Generate the app's source code | `npx
create-twenty-app` | A TypeScript project on disk |
| **2. Run a server** | Start a Twenty server to sync into | Docker +
`yarn twenty server` | A running Twenty instance |
| **3. Sync** | Live-sync your code to the server | `yarn twenty dev` |
Your changes appear in the UI |

- Three top-level sections, one per phase, each ending with **"After
this phase: you have X"** so users can self-diagnose where they got
stuck.
- Phase 2 leads with the sentence that was missing before: *"Your app
needs a Twenty server to sync into. The server is a full Twenty instance
— UI, GraphQL API, PostgreSQL — running locally in Docker."* This is the
concept new users were missing.
- Removed the standalone *What are apps?* section — that's what the Core
Concepts page is for. Don't duplicate.
- Tightened wording throughout; same screenshots, same callouts, same
content depth.


**[core-concepts/apps.mdx](https://github.com/twentyhq/twenty/blob/docs/restructure-getting-started-three-phases/packages/twenty-docs/getting-started/core-concepts/apps.mdx):**
- Removed the install snippet (`npx create-twenty-app`, `cd`, `yarn
twenty dev`) — it duplicated Getting Started and the two examples used
different directory names.
- Updated the link card to reflect the new three-phase structure.

## Out of scope (mentioned for context, not done here)

- The "Docker is not running" message rewrite: separate PR
([#20280](https://github.com/twentyhq/twenty/pull/20280)).
- A `yarn twenty start` one-command bootstrap that auto-starts the
server before `dev`. Worth doing — keeping it out of this docs PR.
- Auto-offering to start the server when `yarn twenty dev` finds no
running one. Same.
- An "agent path" doc (single-page, imperative, for AI assistants) —
separate effort.

## Test plan
- [x] `npx nx lint twenty-docs` passes (no new warnings)
- [x] All `<Note>`, `<Warning>`, `<Card>`, image refs preserved
- [ ] Render and click through both pages once merged and previewed

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-05 15:23:27 +02:00
e6125c0e0d feat(sdk): move catalog-sync under server group (#20282)
## Summary

`catalog-sync` is a server-side admin action — it asks the connected
Twenty server to refresh its marketplace catalog from npm. It doesn't
operate on the local app code (like `build`, `deploy`, `publish`), so
having it sit at the same root level as those commands is a navigability
problem. With 13 commands at the root today, every needless one makes
the help output harder to scan.

This PR moves it under `server`:

```
# New (preferred)
yarn twenty server catalog-sync
yarn twenty server catalog-sync --remote production

# Old (still works, prints deprecation warning)
yarn twenty catalog-sync
```

Also slightly broadens the `server` group description from "Manage a
local Twenty server instance" to "Manage a Twenty server (local instance
and server-side actions)" since `catalog-sync` can target a remote.

## Help output (after)

```
$ yarn twenty --help
Commands:
  ...
  catalog-sync [options]   [Deprecated] Moved under server. Use `yarn twenty server catalog-sync`.
  ...
  server                   Manage a Twenty server (local instance and server-side actions)

$ yarn twenty server --help
Commands:
  start [options]              Start a local Twenty server
  stop [options]               Stop the local Twenty server
  logs [options]               Stream Twenty server logs
  status [options]             Show Twenty server status
  reset [options]              Delete all data and start fresh
  upgrade [options] [version]  Upgrade the twenty-app-dev Docker image
  catalog-sync [options]       Trigger a marketplace catalog sync on the server
```

## Backwards compatibility

The top-level `yarn twenty catalog-sync` still works and runs the same
logic. It prints a yellow warning suggesting the new path, then executes
normally. Plan is to remove it in a future release.

## Test plan
- [x] `npx nx typecheck twenty-sdk` passes
- [x] `npx nx lint twenty-sdk` passes
- [x] `yarn twenty --help` shows the deprecated entry
- [x] `yarn twenty server --help` lists the new subcommand
- [x] `yarn twenty catalog-sync --help` shows the deprecation message in
the description
- [ ] End-to-end: invoking either path triggers a sync against a running
server

## Possible follow-ups

This is one slice of the bigger CLI flattening discussed offline. Other
natural moves: group `build/deploy/publish/install/uninstall/typecheck`
under an `app` group, group `add/exec/logs` under `entity`. Doing those
in their own PRs to keep blast radius small.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-05 15:23:08 +02:00
Paul RastoinandGitHub 88394c25ef Bump twenty current version (#20241)
# Introduction
This PR introduces a workflow and nx command that allow bumping to a
given version or incrementing the current `TWENTY_CURRENT_VERSION`

Combined with accurate on point cd triggered and CI upgrade sequence
guard mutation workflow the window where a PR can corrupt an already
released twenty version is mitigated
2026-05-05 13:05:11 +00:00
Abdul RahmanandGitHub 90a1a9274f fix: show pinned commands in side panel search results (#20265)
Discord issue:
https://discord.com/channels/1130383047699738754/1498996539530412053
2026-05-05 12:58:40 +00:00
660f246076 i18n - translations (#20284)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-05-05 15:04:23 +02:00
53fdac1417 feat(apps): split AI tool and workflow action triggers in LogicFunction manifest (#20208)
## Summary

Replaces the bolted-on `isTool` + `toolInputSchema` fields on
`LogicFunctionManifest` with two distinct, opt-in triggers that align
with the existing `cron` / `databaseEvent` / `httpRoute` trigger
pattern:

- **`toolTriggerSettings`** — exposes the function as an AI tool (chat /
MCP / function calling). Uses standard JSON Schema (the format LLMs
natively understand).
- **`workflowActionTriggerSettings`** — exposes the function as a step
in the visual workflow builder. Uses Twenty's rich `InputSchema` so the
builder can render proper `FieldMetadataType`-aware editors, variable
pickers, labels, and an optional `outputSchema`.

A function can opt into none, one, or both. Each surface gets the schema
format appropriate for it.

### Why

`isTool: true` previously exposed the function as both an AI tool AND a
workflow node, with the same JSON Schema feeding both — but the workflow
builder really wants Twenty's `InputSchema` (with `CURRENCY`,
`RELATION`, `EMAILS`, etc.) and the AI surface really wants standard
JSON Schema. Today the workflow builder hacks around this by treating
JSON Schema as `InputSchema`, which silently breaks for any
non-primitive field type. Splitting the triggers fixes that and lets
each surface evolve independently.

### Migration

- **Fast** instance command adds the two new nullable columns.
- **Slow** instance command backfills `toolTriggerSettings` +
`workflowActionTriggerSettings` from `isTool=true` rows (preserving
today's both-surfaces behaviour) then drops the legacy columns.

### Stacked

Stacked on top of #20181. Merge that first, then this.

## Test plan

- [ ] CI green (oxlint, typecheck, jest, vitest)
- [ ] Run `--include-slow` upgrade against a workspace with existing
`isTool=true` logic functions; verify both new columns populated and old
columns dropped
- [ ] Verify AI chat sees migrated tool functions (Linear create-issue,
Exa search) and can call them with the JSON Schema
- [ ] Add an AI-tool function from the Settings UI (toggles
`toolTriggerSettings`) and verify it shows up in chat
- [ ] Add a workflow-action function from the Settings UI (toggles
`workflowActionTriggerSettings`) and verify it appears in the workflow
node picker
- [ ] In the workflow builder, edit a `LOGIC_FUNCTION` step and verify
input fields render (no more JSON-Schema-as-InputSchema hack)
- [ ] Try defining a function with no triggers in the SDK and verify
`defineLogicFunction` rejects it

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: martmull <martmull@hotmail.fr>
2026-05-05 14:56:09 +02:00
Charles BochetandGitHub 36452ecc8b fix: show 'Not shared' for RLS-hidden morph relation records (#20272)
## Summary

Follow-up to #20260. The `MorphRelationManyToOneFieldDisplay` component
(used for polymorphic MANY_TO_ONE relations) was missing the FK-presence
check that `RelationToOneFieldDisplay` already has.

When RLS hides a related record (e.g., a Rocket with a policy filtering
by name), the API response contains a populated FK
(`polymorphicOwnerRocketId`) but a `null` relation object. The component
was rendering an empty cell instead of the "Not shared" lock icon.

**Fix:**
- In `useMorphRelationToOneFieldDisplay`, read the record from the store
and check if any morph relation FK field is populated while the relation
value is null
- In `MorphRelationManyToOneFieldDisplay`, render
`<ForbiddenFieldDisplay />` when that condition is true

| Scenario | FK in response | Relation object | Frontend display |
|----------|---------------|-----------------|-----------------|
| Live record | "abc" | `{ id: "abc", ... }` | Record chip |
| Soft-deleted record | null | null | Empty cell |
| RLS-hidden record | "abc" | null | "Not shared" |

## Test plan

- Create a polymorphic MANY_TO_ONE relation (e.g., Pet → Rocket)
- Add an RLS policy on the target object (e.g., Rocket name contains
"Starship")
- Verify the morph relation field shows "Not shared" (lock icon) for
RLS-hidden records
- Verify live records still display normally as record chips
- Verify soft-deleted records still display as empty cells
2026-05-05 14:54:49 +02:00
Charles BochetandGitHub c983ac9f82 ci: add ci-website workflow for twenty-website-new (#20281)
## Summary
- Recreates the `ci-website.yaml` workflow that was removed alongside
`twenty-website` in #20270, now scoped to `twenty-website-new`.
- Replaces the old build-only job with a `[lint, typecheck, test]`
matrix run via `./.github/actions/nx-affected` on `tag:scope:website` —
same idiom used by `ci-shared.yaml`.
- Path filter watches `packages/twenty-website-new/**` and
`packages/twenty-shared/**` (since website-new depends on
`twenty-shared`), plus `package.json` / `yarn.lock`.

## Test plan
- [ ] CI Website workflow appears on this PR and the `lint`,
`typecheck`, `test` matrix jobs all pass
- [ ] `ci-website-status-check` is green
2026-05-05 14:54:11 +02:00
Paul RastoinandGitHub 820f97f53d [Headless Front component] Support multiple selected record (#20268)
# Introduction

Support multiple selected record ids for headless front components

### Changes

**Added:**
- `recordIds: string[]` field to `FrontComponentExecutionContext`
- `useRecordIds()` hook to get all selected record IDs

**Deprecated:**
- `recordId` field - use `recordIds` instead
- `useRecordId()` hook - use `useRecordIds()` instead

Backward compatibility is preserved
2026-05-05 14:53:22 +02:00
41a7d6928b docs: align example name to my-twenty-app across quickstarts (#20279)
## Summary

The example directory name in our scaffolding instructions was
inconsistent across docs:

| Source | Name used |
|--------|-----------|
| `create-twenty-app` README | `my-twenty-app` |
| Getting Started (developer docs) | `my-twenty-app` |
| Core Concepts → Apps (intro doc) | `my-app` ⚠️ |
| `twenty-sdk` README | `my-app` ⚠️ |

This means a user reading the high-level Apps intro sees `my-app`, then
the official Getting Started guide and the scaffold use `my-twenty-app`.
Small but eroding for confidence on the very first command.

This PR aligns the two outliers to `my-twenty-app`. The `twenty-my-app`
example in `publishing.mdx` is left alone — that's an npm package name
example, not a directory name (different concept).

## Test plan
- [x] `grep -rn "my-app\b"` over source docs returns no other
directory-name occurrences
- [ ] Verify rendered docs after merge

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-05 14:52:52 +02:00
neo773andGitHub 8d001eb33f fix: don't mark IMAP channel as failed on transient server errors (#20273)
Map RFC 5530 codes to `TEMPORARY_ERROR` so sync retries instead of
terminally flagging `FAILED_INSUFFICIENT_PERMISSIONS` when the server is
briefly unavailable.

prod Logs

```
	2026-05-05 03:53:42.129	
    authenticationFailed: true
	2026-05-05 03:53:42.129	
    serverResponseCode: 'UNAVAILABLE',
	2026-05-05 03:53:42.129	
    responseText: 'Account is temporarily unavailable.',
	2026-05-05 03:53:42.129	
	2026-05-05 03:53:42.129	
    response: '2 NO [UNAVAILABLE] Account is temporarily unavailable.',
	2026-05-05 03:53:42.129	
  cause: Error: Command failed
	2026-05-05 03:53:42.129	
  code: 'INSUFFICIENT_PERMISSIONS',
Caused by: Error: Command failed

[Nest] 35  - 05/04/2026, 10:23:42 PM   ERROR [ImapGetAllFoldersService] MessageImportDriverException: IMAP authentication error: Command failed
```
2026-05-05 14:30:57 +02:00
neo773andGitHub a3f2fafce6 fix smtp outbound persist message (#20276)
`APPEND` used display name `Sent` instead of `INBOX.Sent`
Fix is to use mailbox path, extreacted this as a utility, all services
are consistent now.

/closes #20267
2026-05-05 14:28:03 +02:00
nitinandGitHub ff65b5001d fix: show AI chat filter button only on hover in navigation drawer (#20274) 2026-05-05 14:25:29 +02:00
dd3b6f2a2f i18n - translations (#20278)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-05-05 14:11:21 +02:00
e3be1f4971 Make ConnectionProvider a true SyncableEntity (#20232)
## Summary

PR #20181 left `ConnectionProvider` in the `SyncableEntity` enum but
bypassing the standard sync pipeline — manifest sync called the bespoke
`ApplicationOAuthProviderService.upsertManyFromManifest()` instead of
going through the workspace-migration orchestrator like every other
SyncableEntity. Anything that assumed *"all SyncableEntity values flow
through the same pipeline"* (dev UI sync tracking, verification tooling)
was wrong about ConnectionProvider — that's the inconsistency this PR
closes.

This PR follows the `.cursor/skills/syncable-entity-*` guides
religiously, all six steps.

## What changes

**Step 1 — Types & Constants** (`@syncable-entity-types-and-constants`)
- Add `connectionProvider` to `ALL_METADATA_NAME` (twenty-shared)
- Make `ApplicationOAuthProviderEntity` extend `SyncableEntity` (drops
the ad-hoc columns since the base class provides them, adds `deletedAt`,
drops the old `(applicationId, universalIdentifier)` unique in favour of
SyncableEntity's `(workspaceId, universalIdentifier)`)
- `FlatConnectionProvider`, `FlatConnectionProviderMaps`,
`FLAT_CONNECTION_PROVIDER_EDITABLE_PROPERTIES`,
`UniversalFlatConnectionProvider`, six action types
- Register in **all** the central registries:
`AllFlatEntityTypesByMetadataName`,
`ALL_METADATA_ENTITY_BY_METADATA_NAME`,
`ALL_ENTITY_PROPERTIES_CONFIGURATION`, `ALL_MANY_TO_ONE_*`,
`ALL_ONE_TO_MANY_*`, `ALL_METADATA_REQUIRED_METADATA_FOR_VALIDATION`,
`ALL_METADATA_SERIALIZED_RELATION`,
`ALL_JSONB_PROPERTIES_WITH_SERIALIZED_RELATION`,
`WORKSPACE_CACHE_KEYS_V2` (`flatConnectionProviderMaps`),
`METADATA_EVENTS_TO_EMIT`
- `case 'connectionProvider':` in seven discriminated-union switches
(`derive-metadata-events-*`, `optimistically-apply-*`,
`enrich-create-*`)

**Step 2 — Cache & Transform** (`@syncable-entity-cache-and-transform`)
- `WorkspaceFlatConnectionProviderMapCacheService` (extends
`WorkspaceCacheProvider`, decorated with `@WorkspaceCache`,
soft-delete-aware)
- `fromConnectionProviderEntityToFlatConnectionProvider` util
- `fromConnectionProviderManifestToUniversalFlatConnectionProvider` util
- `FlatConnectionProviderModule` wires the cache service
- Wired the manifest converter into
`compute-application-manifest-all-universal-flat-entity-maps`

**Step 3 — Builder & Validation**
(`@syncable-entity-builder-and-validation`)
- `FlatConnectionProviderValidatorService` — never throws, returns error
arrays; uses indexed `byUniversalIdentifier` for the (name,
applicationUniversalIdentifier) uniqueness check (no
`Object.values().find()` on the hot path)
- `WorkspaceMigrationConnectionProviderActionsBuilderService`
- Registered in both validators-module + builder-module
- **Wired into the orchestrator** (the most-commonly-forgotten step per
the rule) — constructor inject, destructure
`flatConnectionProviderMaps`, `validateAndBuild`, append actions to the
final migration

**Step 4 — Runner & Actions** (`@syncable-entity-runner-and-actions`)
- Three handlers (create / update / delete) using the canonical
`WorkspaceMigrationRunnerActionHandler` mixin
- Registered in `WorkspaceSchemaMigrationRunnerActionHandlersModule`

**Step 5 — Integration** (`@syncable-entity-integration`)
- Delete the `upsertManyFromManifest` bypass on
`ApplicationOAuthProviderService`
- Remove the bypass call from `ApplicationSyncService` — manifest sync
now flows through the standard pipeline
- Drop `ApplicationOAuthProviderModule` from `ApplicationManifestModule`
(no longer needed)
- Import `FlatConnectionProviderModule` from
`ApplicationOAuthProviderModule` to keep the cache discoverable
- 3 new exception codes: `INVALID_CONNECTION_PROVIDER_INPUT`,
`CONNECTION_PROVIDER_NOT_FOUND`,
`CONNECTION_PROVIDER_NAME_ALREADY_EXISTS`

**Migration**
- Generated via `database:migrate:generate` (instance command
`1777896012579`): drops the old `(applicationId, universalIdentifier)`
unique constraint, adds `deletedAt` column, adds the `(workspaceId,
universalIdentifier)` unique index that `SyncableEntity` requires.
- Verified clean — a second `migrate:generate` pass produces zero drift.

**Step 6 — Tests** (`@syncable-entity-testing`)
- 3 new specs for the manifest converter (defaults, optional fields,
all-fields)
- All 32 existing OAuth-provider tests still pass
- ConnectionProvider has no end-user GraphQL CRUD (it's manifest-driven
only), so the GraphQL integration suite that other SyncableEntities ship
doesn't apply here

**Codegen**
- Regenerated GraphQL artifacts (twenty-front + twenty-client-sdk)
against the live schema

## Why this matters

Before:
- `ConnectionProvider` claimed to be a `SyncableEntity` (in the enum)
- But the entity didn't extend `SyncableEntity`
- And the manifest sync bypassed the standard pipeline
- → Verification tooling, dev UI sync tracking, anything iterating over
`ALL_METADATA_NAME` got inconsistent behaviour

After:
- `ConnectionProvider` is a `SyncableEntity` end-to-end
- Single sync path through the workspace-migration orchestrator (same as
`agent`, `skill`, `frontComponent`, `webhook`, …)
- One mental model

## Out of scope (deliberate)

- **Renaming the table** from `applicationOAuthProvider` to
`connectionProvider` — the `metadataName` is `connectionProvider` (what
consumers see in code); the table name is internal. A rename would
balloon this PR with mechanical churn unrelated to the sync-pipeline
wiring. Worth doing as a follow-up.
- **`applicationVariable` SyncableEntity conversion** — the other
manifest-sync holdout. Tracked in #20215.

## Test plan

- [ ] Migration up/down clean against fresh DB
- [ ] Install an app whose manifest declares connection providers —
providers appear in the workspace
- [ ] Re-deploy the app with one provider added, one removed, one
renamed → all reconciled correctly via the sync pipeline
- [ ] Verify the dev-UI sync-tracking page shows ConnectionProvider
entries the same way it shows agents/skills/etc
- [ ] OAuth flow still works (existing connections, new connections,
reconnect, list/get from SDK) — should be unchanged since the runtime
code path didn't move

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 14:04:15 +02:00
Abdullah.andGitHub 59107b5b23 Remove twenty-website package. (#20270) 2026-05-05 12:45:02 +02:00
7c4302d02a fix: show empty cell instead of 'Not shared' for soft-deleted related records (#20260)
## Summary

Fixes #20076 (supersedes #20250)

When a related record is soft-deleted, the frontend displays "Not
shared" (lock icon) because it sees a populated FK but a null relation
object. This is misleading -- the record was deleted, not
permission-restricted.

**Backend fix** (`process-nested-relations-v2.helper.ts`):
- For MANY_TO_ONE relations, widen the relation query with
`.withDeleted()` and include `deletedAt` in the select
- In `assignRelationResults`, if the matched record has `deletedAt` set,
nullify both the FK and the relation object in the API response
- Records filtered by RLS are still not returned (even with
`withDeleted()`), so they correctly continue to show "Not shared"
- Strip `deletedAt` from relation results before returning to the client

**Frontend fix** (`RelationFromManyFieldDisplay.tsx`):
- For ONE_TO_MANY junction relations, return `null` instead of
`<ForbiddenFieldDisplay />` when junction records exist but target
records are unavailable

### Three cases now handled correctly:

| Scenario | FK in response | Relation object | Frontend display |
|---|---|---|---|
| **Live record** | `"abc"` | `{ id: "abc", ... }` | Record chip |
| **Soft-deleted record** | `null` | `null` | Empty cell |
| **RLS-hidden record** | `"abc"` | `null` | "Not shared" |

## Test plan

- [ ] Create a record with a MANY_TO_ONE relation (e.g., a person linked
to a company)
- [ ] Soft-delete the related record (the company)
- [ ] Verify the relation field shows an empty cell, not "Not shared"
- [ ] Restore the related record and verify the relation reappears
- [ ] Verify that RLS-hidden relations still show "Not shared"

Made with [Cursor](https://cursor.com)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-05 09:32:16 +00:00
fda2295beb feat: expose upgrade status as Prometheus gauge metrics (#20262)
## Summary

- Adds `UpgradeGaugeService` that exposes three observable Prometheus
gauges based on the recently merged upgrade status service:
- `twenty_upgrade_instance_health` — 1 (up-to-date), 0 (behind), -1
(failed)
- `twenty_upgrade_workspaces_behind_total` — count of workspaces with
pending upgrade commands
- `twenty_upgrade_workspaces_failed_total` — count of workspaces with a
failed upgrade command
- Follows the existing gauge pattern (`WorkspaceGaugeService`,
`BillingGaugeService`, `DatabaseGaugeService`)

### Caching & QPS design

Prometheus scrapes every **15s** via `ServiceMonitor`. Each gauge uses
the `MetricsService.createObservableGauge({ cacheValue: true })` pattern
which caches the value in Redis for **60 seconds**. Under that,
`UpgradeStatusService.getInstanceAndAllWorkspacesStatus()` uses
`UpgradeStatusCacheService` with a **1-hour TTL** in Redis.

Result: at most 1 DB query per hour regardless of scrape frequency.

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-05 07:56:13 +00:00
df63dbff05 fix: Invalid configuration instead of related notes (#20251)
## Summary
The Notes widget (and other record-bound widgets like Tasks, Files,
Calendar, Emails) incorrectly displayed "Invalid Configuration" when
rendered on dashboard or standalone page contexts. The root cause was an
overly broad `ErrorBoundary` that caught all runtime errors uniformly
and displayed a misleading error message.
## Related issue
Fixes: #20118 
## Problem Analysis
**Proximate Cause:**
- `NotesCard` calls `useTargetRecord()` which throws a generic `Error`
when `targetRecordIdentifier` is undefined
- `ErrorBoundary` in `WidgetCardShell.tsx` catches this error and
renders `PageLayoutWidgetInvalidConfigDisplay`
- This displays "Invalid Configuration" which is factually misleading

**Triggering Cause:**
- Commit 5cd8b7899d removed the feature flag gate on page layouts,
making them standard for all workspaces
- This exposed record-bound widgets to dashboard contexts where
`targetRecordIdentifier` is intentionally undefined

**Error Propagation Chain:**
```
WidgetContentRenderer → NoteWidget → NotesCard → useTargetRecord()
useTargetRecord() throws Error('useTargetRecord must be used within a record page context')
ErrorBoundary catches error → PageLayoutWidgetInvalidConfigDisplay renders misleading UI
```
## Solution
Introduced a distinction between **configuration errors** and **record
context requirement errors** by:
1. Creating a custom error class `RecordContextRequiredError`
2. Updating `useTargetRecord()` to throw this specific error type
3. Creating a dedicated display component for record context errors
4. Updating the `ErrorBoundary` fallback to handle error types
appropriately
## User Impact
| Before | After |
|--------|-------|
| "Invalid Configuration" (red badge) | "Record Required" (gray badge) |
| Misleading error message | Accurate context-aware message |
| Users think widget is broken | Users understand widget needs record
context |

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-04 21:10:40 +00:00
01b4754e62 New name not appearing when renaming "Stages" in data-model settings (#20246)
## Summary
- Resolve standard field `label`, `description`, and `icon` overrides
through dedicated GraphQL field resolvers.
- Fall back to the source locale safely when the request locale is
missing, and allow direct overrides to apply for non-source locales when
translations are absent.
- Enrich metadata subscription payloads for both `before` and `after`,
reusing the same override application path for field and object
metadata.
- Update and extend tests to cover the revised override behavior.

## Testing
- Updated unit coverage for standard override resolution, including the
non-source-locale fallback path.
- Not run (not requested).

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-04 20:16:00 +00:00
e6399b180e Fix/workspace member avatars 20193 (#20200)
Fixes #20193

**Bug Description:**
Previously, workspace member avatars failed to render correctly in table
views and relation chips (such as the Account Owner field). While the
avatar picker dropdown correctly fetched fresh GraphQL data, table views
and chips relied on the cached defaultAvatarUrl or avatarUrl fields,
which were frequently resolving to empty strings or failing to parse
external OAuth URLs correctly.

**Root Cause:**

- Empty String Defaults: Deleting an avatar or failing to retrieve one
defaulted the database state to an empty string ("") instead of null,
which caused frontend image components to break rather than render their
fallback states.

- Missing Permanent URLs: The WorkspaceMemberTranspiler was strictly
expecting internal signed URLs. If an avatar was an external OAuth URL,
it incorrectly returned an empty string, breaking SSO profile pictures.

- Missing Fallbacks: New users lacked a proper Gravatar fallback
assignment upon workspace creation.

**Changes Made:**

- user-workspace.service.ts: Updated the avatar computation logic during
user creation to implement a reliable Gravatar fallback and correctly
set missing avatars to null instead of empty strings. Updated the
storage to use permanent file URLs.
- file-url.service.ts: Implemented a getRawFileUrl method to support
rendering permanent, non-expiring file URLs for avatars.
- workspace-member-transpiler.service.ts: Refactored the URL
transpilation logic to gracefully pass through external OAuth URLs
(e.g., Google/Microsoft profile pictures) instead of stripping them.
- WorkspaceMemberPictureUploader.tsx: Fixed the frontend removal logic
so that deleting a profile picture sets the avatarUrl to null
(consistent with the backend) rather than an empty string.

**Testing:**

- Verified that avatars correctly display in relation chips and table
views.
- Verified that external OAuth avatars load properly.
- Verified that deleting an avatar correctly resets the UI to the
fallback initials component.

Co-authored-by: Charles Bochet <charles@twenty.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-04 19:42:12 +00:00
8c2885f9ed i18n - docs translations (#20248)
Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
2026-05-04 20:52:46 +02:00
a76047f28b i18n - docs translations (#20243)
Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
2026-05-04 18:53:30 +02:00
Sri Hari Haran SharmaandGitHub 281eaa3721 fix rest filter default conjunction detection (#20133)
Fixes #20128 

## Summary

Fix REST API filter parsing when bare filters are mixed with explicit
conjunctions.

## What changed

- Replaced the loose parentheses check in
`addDefaultConjunctionIfMissing` with proper root conjunction detection.
- Shared the root conjunction regex with `parseFilter`.
- Added regression tests for mixed filters like
`status[eq]:'TODO',and(title[ilike]:'%test%')`.

## Validation

- `npx nx test twenty-server
--testPathPatterns=add-default-conjunction.util.spec.ts --runInBand
--coverage=false`
- `npx prettier --check ...`
2026-05-04 16:18:56 +00:00
martmullandGitHub c804f27846 Add check for manifest uuid version (#20239)
As title

<img width="1059" height="203" alt="image"
src="https://github.com/user-attachments/assets/c6840c4e-792b-45da-b450-addd77af0de7"
/>
2026-05-04 16:06:50 +00:00
martmullandGitHub 54e22423df Improve twenty deploy cli logs (#20237)
## Before
<img width="1074" height="562" alt="image"
src="https://github.com/user-attachments/assets/a2fbe902-d34e-40e4-87c9-f344a06fd6ae"
/>

## After

<img width="1107" height="605" alt="image"
src="https://github.com/user-attachments/assets/af78276a-f4c7-42f9-9347-01d562b1a779"
/>
2026-05-04 15:25:49 +00:00
a0dd7d9e22 i18n - translations (#20240)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-05-04 17:31:07 +02:00
97ec720d2c fix: show active advanced filter count badge in dropdown button (#20229)
## Summary

Replaces the hardcoded `0` in
`ViewBarFilterDropdownAdvancedFilterButton` with the actual count of
active advanced filter rules, matching the behavior of
`AdvancedFilterChip` in the view bar.

## What changed

In
`packages/twenty-front/src/modules/views/components/ViewBarFilterDropdownAdvancedFilterButton.tsx`:

- Imported `useAtomComponentSelectorValue` and
`rootLevelRecordFilterGroupComponentSelector`
- Imported `useChildRecordFiltersAndRecordFilterGroups`
- Replaced `const advancedFilterQuerySubFilterCount = 0; // TODO` with
the real computed count via the same hook pattern used in
`AdvancedFilterChip.tsx`

The pill badge will now appear on the "Advanced filter" dropdown menu
item showing the number of active advanced filter rules (e.g. "2" when
two rules are active).

## References

- Fixes #20207

---------

Co-authored-by: wadeKeith <wade@twenty.app>
Co-authored-by: Charles Bochet <charles@twenty.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-04 15:08:30 +00:00
Thomas TrompetteandGitHub 95a34d8517 Return false instead of throwing when event stream does not exist (#20165)
## Summary

- When an event stream expires (TTL), `addQueryToEventStream` and
`removeQueryFromEventStream` now return `false` instead of throwing
`EVENT_STREAM_DOES_NOT_EXIST` as an `InternalServerError`
- Frontend checks the mutation return value and triggers the
destroy/recreate cycle, same recovery behavior without the error path
- Removes `EVENT_STREAM_DOES_NOT_EXIST` from exception code, exception
filter, and frontend graceful error check since it's no longer thrown

## Test plan

- [x] Verify that when an event stream TTL expires, the frontend
silently recreates the stream without error noise in logs/Sentry
- [x] Verify that `NOT_AUTHORIZED` errors still throw correctly on both
mutations
- [ ] Verify that the subscription `onEventSubscription` still works
end-to-end with stream creation, query registration, and heartbeat TTL
refresh

Made with [Cursor](https://cursor.com)
2026-05-04 15:06:18 +00:00
MarieandGitHub 4852ac401a Add server upgrade status on admin panel (#20107)
## Summary

Adds an admin upgrade-status panel that surfaces per-instance and
per-workspace migration health, backed by a Redis-cached aggregate to
keep the page snappy on large fleets.

<img width="827" height="880" alt="Screenshot 2026-04-28 at 10 21 03"
src="https://github.com/user-attachments/assets/8f88baa9-7268-4eff-bf6a-906a7f06ca91"
/>
<img width="804" height="892" alt="Screenshot 2026-04-28 at 10 21 11"
src="https://github.com/user-attachments/assets/1e6decf8-766a-4d0e-96b1-03a9962bba3c"
/>


## Computed metrics

**Instance** (`InstanceUpgradeStatus`)
- `inferredVersion` — version derived from the latest non-initial
instance command name
- `health` — `upToDate` | `behind` | `failed`, derived from the latest
attempt vs. the last expected instance step in the upgrade sequence
- `latestCommand` — `{ name, status, executedByVersion, errorMessage,
createdAt }` from the most recent attempt

**Per-workspace** (`WorkspaceUpgradeStatus`)
- `workspaceId`, `displayName`
- `inferredVersion`, `health`, `latestCommand` (same shape as instance),
computed against the latest expected step in the sequence

**Aggregate** (`AllWorkspacesUpgradeStatus`, only across `ACTIVE` /
`SUSPENDED` workspaces)
- `instanceUpgradeStatus`
- `totalCount`, `upToDateCount`, `behindCount`, `failedCount`
- `workspacesBehindIds[]`, `workspacesFailedIds[]`
- `computedAt`

## Fetching strategy

All reads go through `UpgradeStatusCacheService` (cache namespace:
`EngineHealth`).

- **Aggregate read** (`getAllWorkspacesStatus` →
`getAllWorkspacesUpgradeStatus` query):
reads summary + behind-ids + failed-ids in parallel; if any of the three
keys is missing, full recompute (`recomputeAllWorkspaces`) is triggered,
which also primes per-workspace entries.
- **Per-workspace read** (`getWorkspacesStatus(ids)` →
`getUpgradeStatus(ids)` query):
`mget` on workspace keys; misses are recomputed individually
(`recomputeWorkspace`), and aggregates are reconciled in place (count +
id list deltas) without a full recompute.
- **Recompute on demand**: `refreshUpgradeStatus` mutation calls
`recomputeAllWorkspaces` to bypass cache and rewrite all keys.
- **Auto-invalidation**: `InstanceCommandRunnerService` (fast + slow
paths) and `WorkspaceCommandRunnerService` invalidate after every run
via `safeInvalidateUpgradeStatusCache()`
(`flushByPattern('upgrade-status:*')`). Failures in cache invalidation
are swallowed and logged so they never break the migration runner.
- **TTL**: `60 * 60 * 1000` ms (1 hour) on every key — protects against
stale data even if a runner crashes before invalidating.

## Introduced cache keys

All under the `EngineHealth` cache-storage namespace:

| Key | Type | Purpose |
| --- | --- | --- |
| `upgrade-status:all-workspaces:summary` |
`CachedAllWorkspacesStatusSummary` | Counts + instance status +
`computedAt` |
| `upgrade-status:all-workspaces:behind-ids` | `string[]` | Workspace
ids in `behind` state |
| `upgrade-status:all-workspaces:failed-ids` | `string[]` | Workspace
ids in `failed` state |
| `upgrade-status:workspace:<workspaceId>` |
`CachedWorkspaceUpgradeStatus` | Per-workspace status (one key per
workspace) |

Full invalidation uses the pattern `upgrade-status:*`.

## Index added on `upgradeMigration` (already added on prod)

Migration
`2-2-instance-command-fast-1777308014234-addUpgradeMigrationWorkspaceIdIndex.ts`:

```sql
CREATE INDEX "IDX_upgradeMigration_workspaceId_name_attempt"
  ON "core"."upgradeMigration" ("workspaceId", "name", "attempt")
  WHERE "workspaceId" IS NOT NULL;
2026-05-04 15:06:07 +00:00
1cd983a330 fix: handle missing file entity in avatar deletion listener (#20192)
## Problem
When a `workspaceMember` is updated (e.g., theme/locale/avatar changes),
the `WorkspaceMemberAvatarFileDeletionListener` triggers file deletion.
If the referenced file entity doesn't exist in the database, an
unhandled `EntityNotFoundError` crashes the NestJS server, causing a 502
loop.

## Change
Wrap the file deletion call in a try-catch that gracefully handles
`EntityNotFoundError` as a no-op — if the file doesn't exist, there's
nothing to delete.

Fixes #20191.

Made with [Cursor](https://cursor.com)

Co-authored-by: martmull <martmull@hotmail.fr>
2026-05-04 14:58:56 +00:00
37ca09e8f9 i18n - docs translations (#20238)
Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
2026-05-04 17:06:43 +02:00
91124a3cb8 AI - Add azure foundry provider (#20170)
[Merge this before](https://github.com/twentyhq/twenty-infra/pull/655)

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
2026-05-04 14:45:06 +00:00
Paul RastoinandGitHub 41ad63a8ab [DockerFile] Optimize twenty-server deps and build (#20132)
# Introduction

Aiming for faster cd process

## Splitting front end server deps
Reduce dependencies bloating when target is server only, installing only
root repo dev deps and server dev and prod deps

Still pruning before copying to prod node_modules

## Server only remove twenty-ui

Also removing twenty-ui from server build as it was not consumed at all

Depends on https://github.com/twentyhq/twenty/pull/20140
2026-05-04 14:24:52 +00:00
9ddf9af4c4 i18n - translations (#20236)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-05-04 16:18:30 +02:00
3ffda0a29e Add twenty version validation (#20227)
as title, server version is checked before app deploy, and app install
commands

### New section in publishing doc
<img width="1344" height="912" alt="image"
src="https://github.com/user-attachments/assets/2a9335e7-0a7a-4973-a2db-f30f03181001"
/>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-04 13:55:31 +00:00
WeikoandGitHub 0bb345b75f Fix empty record page on system objects for non-English workspace members (#20235)
## Context
Since #19890 (Translate standard page layouts), the server's
`PageLayoutTab.title` resolver translates standard tab titles at query
time. A workspace member in French viewing a `messageChannel` (or any
system object with a standard page layout) receives `tab.title =
"Accueil"` / `"Chronologie"` instead of `"Home"` / `"Timeline"`.

The `SYSTEM_OBJECT_TABS` guard in `PageLayoutTabsRenderer` was comparing
against an English-only literal allow-list, so every tab was dropped,
`sortedTabs` became empty, and `<PageLayoutMainContent />` never mounted
— the record page rendered blank (no fields, timeline, email thread,
etc.).

## Fix
Only run the allow-list filter when the resolved layout is the synthetic
`DEFAULT_RECORD_PAGE_LAYOUT` (the client-side fallback for the few
system objects with no server-side standard page layout config, e.g.
`workspaceMember`, `attachment`, `message`). That layout ships hardcoded
English tabs, so the English allow-list still works in every locale.

System objects that do have a server-side standard page layout
(`messageChannel`, `connectedAccount`, `workflowRun`, …) are no longer
filtered at all, the server only ever persists Home/Timeline/Flow tabs
for them, so no filter is needed.

## Before
<img width="1262" height="722" alt="Screenshot 2026-05-04 at 15 15 54"
src="https://github.com/user-attachments/assets/348c9e9d-0ae1-4046-8ead-470ed8263cb5"
/>


## After
<img width="1281" height="658" alt="Screenshot 2026-05-04 at 15 15 36"
src="https://github.com/user-attachments/assets/7a9953b1-7320-4f1a-8c02-1688d3eda3ae"
/>


## Note
Next step should be to backfill those system objects with real record
page layouts so we can remove this filter logic
2026-05-04 13:36:36 +00:00
3c7c62c79f fix(server): deduplicate @opentelemetry/api to fix NoopMeterProvider (#20231)
## Summary

**All OTel metrics in twenty-server have been silently dropped since
April 30.**

### Root cause

PR #20149 (`bump @sentry/profiling-node 10.27→10.51`) pulled in
`@sentry/node@10.51.0`, which declares `@opentelemetry/api: ^1.9.1` as a
**dependency** (not peer). Yarn installed it as a **nested** copy at
`1.9.1`, while the hoisted copy stayed at `1.9.0`.

At startup in `instrument.ts`:
1. `Sentry.init()` uses the **nested `1.9.1`** to register `trace`,
`propagation`, `context` on the OTel global → global version becomes
**`1.9.1`**
2. `setGlobalMeterProvider()` uses the **hoisted `1.9.0`** →
`registerGlobal` sees version mismatch (`1.9.1` ≠ `1.9.0`) → **silently
returns `false`**
3. Global stays `NoopMeterProvider` → every counter, gauge, and
histogram in the server is a no-op

### What this PR does

1. **Reverts three troubleshooting PRs** that are no longer needed now
that the root cause is identified:
   - #20230 — heartbeat gauge
   - #20228 — OTLP export lifecycle logs
- #20221 — Sentry revert to 10.27 (which never actually downgraded in
`yarn.lock` since `^10.27.0` resolved to `10.51.0`)

2. **Fixes the root cause**:
- Root Yarn resolution pinning `@opentelemetry/api` to `1.9.1` → single
copy in the entire tree, Sentry and Twenty share the same instance
- Named import in `instrument.ts` (`import { metrics as otelMetrics }`
instead of default import) as defense-in-depth against CJS interop
issues

### Verified on dev cluster

Exec'd into the running pod and confirmed:
- `@sentry/node` nests `@opentelemetry/api@1.9.1`, hoisted is `1.9.0`
- `Sentry.init()` → global version `1.9.1` → `setGlobalMeterProvider`
with VERSION `1.9.0` → returns `false` → `NoopMeterProvider`
- Same-version registration returns `true` → `MeterProvider` ✓

## Test plan
- [ ] CI passes (lint, typecheck, build)
- [ ] Deploy to dev cluster and verify metrics flow to collector
- [ ] Confirm `node_modules/@opentelemetry/api/package.json` shows
`1.9.1` with no nested copy under `@sentry/`

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-04 15:15:00 +02:00
Paul RastoinandGitHub 596ce32bd6 Fix front unit test on main (#20233)
Jest mocks runs before the const is defined
2026-05-04 15:14:43 +02:00
d2cfbf319b [Website] Implement translations. (#20171)
As title.

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-04 10:41:46 +00:00
a3cf565ba3 feat(server): add heartbeat gauge + first-export-attempt log for OTLP (#20230)
## Summary
- Adds a trivial always-on observable gauge (`twenty.heartbeat = 1`) so
the OTLP exporter fires on every 10s collection tick, even on idle pods.
Without this, `PeriodicExportingMetricReader` skips the export when
`scopeMetrics` is empty, so the process-log wrapper never runs and we
can't prove OTLP connectivity.
- Adds a one-time "first periodic export attempt" log line inside the
wrapped exporter, completing the startup log sequence: `OTLP reader
enabled` → `first periodic export attempt` → `first export ok` / `export
failed`.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-04 12:30:59 +02:00
Abdul RahmanandGitHub fa8304d323 Fix record table dashboard save (#20202)
## Summary

Fixes `METADATA_VALIDATION_FAILED` / “view field already exists” when
saving dashboard **record table** widgets after the first persist (e.g.
several table widgets on one dashboard).

## Problem

Draft view columns used **client-generated** `viewField` ids. After
save, the API stored **different** ids. The next upsert still sent the
old draft ids as `viewFieldId`. The server only matched on that id,
missed every row, and tried to **create** columns that already existed
for the same `fieldMetadataId` + view.
2026-05-04 09:57:21 +00:00
467ddaa27a feat(server): OTLP metrics export logs for troubleshooting (#20228)
## Summary

Adds **grep-friendly** `console` logging around the OpenTelemetry
metrics OTLP exporter in
[`packages/twenty-server/src/instrument.ts`](packages/twenty-server/src/instrument.ts)
so production / staging can confirm whether the app is exporting metrics
and why exports fail.

## Log format

- Prefix: **`[Twenty OTEL metrics]`** (easy to filter in Loki / `kubectl
logs | grep`).
- **Startup:** whether the OTLP reader is enabled, `exportIntervalMs`,
and endpoint as `protocol//host/path` only (no credentials).
- **First successful export:** one `console.log` per process (`first
export ok`) with metric data point count — avoids spamming every 10s.
- **Each failed export:** `console.warn` with result code, point count,
and serialized error (including nested `AggregateError` causes when
present).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-04 11:44:51 +02:00
fc4cf7fe09 i18n - translations (#20226)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-05-04 11:34:51 +02:00
9e94045fa5 feat(apps): generic OAuth provider support for app SDK (#20181)
## Summary

App developers can now declare third-party OAuth integrations (GitHub,
Linear, Slack, etc.) in their manifest and the platform handles the full
authorize → callback → token-exchange → refresh → injection lifecycle.
The dev writes ~10 lines of config and reads tokens via
`useOAuth('linear')` inside any logic function.

```ts
// app/src/oauth-providers/linear.ts
export default defineOAuthProvider({
  universalIdentifier: '...',
  name: 'linear',
  displayName: 'Linear',
  authorizationEndpoint: 'https://linear.app/oauth/authorize',
  tokenEndpoint: 'https://api.linear.app/oauth/token',
  scopes: ['read', 'write'],
  connectionMode: 'per-user',
  clientIdVariable: 'LINEAR_CLIENT_ID',
  clientSecretVariable: 'LINEAR_CLIENT_SECRET',
  tokenRequestContentType: 'form-urlencoded',
});

// app/src/logic-functions/handlers/...
const { accessToken } = useOAuth('linear'); // throws OAuthNotConnectedError if missing
```

## Architecture

- **Storage**: extends the existing `connectedAccount` table — new
nullable `applicationOAuthProviderId` FK + new `app` value on the
`ConnectedAccountProvider` enum. Existing Google/Microsoft flows are
untouched.
- **OAuth flow**: a single `/apps/oauth/authorize` +
`/apps/oauth/callback` controller pair handles every app provider. State
travels in a JWT signed via the existing `JwtWrapperService` (new
`APP_OAUTH_STATE` token type).
- **Token exchange**: goes through
`SecureHttpClientService.createSsrfSafeFetch()` (so an installed app
can't point `tokenEndpoint` at internal hosts).
- **Refresh**: piggybacks on the existing
`ConnectedAccountRefreshTokensService` dispatch — Google/Microsoft
drivers untouched, new app driver lives engine-side under
`application-oauth-provider/refresh/`.
- **Injection**: the executor injects refreshed tokens as env vars
(`OAUTH_<NAME>_ACCESS_TOKEN`, `_HANDLE`, `_SCOPES`, `_CONNECTED`); the
SDK helpers `useOAuth` / `useOptionalOAuth` read them.
- **Frontend**: auto-rendered "OAuth Connections" section under each
app's settings tab (no custom front component needed). App-managed
connections are filtered out of `/settings/accounts` so the
email/calendar page stays focused.
- **Disconnect**: best-effort revoke against the manifest's
`revokeEndpoint` before deleting the row.

## Reference app

`packages/twenty-apps/internal/twenty-linear/` exercises the full
pipeline:

- `defineOAuthProvider` for Linear
- `POST /linear/create-issue` and `GET /linear/teams` HTTP-route logic
functions
- Vitest tests for the handlers

## Tests

- 14 server-side Jest tests: token-exchange util (form-urlencoded vs
JSON, PKCE, error paths), flow service (authorize URL shape, state
binding, ConnectedAccount upsert on first/reconnect, per-workspace mode,
invalid state)
- 8 app-level Vitest tests: handler error paths, GraphQL request shape,
Linear error propagation
- All 4 packages clean: `npx nx lint:diff-with-main` and `npx tsc
--noEmit`

## Test plan

- [ ] Apply migration on a dev DB: `npx nx run
twenty-server:database:migrate:prod`
- [ ] Regenerate frontend types: `npx nx run
twenty-front:graphql:generate --configuration=metadata`
- [ ] Create a Linear OAuth app at
https://linear.app/settings/api/applications/new with redirect URI
`<SERVER_URL>/apps/oauth/callback`
- [ ] Deploy + install `twenty-linear` on a workspace, paste the Linear
client id/secret into the app's variables
- [ ] Click "Connect Linear" in the app's settings tab → complete OAuth
→ verify `connectedAccount` row created with `provider = 'app'`
- [ ] Trigger `POST /linear/create-issue` with a valid teamId → verify
issue lands in Linear
- [ ] Disconnect → verify the row is deleted and (if Linear's revoke
endpoint is configured in the manifest) the revoke call fires
- [ ] Verify `/settings/accounts` does NOT show the Linear connection —
it appears only under the Linear app's settings tab

## Out of scope (deliberately)

- **Cron + per-user providers**: a cron-triggered function with a
per-user OAuth provider currently returns `CONNECTED=false` (no user
context). The follow-up design is `useOAuthForUser(name,
userWorkspaceId)` paired with a `POST /apps/oauth/connection-token`
endpoint, deferred to keep this PR focused.
- **Token encryption at rest**: tokens stored as plain `varchar`
matching the existing Google/Microsoft pattern. Worth a separate
cross-cutting PR.
- **Manifest endpoint pinning**: a malicious app upgrade could change
`tokenEndpoint` silently. Same trust model as logic-function source code
(which already runs arbitrary server-side); worth tightening across the
whole upgrade pipeline rather than just OAuth.
- **CLI helpers** (`twenty oauth show-callback-url`, `twenty oauth
connect`): manual setup for v1.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-04 11:26:34 +02:00
ff22988caf revert: Sentry #20064 + @sentry 10.27 (prod bisect) (#20221)
## Summary

Reverts **#20064** (`feat(sentry): propagate workspace context to all
spans`) and downgrades **@sentry** packages from **10.51** back to
**10.27** (reversing **#20149**), to validate in production whether
recent Sentry/instrumentation changes correlate with OTLP/metrics
issues.

## Changes

1. **Revert #20064** — removes `beforeSendSpan` from `instrument.ts`,
restores `WorkspaceAuthContextMiddleware` / `BullMQDriver` behavior, and
deletes the three `apply-workspace-sentry-*` utils added in that PR.
2. **Sentry versions** — `packages/twenty-server` (`@sentry/nestjs`,
`@sentry/node`, `@sentry/profiling-node`) and `packages/twenty-front`
(`@sentry/react`) set to `^10.27.0`; `yarn.lock` regenerated via `yarn
install`.

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-04 11:09:48 +02:00
Paul RastoinandGitHub 74cc2b4c87 Twenty email deps (#20223) 2026-05-04 11:09:34 +02:00
Charles BochetandGitHub 7aa2afc67e fix(shared): add uuid, @types/uuid, @types/qs for Docker CD (#20222)
## Summary

- `twenty-shared` imports `uuid` (in `actor.composite-type.ts` and
`createAnyFieldRecordFilterBaseProperties.ts`) and `qs` (in
`getAppPath.ts`, `getSettingsPath.ts`), but `uuid` was not declared in
`twenty-shared/package.json` and `@types/uuid` / `@types/qs` were
missing as devDependencies.
- After scoped/hoisted deps (#20140) those types/runtime came from the
root `package.json` and are no longer guaranteed in the Docker
`common-deps` graph, so `twenty-shared:build` (pulled in before
`twenty-website-new` build) fails with `TS7016: Could not find a
declaration file for module 'uuid' / 'qs'` in the CD pipeline (see
[twenty-infra run
25309442711](https://github.com/twentyhq/twenty-infra/actions/runs/25309442711)).
- Same shape of fix as #20219 which added `@types/lodash.camelcase`.

## Test plan

- [x] `npx nx build twenty-shared` succeeds locally
- [ ] CD pipeline succeeds for `Build website-new`
2026-05-04 11:03:23 +02:00
a025dc368b fix(shared): @types/lodash.camelcase for Docker CD (#20219)
Adds `@types/lodash.camelcase` to `twenty-shared`.

**Why:** `lodash.camelcase` has no bundled types. Those types used to
come from the root `devDependencies`; after scoped/hoisted deps
(#20140), they are no longer guaranteed in the Docker `common-deps`
graph, so `twenty-shared:build` (pulled in before server Lingui) fails
with TS7016. Declaring the types on the package that imports
`lodash.camelcase` fixes CD.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-04 10:40:27 +02:00
5bf7e8b101 test(upgrade): assert sequence-runner error structurally instead of snapshot (#20213)
## Summary

The integration test `should throw when cursor command is not found in
the sequence` in `failing-sequence-runner.integration-spec.ts` used
`toThrowErrorMatchingSnapshot()`. The captured snapshot included the
literal `TWENTY_CROSS_UPGRADE_SUPPORTED_VERSIONS` list from
`upgrade-sequence-reader.service.ts`, which grows by one entry on every
Twenty release. As a result, the snapshot drifted and broke whenever a
new instance command landed (noticed during PR #20181), creating
recurring "snapshot needs updating" churn with no real signal value.

This PR replaces the snapshot assertion with a regex match on the
structural part of the error message:

```ts
).rejects.toThrow(/Step "RemovedCommand" not found in upgrade sequence/);
```

The regex still catches the same class of regressions (the runner
failing to surface a missing-step error) without pinning the version
list. The now-empty snap file is removed (it had only this one entry).

## Test plan

- [ ] CI integration tests pass on this branch
- [ ] No remaining references to the deleted snapshot

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 21:52:27 +02:00
276d4f6e84 fix(code-interpreter): three correctness fixes for the TwentyMCP helper + tool output shape (#20103)
## Summary

Three independently-useful correctness fixes for the `code_interpreter`
tool, all surfaced while standing up a self-hosted code interpreter
against MCP. Each is isolated to one bug and applies regardless of
`CODE_INTERPRETER_TYPE`.

### 1. UI: unwrap `execute_tool` envelope when rendering
`code_interpreter` output

When `code_interpreter` is invoked through MCP's `execute_tool`
meta-tool, the result arrives wrapped: `{success, result: {stdout,
exitCode, files, ...}, ...}`. `ToolStepRenderer` reads `exitCode` at the
top level, which is `undefined` → the step renders as "Failed" even on a
clean `exitCode === 0`. Symmetric to the input-side unwrap that already
exists; the fix lifts `outputObj.result` when `rawToolName ===
'execute_tool'`.

### 2. Helper: route `TwentyMCP.call_tool` through `execute_tool` for
catalog tools

The `TwentyMCP` helper injected into every code-interpreter sandbox
exposes a `call_tool(name, arguments)` method. Direct MCP calls only
work for the 5 meta-tools (`get_tool_catalog`, `learn_tools`,
`execute_tool`, `load_skills`, `search_help_center`); the 250+ catalog
tools are accessed through `execute_tool`. Today
`twenty.call_tool('find_companies', {...})` raises "Unknown tool". This
commit detects catalog tools and auto-routes them through
`execute_tool`. It also flattens the nested `{catalog: {category:
[...]}}` shape returned by `list_tools()` and propagates `{success:
false}` envelopes as explicit exceptions (they were being silently
returned as dicts).

### 3. Prompt: stop the agent from hallucinating \`import twenty\`

Despite the helper being pre-injected, models frequently emitted
\`import twenty\` and crashed with \`ModuleNotFoundError\`. Two
contributing sources: the helper docstring did not explicitly say "do
not import," and the code-interpreter skill template's example block
referenced placeholder tool names. Fix: explicit "DO NOT import twenty"
block in the helper + rewritten skill examples using real tool names and
real response shapes.

## Test plan

- [ ] Existing \`code_interpreter\` tests still pass.
- [ ] Run a chat turn that invokes \`code_interpreter\` indirectly via
MCP \`execute_tool\` and confirm the UI no longer flips to "Failed" on
\`exitCode === 0\`.
- [ ] From inside the sandbox, run \`twenty.call_tool('find_companies',
{limit: 5})\` and confirm records return (was raising "Unknown tool").
- [ ] Confirm \`twenty.list_tools()\` returns a flat list, not the
nested \`{catalog: {...}}\` envelope.
- [ ] Trigger a tool error from inside the sandbox and confirm it raises
rather than returning a \`{success: false}\` dict.
- [ ] Ask an LLM to use \`code_interpreter\`; confirm it does not emit
\`import twenty\`.

---------

Co-authored-by: Félix Malfait <felix@twenty.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
2026-05-03 11:16:53 +02:00
1263 changed files with 42586 additions and 19175 deletions
+32 -31
View File
@@ -106,34 +106,35 @@ Replace `{VERSION}` with the actual version number (e.g., `1.9.0`)
### 2. Create File Structure
**Create changelog file:**
- Path: `packages/twenty-website/src/content/releases/{VERSION}.mdx`
- Example: `packages/twenty-website/src/content/releases/1.9.0.mdx`
- Path: `packages/twenty-website-new/src/content/releases/{VERSION}.mdx`
- Example: `packages/twenty-website-new/src/content/releases/1.9.0.mdx`
**Create image folder:**
- Path: `packages/twenty-website/public/images/releases/{MINOR_VERSION}/`
- Example for version 1.9.0: `packages/twenty-website/public/images/releases/1.9/`
- Example for version 2.0.0: `packages/twenty-website/public/images/releases/2.0/`
- Path: `packages/twenty-website-new/public/images/releases/{MINOR_VERSION}/`
- Example for version 1.9.0: `packages/twenty-website-new/public/images/releases/1.9/`
- Example for version 2.0.0: `packages/twenty-website-new/public/images/releases/2.0/`
```bash
# Create the image folder
mkdir -p packages/twenty-website/public/images/releases/{MINOR_VERSION}
mkdir -p packages/twenty-website-new/public/images/releases/{MINOR_VERSION}
```
### 3. Move Illustration Files
**Source:** `/Users/thomascolasdesfrancs/Downloads/🆕`
**Destination:** `packages/twenty-website/public/images/releases/{MINOR_VERSION}/`
**Destination:** `packages/twenty-website-new/public/images/releases/{MINOR_VERSION}/`
**Naming Convention:** `{VERSION}-descriptive-name.png`
**Naming Convention:** `{VERSION}-descriptive-name.webp`
Examples:
- `1.9.0-feature-name.png`
- `1.9.0-another-feature.png`
- `1.9.0-feature-name.webp`
- `1.9.0-another-feature.webp`
```bash
# Move and rename files
cp ~/Downloads/🆕/source-file.png packages/twenty-website/public/images/releases/{MINOR_VERSION}/{VERSION}-feature-name.png
# Move and rename source files, then convert to webp if needed
cp ~/Downloads/🆕/source-file.png packages/twenty-website-new/public/images/releases/{MINOR_VERSION}/{VERSION}-feature-name.png
cd packages/twenty-website-new && node scripts/convert-png-to-webp.mjs
```
### 4. Research Features (if needed)
@@ -158,19 +159,19 @@ Date: {YYYY-MM-DD}
Short description explaining what the feature does and why it's useful. Keep it user-focused and concise (1-2 sentences).
![](/images/releases/{MINOR_VERSION}/{VERSION}-feature-1.png)
![](/images/releases/{MINOR_VERSION}/{VERSION}-feature-1.webp)
# Feature 2 Name
Another short description of the second feature.
![](/images/releases/{MINOR_VERSION}/{VERSION}-feature-2.png)
![](/images/releases/{MINOR_VERSION}/{VERSION}-feature-2.webp)
# Feature 3 Name
Description of the third feature.
![](/images/releases/{MINOR_VERSION}/{VERSION}-feature-3.png)
![](/images/releases/{MINOR_VERSION}/{VERSION}-feature-3.webp)
```
**Style Guidelines:**
@@ -182,7 +183,7 @@ Description of the third feature.
- **NEVER mention the brand name "Twenty"** in changelog text - use "your workspace", "the platform", or similar neutral references instead
**Reference Previous Changelogs:**
- Check `packages/twenty-website/src/content/releases/` for examples
- Check `packages/twenty-website-new/src/content/releases/` for examples
- Recent releases: 1.7.0.mdx, 1.6.0.mdx, 1.5.0.mdx
### 6. Review
@@ -190,10 +191,10 @@ Description of the third feature.
Open the changelog file for review:
```bash
# Open in Cursor
cursor packages/twenty-website/src/content/releases/{VERSION}.mdx
cursor packages/twenty-website-new/src/content/releases/{VERSION}.mdx
# Open image folder to verify illustrations
open packages/twenty-website/public/images/releases/{MINOR_VERSION}
open packages/twenty-website-new/public/images/releases/{MINOR_VERSION}
```
Review checklist:
@@ -221,8 +222,8 @@ I've created the changelog for version {VERSION}. Here's the content for your re
[Show full MDX content]
Images moved to:
- packages/twenty-website/public/images/releases/{MINOR_VERSION}/{VERSION}-feature-1.png
- packages/twenty-website/public/images/releases/{MINOR_VERSION}/{VERSION}-feature-2.png
- packages/twenty-website-new/public/images/releases/{MINOR_VERSION}/{VERSION}-feature-1.webp
- packages/twenty-website-new/public/images/releases/{MINOR_VERSION}/{VERSION}-feature-2.webp
Please review the content. Once you approve, I'll commit the changes and create the pull request.
```
@@ -241,8 +242,8 @@ Possible user responses:
git status
# Add files
git add packages/twenty-website/src/content/releases/{VERSION}.mdx
git add packages/twenty-website/public/images/releases/{MINOR_VERSION}/
git add packages/twenty-website-new/src/content/releases/{VERSION}.mdx
git add packages/twenty-website-new/public/images/releases/{MINOR_VERSION}/
# Commit
git commit -m "Add {VERSION} release changelog"
@@ -265,7 +266,7 @@ This release includes:
- Feature 2
- Feature 3
Changelog file: \`packages/twenty-website/src/content/releases/{VERSION}.mdx\`
Changelog file: \`packages/twenty-website-new/src/content/releases/{VERSION}.mdx\`
Release date: {DATE}" \
--base main \
--head {VERSION}
@@ -279,21 +280,21 @@ Or visit: `https://github.com/twentyhq/twenty/pull/new/{VERSION}`
- **Format**: `{MAJOR}.{MINOR}.{PATCH}.mdx`
- **Convention**: One file per complete version
- **Examples**: `1.6.0.mdx`, `1.7.0.mdx`, `2.0.0.mdx`
- **Location**: `packages/twenty-website/src/content/releases/`
- **Location**: `packages/twenty-website-new/src/content/releases/`
### Image Folders
- **Format**: `{MAJOR}.{MINOR}/`
- **Convention**: One folder per minor version (shared across patches)
- **Examples**: `1.6/`, `1.7/`, `2.0/`
- **Location**: `packages/twenty-website/public/images/releases/`
- **Location**: `packages/twenty-website-new/public/images/releases/`
### Image Files
- **Format**: `{VERSION}-descriptive-name.png`
- **Format**: `{VERSION}-descriptive-name.webp`
- **Convention**: Kebab-case descriptive names
- **Examples**:
- `1.8.0-workflow-iterator.png`
- `1.8.0-bulk-select.png`
- `1.9.0-new-feature.png`
- `1.8.0-workflow-iterator.webp`
- `1.8.0-bulk-select.webp`
- `1.9.0-new-feature.webp`
## Quick Reference Template
@@ -310,8 +311,8 @@ Features to document:
3. ___________________________
Branch name: {VERSION}
Changelog path: packages/twenty-website/src/content/releases/{VERSION}.mdx
Images path: packages/twenty-website/public/images/releases/{MINOR_VERSION}/
Changelog path: packages/twenty-website-new/src/content/releases/{VERSION}.mdx
Images path: packages/twenty-website-new/public/images/releases/{MINOR_VERSION}/
```
## Tips
+12 -13
View File
@@ -4,20 +4,19 @@
# See https://crowdin.github.io/crowdin-cli/configuration for more information
#
"preserve_hierarchy": true
"base_path": ".."
files: [
{
#
# Source files filter - PO files for Lingui
#
"source": "**/en.po",
preserve_hierarchy: true
base_path: ..
files:
#
# Source files filter - PO files for Lingui
#
- source: packages/twenty-front/src/locales/en.po
#
# Translation files path
#
"translation": "%original_path%/%locale%.po",
}
]
translation: '%original_path%/%locale%.po'
- source: packages/twenty-server/src/engine/core-modules/i18n/locales/en.po
translation: '%original_path%/%locale%.po'
- source: packages/twenty-emails/src/locales/en.po
translation: '%original_path%/%locale%.po'
+23
View File
@@ -0,0 +1,23 @@
#
# Crowdin CLI configuration for Website translations (twenty-website-new)
# Project ID: 4
# See https://crowdin.github.io/crowdin-cli/configuration for more information
#
project_id: 4
preserve_hierarchy: true
base_url: 'https://twenty.api.crowdin.com'
base_path: ..
languages_mapping:
locale:
fr: fr-FR
files:
#
# Source file - PO file for Lingui
#
- source: packages/twenty-website-new/src/locales/en.po
#
# Translation files path
#
translation: '%original_path%/%locale%.po'
+25 -38
View File
@@ -1,12 +1,12 @@
name: CI Website
permissions:
contents: read
on:
pull_request:
merge_group:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
@@ -18,53 +18,40 @@ jobs:
with:
files: |
package.json
packages/twenty-website/**
website-build:
yarn.lock
packages/twenty-website-new/**
packages/twenty-shared/**
website-task:
needs: changed-files-check
if: needs.changed-files-check.outputs.any_changed == 'true'
timeout-minutes: 10
timeout-minutes: 30
runs-on: ubuntu-latest
services:
postgres:
image: postgres:18
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
NODE_OPTIONS: '--max-old-space-size=6144'
strategy:
matrix:
task: [lint, typecheck, test]
steps:
- uses: actions/checkout@v4
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.11.0
with:
access_token: ${{ github.token }}
- name: Fetch custom Github Actions and base branch history
uses: actions/checkout@v4
with:
fetch-depth: 10
- name: Install dependencies
uses: ./.github/actions/yarn-install
- name: Server / Create DB
run: PGPASSWORD=postgres psql -h localhost -p 5432 -U postgres -d postgres -c 'CREATE DATABASE "default";'
- name: Website / Run migrations
run: npx nx database:migrate twenty-website
env:
DATABASE_PG_URL: postgres://postgres:postgres@localhost:5432/default
- name: Website / Build Website
run: npx nx build twenty-website
env:
DATABASE_PG_URL: postgres://postgres:postgres@localhost:5432/default
KEYSTATIC_GITHUB_CLIENT_ID: xxx
KEYSTATIC_GITHUB_CLIENT_SECRET: xxx
KEYSTATIC_SECRET: xxx
NEXT_PUBLIC_KEYSTATIC_GITHUB_APP_SLUG: xxx
- name: Run ${{ matrix.task }} task
uses: ./.github/actions/nx-affected
with:
tag: scope:website
tasks: ${{ matrix.task }}
ci-website-status-check:
if: always() && !cancelled()
timeout-minutes: 5
runs-on: ubuntu-latest
needs: [changed-files-check, website-build]
needs: [changed-files-check, website-task]
steps:
- name: Fail job if any needs failed
if: contains(needs.*.result, 'failure')
-4
View File
@@ -58,7 +58,6 @@ jobs:
npx nx run twenty-server:lingui:compile --strict
npx nx run twenty-emails:lingui:compile --strict
npx nx run twenty-front:lingui:compile --strict
npx nx run twenty-website-new:lingui:compile --strict
continue-on-error: true
- name: Stash any changes before pulling translations
@@ -75,8 +74,6 @@ jobs:
upload_sources: false
upload_translations: false
download_translations: true
source: '**/en.po'
translation: '%original_path%/%locale%.po'
export_only_approved: false
localization_branch_name: i18n
base_url: 'https://twenty.api.crowdin.com'
@@ -116,7 +113,6 @@ jobs:
npx nx run twenty-server:lingui:compile
npx nx run twenty-emails:lingui:compile
npx nx run twenty-front:lingui:compile
npx nx run twenty-website-new:lingui:compile
git status
git add .
if ! git diff --staged --quiet --exit-code; then
-2
View File
@@ -41,7 +41,6 @@ jobs:
npx nx run twenty-server:lingui:extract
npx nx run twenty-emails:lingui:extract
npx nx run twenty-front:lingui:extract
npx nx run twenty-website-new:lingui:extract
- name: Check and commit extracted files
id: check_extract_changes
@@ -61,7 +60,6 @@ jobs:
npx nx run twenty-server:lingui:compile
npx nx run twenty-emails:lingui:compile
npx nx run twenty-front:lingui:compile
npx nx run twenty-website-new:lingui:compile
- name: Check and commit compiled files
id: check_compile_changes
+135
View File
@@ -0,0 +1,135 @@
# Pull down website translations from Crowdin every two hours or when triggered manually.
# When force_pull input is true, translations will be pulled regardless of compilation status.
name: 'Pull website translations from Crowdin'
permissions:
contents: write
pull-requests: write
on:
schedule:
- cron: '0 */2 * * *' # Every two hours.
workflow_dispatch:
inputs:
force_pull:
description: 'Force pull translations regardless of compilation status'
required: false
type: boolean
default: false
workflow_call:
inputs:
force_pull:
description: 'Force pull translations regardless of compilation status'
required: false
type: boolean
default: false
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
pull_website_translations:
name: Pull website translations
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
token: ${{ github.token }}
ref: ${{ github.head_ref || github.ref_name }}
- name: Setup website i18n branch
run: |
git fetch origin i18n-website || true
git checkout -B i18n-website origin/i18n-website || git checkout -b i18n-website
- name: Install dependencies
uses: ./.github/actions/yarn-install
- name: Build twenty-shared
run: npx nx build twenty-shared
# Strict mode fails if there are missing website translations.
- name: Compile website translations
id: compile_translations_strict
run: npx nx run twenty-website-new:lingui:compile --strict
continue-on-error: true
- name: Stash any changes before pulling translations
run: |
git config --global user.name 'github-actions'
git config --global user.email 'github-actions@twenty.com'
git add .
git stash
- name: Pull website translations from Crowdin
if: inputs.force_pull || steps.compile_translations_strict.outcome == 'failure'
uses: crowdin/github-action@v2
with:
upload_sources: false
upload_translations: false
download_translations: true
source: 'packages/twenty-website-new/src/locales/en.po'
translation: 'packages/twenty-website-new/src/locales/%locale%.po'
export_only_approved: false
localization_branch_name: i18n-website
base_url: 'https://twenty.api.crowdin.com'
auto_approve_imported: false
import_eq_suggestions: false
download_sources: false
push_sources: false
skip_untranslated_strings: false
skip_untranslated_files: false
push_translations: false
create_pull_request: false
skip_ref_checkout: true
dryrun_action: false
config: '.github/crowdin-website.yml'
env:
GITHUB_TOKEN: ${{ github.token }}
# Website translations project
CROWDIN_PROJECT_ID: '4'
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
# As the files are extracted from a Docker container, they belong to root:root.
# We need to fix this before the next steps.
- name: Fix file permissions
run: sudo chown -R runner:docker .
- name: Compile website translations
id: compile_translations
run: |
npx nx run twenty-website-new:lingui:compile
git status
git add packages/twenty-website-new/src/locales
if ! git diff --staged --quiet --exit-code; then
git commit -m "chore: compile website translations"
echo "changes_detected=true" >> $GITHUB_OUTPUT
else
echo "changes_detected=false" >> $GITHUB_OUTPUT
fi
- name: Push changes
if: steps.compile_translations.outputs.changes_detected == 'true'
run: git push origin HEAD:i18n-website
- name: Create pull request
if: steps.compile_translations.outputs.changes_detected == 'true'
run: |
if git diff --name-only origin/main..HEAD | grep -q .; then
gh pr create -B main -H i18n-website --title 'i18n - website translations' --body 'Created by Github action' || true
else
echo "No file differences between branches, skipping PR creation"
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Trigger i18n automerge
if: steps.compile_translations.outputs.changes_detected == 'true'
uses: peter-evans/repository-dispatch@v2
with:
token: ${{ secrets.TWENTY_INFRA_TOKEN }}
repository: twentyhq/twenty-infra
event-type: i18n-pr-ready
+111
View File
@@ -0,0 +1,111 @@
name: 'Push website translations to Crowdin'
permissions:
contents: write
pull-requests: write
on:
workflow_dispatch:
workflow_call:
push:
branches: ['main']
paths:
- 'packages/twenty-website-new/**'
- '.github/crowdin-website.yml'
- '.github/workflows/website-i18n-push.yaml'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
extract_website_translations:
name: Extract and upload website translations
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
token: ${{ github.token }}
ref: main
- name: Setup website i18n branch
run: |
git fetch origin i18n-website || true
git checkout -B i18n-website origin/i18n-website || git checkout -b i18n-website
- name: Install dependencies
uses: ./.github/actions/yarn-install
- name: Build dependencies
run: npx nx build twenty-shared
- name: Extract website translations
run: npx nx run twenty-website-new:lingui:extract
- name: Check and commit extracted files
id: check_extract_changes
run: |
git config --global user.name 'github-actions'
git config --global user.email 'github-actions@twenty.com'
git add packages/twenty-website-new/src/locales
if ! git diff --staged --quiet --exit-code; then
git commit -m "chore: extract website translations"
echo "changes_detected=true" >> $GITHUB_OUTPUT
else
echo "changes_detected=false" >> $GITHUB_OUTPUT
fi
- name: Compile website translations
run: npx nx run twenty-website-new:lingui:compile
- name: Check and commit compiled files
id: check_compile_changes
run: |
git config --global user.name 'github-actions'
git config --global user.email 'github-actions@twenty.com'
git add packages/twenty-website-new/src/locales/generated
if ! git diff --staged --quiet --exit-code; then
git commit -m "chore: compile website translations"
echo "changes_detected=true" >> $GITHUB_OUTPUT
else
echo "changes_detected=false" >> $GITHUB_OUTPUT
fi
- name: Push changes and create remote branch if needed
if: steps.check_extract_changes.outputs.changes_detected == 'true' || steps.check_compile_changes.outputs.changes_detected == 'true'
run: git push origin HEAD:i18n-website
- name: Upload missing website translations
if: steps.check_extract_changes.outputs.changes_detected == 'true'
uses: crowdin/github-action@v2
with:
upload_sources: true
upload_translations: true
download_translations: false
localization_branch_name: i18n-website
base_url: 'https://twenty.api.crowdin.com'
config: '.github/crowdin-website.yml'
env:
# Website translations project
CROWDIN_PROJECT_ID: '4'
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
- name: Create a pull request
if: steps.check_extract_changes.outputs.changes_detected == 'true' || steps.check_compile_changes.outputs.changes_detected == 'true'
run: |
if git diff --name-only origin/main..HEAD | grep -q .; then
gh pr create -B main -H i18n-website --title 'i18n - website translations' --body 'Created by Github action' || true
else
echo "No file differences between branches, skipping PR creation"
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Trigger i18n automerge
if: steps.check_extract_changes.outputs.changes_detected == 'true' || steps.check_compile_changes.outputs.changes_detected == 'true'
uses: peter-evans/repository-dispatch@v2
with:
token: ${{ secrets.TWENTY_INFRA_TOKEN }}
repository: twentyhq/twenty-infra
event-type: i18n-pr-ready
+2 -1
View File
@@ -110,7 +110,8 @@ packages/
├── twenty-ui/ # Shared UI components library
├── twenty-shared/ # Common types and utilities
├── twenty-emails/ # Email templates with React Email
├── twenty-website/ # Next.js documentation website
├── twenty-website-new/ # Next.js marketing website
├── twenty-docs/ # Documentation website
├── twenty-zapier/ # Zapier integration
└── twenty-e2e-testing/ # Playwright E2E tests
```
+43 -43
View File
@@ -1,19 +1,19 @@
<p align="center">
<a href="https://www.twenty.com">
<img src="./packages/twenty-website/public/images/core/logo.svg" width="100px" alt="Twenty logo" />
<img src="./packages/twenty-website-new/public/images/core/logo.svg" width="100px" alt="Twenty logo" />
</a>
</p>
<h2 align="center" >The #1 Open-Source CRM</h2>
<p align="center"><a href="https://twenty.com"><img src="./packages/twenty-website/public/images/readme/globe-icon.svg" width="12" height="12"/> Website</a> · <a href="https://docs.twenty.com"><img src="./packages/twenty-website/public/images/readme/book-icon.svg" width="12" height="12"/> Documentation</a> · <a href="https://github.com/orgs/twentyhq/projects/1"><img src="./packages/twenty-website/public/images/readme/map-icon.svg" width="12" height="12"/> Roadmap </a> · <a href="https://discord.gg/cx5n4Jzs57"><img src="./packages/twenty-website/public/images/readme/discord-icon.svg" width="12" height="12"/> Discord</a> · <a href="https://www.figma.com/file/xt8O9mFeLl46C5InWwoMrN/Twenty"><img src="./packages/twenty-website/public/images/readme/figma-icon.png" width="12" height="12"/> Figma</a></p>
<p align="center"><a href="https://twenty.com"><img src="./packages/twenty-website-new/public/images/readme/globe-icon.svg" width="12" height="12"/> Website</a> · <a href="https://docs.twenty.com"><img src="./packages/twenty-website-new/public/images/readme/book-icon.svg" width="12" height="12"/> Documentation</a> · <a href="https://github.com/orgs/twentyhq/projects/1"><img src="./packages/twenty-website-new/public/images/readme/map-icon.svg" width="12" height="12"/> Roadmap </a> · <a href="https://discord.gg/cx5n4Jzs57"><img src="./packages/twenty-website-new/public/images/readme/discord-icon.svg" width="12" height="12"/> Discord</a> · <a href="https://www.figma.com/file/xt8O9mFeLl46C5InWwoMrN/Twenty"><img src="./packages/twenty-website-new/public/images/readme/figma-icon.png" width="12" height="12"/> Figma</a></p>
<p align="center">
<a href="https://www.twenty.com">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website/public/images/readme/github-cover-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website/public/images/readme/github-cover-light.png" />
<img src="./packages/twenty-website/public/images/readme/github-cover-light.png" alt="Twenty banner" />
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/github-cover-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/github-cover-light.png" />
<img src="./packages/twenty-website-new/public/images/readme/github-cover-light.png" alt="Twenty banner" />
</picture>
</a>
</p>
@@ -24,17 +24,17 @@
Twenty gives technical teams the building blocks for a custom CRM that meets complex business needs and quickly adapts as the business evolves. Twenty is the CRM you build, ship, and version like the rest of your stack.
<a href="https://twenty.com/why-twenty"><img src="./packages/twenty-website/public/images/readme/star-icon.svg" width="14" height="14"/> Learn more about why we built Twenty</a>
<a href="https://twenty.com/why-twenty"><img src="./packages/twenty-website-new/public/images/readme/star-icon.svg" width="14" height="14"/> Learn more about why we built Twenty</a>
<br />
# Installation
### <img src="./packages/twenty-website/public/images/readme/globe-icon.svg" width="14" height="14"/> Cloud
### <img src="./packages/twenty-website-new/public/images/readme/globe-icon.svg" width="14" height="14"/> Cloud
The fastest way to get started. Sign up at [twenty.com](https://twenty.com) and spin up a workspace in under a minute, with no infrastructure to manage and always up to date.
### <img src="./packages/twenty-website/public/images/readme/book-icon.svg" width="14" height="14"/> Build an app
### <img src="./packages/twenty-website-new/public/images/readme/book-icon.svg" width="14" height="14"/> Build an app
Scaffold a new app with the Twenty CLI:
@@ -68,7 +68,7 @@ npx twenty deploy
See the [app development guide](https://docs.twenty.com/developers/extend/apps/getting-started) for objects, views, agents, and logic functions.
### <img src="./packages/twenty-website/public/images/readme/rocket-icon.svg" width="14" height="14"/> Self-hosting
### <img src="./packages/twenty-website-new/public/images/readme/rocket-icon.svg" width="14" height="14"/> Self-hosting
Run Twenty on your own infrastructure with [Docker Compose](https://docs.twenty.com/developers/self-host/capabilities/docker-compose), or contribute locally via the [local setup guide](https://docs.twenty.com/developers/contribute/capabilities/local-setup).
@@ -79,61 +79,61 @@ Run Twenty on your own infrastructure with [Docker Compose](https://docs.twenty.
Twenty gives you the building blocks of a modern CRM (objects, views, workflows, and agents) and lets you extend them as code. Here's a tour of what's in the box.
Want to go deeper? Read the <a href="https://docs.twenty.com/user-guide/introduction"><img src="./packages/twenty-website/public/images/readme/planner-icon.svg" width="14" height="14"/> User Guide</a> for product walkthroughs, or the <a href="https://docs.twenty.com"><img src="./packages/twenty-website/public/images/readme/book-icon.svg" width="14" height="14"/> Documentation</a> for developer reference.
Want to go deeper? Read the <a href="https://docs.twenty.com/user-guide/introduction"><img src="./packages/twenty-website-new/public/images/readme/planner-icon.svg" width="14" height="14"/> User Guide</a> for product walkthroughs, or the <a href="https://docs.twenty.com"><img src="./packages/twenty-website-new/public/images/readme/book-icon.svg" width="14" height="14"/> Documentation</a> for developer reference.
<table align="center">
<tr>
<td width="50%">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website/public/images/readme/v2-build-apps-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website/public/images/readme/v2-build-apps-light.png" />
<img src="./packages/twenty-website/public/images/readme/v2-build-apps-light.png" alt="Create your apps" />
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/v2-build-apps-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/v2-build-apps-light.png" />
<img src="./packages/twenty-website-new/public/images/readme/v2-build-apps-light.png" alt="Create your apps" />
</picture>
<p align="center"><a href="https://docs.twenty.com/developers/extend/apps/getting-started"><img src="./packages/twenty-website/public/images/readme/code-icon.svg" width="16" height="16"/> Learn more about apps in doc</a></p>
<p align="center"><a href="https://docs.twenty.com/developers/extend/apps/getting-started"><img src="./packages/twenty-website-new/public/images/readme/code-icon.svg" width="16" height="16"/> Learn more about apps in doc</a></p>
</td>
<td width="50%">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website/public/images/readme/v2-version-control-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website/public/images/readme/v2-version-control-light.png" />
<img src="./packages/twenty-website/public/images/readme/v2-version-control-light.png" alt="Stay on top with version control" />
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/v2-version-control-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/v2-version-control-light.png" />
<img src="./packages/twenty-website-new/public/images/readme/v2-version-control-light.png" alt="Stay on top with version control" />
</picture>
<p align="center"><a href="https://docs.twenty.com/developers/extend/apps/publishing"><img src="./packages/twenty-website/public/images/readme/monitor-icon.svg" width="16" height="16"/> Learn more about version control in doc</a></p>
<p align="center"><a href="https://docs.twenty.com/developers/extend/apps/publishing"><img src="./packages/twenty-website-new/public/images/readme/monitor-icon.svg" width="16" height="16"/> Learn more about version control in doc</a></p>
</td>
</tr>
<tr>
<td width="50%">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website/public/images/readme/v2-all-tools-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website/public/images/readme/v2-all-tools-light.png" />
<img src="./packages/twenty-website/public/images/readme/v2-all-tools-light.png" alt="All the tools you need to build anything" />
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/v2-all-tools-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/v2-all-tools-light.png" />
<img src="./packages/twenty-website-new/public/images/readme/v2-all-tools-light.png" alt="All the tools you need to build anything" />
</picture>
<p align="center"><a href="https://docs.twenty.com/developers/extend/apps/building"><img src="./packages/twenty-website/public/images/readme/rocket-icon.svg" width="16" height="16"/> Learn more about primitives in doc</a></p>
<p align="center"><a href="https://docs.twenty.com/developers/extend/apps/building"><img src="./packages/twenty-website-new/public/images/readme/rocket-icon.svg" width="16" height="16"/> Learn more about primitives in doc</a></p>
</td>
<td width="50%">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website/public/images/readme/v2-tools-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website/public/images/readme/v2-tools-light.png" />
<img src="./packages/twenty-website/public/images/readme/v2-tools-light.png" alt="Customize your layouts" />
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/v2-tools-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/v2-tools-light.png" />
<img src="./packages/twenty-website-new/public/images/readme/v2-tools-light.png" alt="Customize your layouts" />
</picture>
<p align="center"><a href="https://docs.twenty.com/user-guide/layout/overview"><img src="./packages/twenty-website/public/images/readme/planner-icon.svg" width="16" height="16"/> Learn more about layouts in doc</a></p>
<p align="center"><a href="https://docs.twenty.com/user-guide/layout/overview"><img src="./packages/twenty-website-new/public/images/readme/planner-icon.svg" width="16" height="16"/> Learn more about layouts in doc</a></p>
</td>
</tr>
<tr>
<td width="50%">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website/public/images/readme/v2-ai-agents-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website/public/images/readme/v2-ai-agents-light.png" />
<img src="./packages/twenty-website/public/images/readme/v2-ai-agents-light.png" alt="AI agents and chats" />
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/v2-ai-agents-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/v2-ai-agents-light.png" />
<img src="./packages/twenty-website-new/public/images/readme/v2-ai-agents-light.png" alt="AI agents and chats" />
</picture>
<p align="center"><a href="https://docs.twenty.com/user-guide/ai/overview"><img src="./packages/twenty-website/public/images/readme/message-icon.svg" width="16" height="16"/> Learn more about AI in doc</a></p>
<p align="center"><a href="https://docs.twenty.com/user-guide/ai/overview"><img src="./packages/twenty-website-new/public/images/readme/message-icon.svg" width="16" height="16"/> Learn more about AI in doc</a></p>
</td>
<td width="50%">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website/public/images/readme/v2-crm-tools-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website/public/images/readme/v2-crm-tools-light.png" />
<img src="./packages/twenty-website/public/images/readme/v2-crm-tools-light.png" alt="Plus all the tools of a good CRM" />
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/v2-crm-tools-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/v2-crm-tools-light.png" />
<img src="./packages/twenty-website-new/public/images/readme/v2-crm-tools-light.png" alt="Plus all the tools of a good CRM" />
</picture>
<p align="center"><a href="https://docs.twenty.com/user-guide/introduction"><img src="./packages/twenty-website/public/images/readme/star-icon.svg" width="16" height="16"/> Learn more about CRM features in doc</a></p>
<p align="center"><a href="https://docs.twenty.com/user-guide/introduction"><img src="./packages/twenty-website-new/public/images/readme/star-icon.svg" width="16" height="16"/> Learn more about CRM features in doc</a></p>
</td>
</tr>
</table>
@@ -142,23 +142,23 @@ Want to go deeper? Read the <a href="https://docs.twenty.com/user-guide/introduc
# Stack
- <a href="https://www.typescriptlang.org/"><img src="./packages/twenty-website/public/images/readme/stack-typescript.svg" width="14" height="14"/> TypeScript</a>
- <a href="https://nx.dev/"><img src="./packages/twenty-website/public/images/readme/stack-nx.svg" width="14" height="14"/> Nx</a>
- <a href="https://nestjs.com/"><img src="./packages/twenty-website/public/images/readme/stack-nestjs.svg" width="14" height="14"/> NestJS</a>, with <a href="https://bullmq.io/">BullMQ</a>, <a href="https://www.postgresql.org/"><img src="./packages/twenty-website/public/images/readme/stack-postgresql.svg" width="14" height="14"/> PostgreSQL</a>, <a href="https://redis.io/"><img src="./packages/twenty-website/public/images/readme/stack-redis.svg" width="14" height="14"/> Redis</a>
- <a href="https://reactjs.org/"><img src="./packages/twenty-website/public/images/readme/stack-react.svg" width="14" height="14"/> React</a>, with <a href="https://jotai.org/">Jotai</a>, <a href="https://linaria.dev/">Linaria</a> and <a href="https://lingui.dev/">Lingui</a>
- <a href="https://www.typescriptlang.org/"><img src="./packages/twenty-website-new/public/images/readme/stack-typescript.svg" width="14" height="14"/> TypeScript</a>
- <a href="https://nx.dev/"><img src="./packages/twenty-website-new/public/images/readme/stack-nx.svg" width="14" height="14"/> Nx</a>
- <a href="https://nestjs.com/"><img src="./packages/twenty-website-new/public/images/readme/stack-nestjs.svg" width="14" height="14"/> NestJS</a>, with <a href="https://bullmq.io/">BullMQ</a>, <a href="https://www.postgresql.org/"><img src="./packages/twenty-website-new/public/images/readme/stack-postgresql.svg" width="14" height="14"/> PostgreSQL</a>, <a href="https://redis.io/"><img src="./packages/twenty-website-new/public/images/readme/stack-redis.svg" width="14" height="14"/> Redis</a>
- <a href="https://reactjs.org/"><img src="./packages/twenty-website-new/public/images/readme/stack-react.svg" width="14" height="14"/> React</a>, with <a href="https://jotai.org/">Jotai</a>, <a href="https://linaria.dev/">Linaria</a> and <a href="https://lingui.dev/">Lingui</a>
# Thanks
<p align="center">
<a href="https://www.chromatic.com/"><img src="./packages/twenty-website/public/images/readme/chromatic.png" height="28" alt="Chromatic" /></a>
<a href="https://www.chromatic.com/"><img src="./packages/twenty-website-new/public/images/readme/chromatic.png" height="28" alt="Chromatic" /></a>
&nbsp;&nbsp;&nbsp;&nbsp;
<a href="https://greptile.com"><img src="./packages/twenty-website/public/images/readme/greptile.png" height="28" alt="Greptile" /></a>
<a href="https://greptile.com"><img src="./packages/twenty-website-new/public/images/readme/greptile.png" height="28" alt="Greptile" /></a>
&nbsp;&nbsp;&nbsp;&nbsp;
<a href="https://sentry.io/"><img src="./packages/twenty-website/public/images/readme/sentry.png" height="28" alt="Sentry" /></a>
<a href="https://sentry.io/"><img src="./packages/twenty-website-new/public/images/readme/sentry.png" height="28" alt="Sentry" /></a>
&nbsp;&nbsp;&nbsp;&nbsp;
<a href="https://crowdin.com/"><img src="./packages/twenty-website/public/images/readme/crowdin.png" height="28" alt="Crowdin" /></a>
<a href="https://crowdin.com/"><img src="./packages/twenty-website-new/public/images/readme/crowdin.png" height="28" alt="Crowdin" /></a>
</p>
Thanks to these amazing services that we use and recommend for UI testing (Chromatic), code review (Greptile), catching bugs (Sentry) and translating (Crowdin).
@@ -166,4 +166,4 @@ Want to go deeper? Read the <a href="https://docs.twenty.com/user-guide/introduc
# Join the Community
<p><a href="https://github.com/twentyhq/twenty"><img src="./packages/twenty-website/public/images/readme/star-icon.svg" width="12" height="12"/> Star the repo</a> · <a href="https://discord.gg/cx5n4Jzs57"><img src="./packages/twenty-website/public/images/readme/discord-icon.svg" width="12" height="12"/> Discord</a> · <a href="https://github.com/twentyhq/twenty/discussions"><img src="./packages/twenty-website/public/images/readme/message-icon.svg" width="12" height="12"/> Feature requests</a> · <a href="https://github.com/orgs/twentyhq/projects/1/views/35"><img src="./packages/twenty-website/public/images/readme/rocket-icon.svg" width="12" height="12"/> Releases</a> · <a href="https://twitter.com/twentycrm"><img src="./packages/twenty-website/public/images/readme/x-icon.svg" width="12" height="12"/> X</a> · <a href="https://www.linkedin.com/company/twenty/"><img src="./packages/twenty-website/public/images/readme/linkedin-icon.svg" width="12" height="12"/> LinkedIn</a> · <a href="https://twenty.crowdin.com/twenty"><img src="./packages/twenty-website/public/images/readme/language-icon.svg" width="12" height="12"/> Crowdin</a> · <a href="https://github.com/twentyhq/twenty/contribute"><img src="./packages/twenty-website/public/images/readme/code-icon.svg" width="12" height="12"/> Contribute</a></p>
<p><a href="https://github.com/twentyhq/twenty"><img src="./packages/twenty-website-new/public/images/readme/star-icon.svg" width="12" height="12"/> Star the repo</a> · <a href="https://discord.gg/cx5n4Jzs57"><img src="./packages/twenty-website-new/public/images/readme/discord-icon.svg" width="12" height="12"/> Discord</a> · <a href="https://github.com/twentyhq/twenty/discussions"><img src="./packages/twenty-website-new/public/images/readme/message-icon.svg" width="12" height="12"/> Feature requests</a> · <a href="https://github.com/orgs/twentyhq/projects/1/views/35"><img src="./packages/twenty-website-new/public/images/readme/rocket-icon.svg" width="12" height="12"/> Releases</a> · <a href="https://twitter.com/twentycrm"><img src="./packages/twenty-website-new/public/images/readme/x-icon.svg" width="12" height="12"/> X</a> · <a href="https://www.linkedin.com/company/twenty/"><img src="./packages/twenty-website-new/public/images/readme/linkedin-icon.svg" width="12" height="12"/> LinkedIn</a> · <a href="https://twenty.crowdin.com/twenty"><img src="./packages/twenty-website-new/public/images/readme/language-icon.svg" width="12" height="12"/> Crowdin</a> · <a href="https://github.com/twentyhq/twenty/contribute"><img src="./packages/twenty-website-new/public/images/readme/code-icon.svg" width="12" height="12"/> Contribute</a></p>
+4 -2
View File
@@ -9,9 +9,11 @@
"@nx/web": "22.5.4",
"@types/react": "^18.2.39",
"@types/react-dom": "^18.2.15",
"@yarnpkg/types": "^4.0.0",
"concurrently": "^8.2.2",
"http-server": "^14.1.1",
"nx": "22.5.4",
"tsx": "^4.17.0",
"verdaccio": "^6.3.1"
},
"engines": {
@@ -31,7 +33,8 @@
"@lingui/core": "5.1.2",
"@types/qs": "6.9.16",
"@wyw-in-js/transform@npm:0.6.0": "patch:@wyw-in-js/transform@npm%3A0.7.0#~/.yarn/patches/@wyw-in-js-transform-npm-0.7.0-ba641dc99f.patch",
"@wyw-in-js/transform@npm:0.7.0": "patch:@wyw-in-js/transform@npm%3A0.7.0#~/.yarn/patches/@wyw-in-js-transform-npm-0.7.0-ba641dc99f.patch"
"@wyw-in-js/transform@npm:0.7.0": "patch:@wyw-in-js/transform@npm%3A0.7.0#~/.yarn/patches/@wyw-in-js-transform-npm-0.7.0-ba641dc99f.patch",
"@opentelemetry/api": "1.9.1"
},
"version": "0.2.1",
"nx": {},
@@ -49,7 +52,6 @@
"packages/twenty-ui",
"packages/twenty-utils",
"packages/twenty-zapier",
"packages/twenty-website",
"packages/twenty-website-new",
"packages/twenty-docs",
"packages/twenty-e2e-testing",
+1 -1
View File
@@ -1,7 +1,7 @@
<div align="center">
<a href="https://twenty.com">
<picture>
<img alt="Twenty logo" src="https://raw.githubusercontent.com/twentyhq/twenty/2f25922f4cd5bd61e1427c57c4f8ea224e1d552c/packages/twenty-website/public/images/core/logo.svg" height="128">
<img alt="Twenty logo" src="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-website-new/public/images/core/logo.svg" height="128">
</picture>
</a>
<h1>Create Twenty App</h1>
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "create-twenty-app",
"version": "2.2.0",
"version": "2.3.0",
"description": "Command-line interface to create Twenty application",
"main": "dist/cli.cjs",
"bin": "dist/cli.cjs",
@@ -1,6 +1,6 @@
import { useCallback, useEffect, useState } from 'react';
import { defineFrontComponent } from 'twenty-sdk/define';
import { useRecordId } from 'twenty-sdk/front-component';
import { useSelectedRecordIds } from 'twenty-sdk/front-component';
import { CoreApiClient } from 'twenty-client-sdk/core';
import { isDefined } from 'twenty-shared/utils';
@@ -72,7 +72,8 @@ const CardDisplay = ({
};
const PostCardPreview = () => {
const recordId = useRecordId();
const selectedRecordIds = useSelectedRecordIds();
const recordId = selectedRecordIds.length === 1 ? selectedRecordIds[0] : null;
const [postCard, setPostCard] = useState<PostCardRecord | null>(null);
const [loading, setLoading] = useState(true);
const [error, setError] = useState<string | null>(null);
@@ -1,8 +1,7 @@
import { useEffect } from 'react';
import { defineFrontComponent } from 'twenty-sdk/define';
import { useRecordId, updateProgress, enqueueSnackbar, unmountFrontComponent } from 'twenty-sdk/front-component';
import { useSelectedRecordIds, updateProgress, enqueueSnackbar, unmountFrontComponent } from 'twenty-sdk/front-component';
import { CoreApiClient } from 'twenty-client-sdk/core';
import { isDefined } from 'twenty-shared/utils';
import { POST_CARD_UNIVERSAL_IDENTIFIER } from '../objects/post-card.object';
const SYSTEM_PROMPT =
@@ -11,12 +10,13 @@ const SYSTEM_PROMPT =
'text, nothing else — no greeting label, no sign-off label, just the message.';
const GeneratePostCardEffect = () => {
const recordId = useRecordId();
const selectedRecordIds = useSelectedRecordIds();
const recordId = selectedRecordIds.length === 1 ? selectedRecordIds[0] : null;
useEffect(() => {
if (!isDefined(recordId)) {
if (recordId === null) {
enqueueSnackbar({
message: 'No record selected',
message: 'Please select exactly one record',
variant: 'error',
});
unmountFrontComponent();
@@ -1,62 +1,44 @@
import { useEffect } from 'react';
import { defineFrontComponent } from 'twenty-sdk/define';
import { useRecordId, updateProgress, enqueueSnackbar, unmountFrontComponent } from 'twenty-sdk/front-component';
import { useSelectedRecordIds, updateProgress, enqueueSnackbar, unmountFrontComponent } from 'twenty-sdk/front-component';
import { CoreApiClient } from 'twenty-client-sdk/core';
import { isDefined } from 'twenty-shared/utils';
import { POST_CARD_UNIVERSAL_IDENTIFIER } from '../objects/post-card.object';
const SendPostCardsEffect = () => {
const recordId = useRecordId();
const selectedRecordIds = useSelectedRecordIds();
useEffect(() => {
const send = async () => {
try {
await updateProgress(0.1);
const client = new CoreApiClient();
let idsToSend: string[] = [];
if (isDefined(recordId)) {
idsToSend = [recordId];
} else {
const { postCards } = await client.query({
postCards: {
__args: {
filter: { status: { eq: 'DRAFT' } },
},
edges: { node: { id: true } },
},
if (selectedRecordIds.length === 0) {
await enqueueSnackbar({
message: 'No postcards selected',
variant: 'error',
});
idsToSend =
postCards?.edges?.map(
(edge: { node: { id: string; status: true } }) => edge.node.id,
) ?? [];
}
if (idsToSend.length === 0) {
await updateProgress(1);
await unmountFrontComponent();
return;
}
await updateProgress(0.1);
const client = new CoreApiClient();
await updateProgress(0.3);
for (let i = 0; i < idsToSend.length; i++) {
for (let i = 0; i < selectedRecordIds.length; i++) {
await client.mutation({
updatePostCard: {
__args: {
id: idsToSend[i],
id: selectedRecordIds[i],
data: { status: 'SENT' },
},
id: true,
},
});
await updateProgress(0.3 + (0.7 * (i + 1)) / idsToSend.length);
await updateProgress(0.3 + (0.7 * (i + 1)) / selectedRecordIds.length);
}
const count = idsToSend.length;
const count = selectedRecordIds.length;
await enqueueSnackbar({
message: `${count} postcard${count > 1 ? 's' : ''} sent`,
@@ -74,7 +56,7 @@ const SendPostCardsEffect = () => {
};
send();
}, [recordId]);
}, [selectedRecordIds]);
return null;
};
@@ -10,5 +10,13 @@ export default defineLogicFunction({
description: 'Look up a recipient by name to find their details',
timeoutSeconds: 5,
handler,
isTool: true,
toolTriggerSettings: {
inputSchema: {
type: 'object',
properties: {
recipientName: { type: 'string' },
},
required: ['recipientName'],
},
},
});
@@ -30,31 +30,31 @@ export default defineView({
],
groups: [
{
universalIdentifier: 'bg1a2b3c-0001-4a7b-8c9d-0e1f2a3b4c5d',
universalIdentifier: 'e9ed34f1-3c3d-41b1-869b-00aae0033d9c',
fieldValue: 'DRAFT',
position: 0,
isVisible: true,
},
{
universalIdentifier: 'bg1a2b3c-0002-4a7b-8c9d-0e1f2a3b4c5d',
universalIdentifier: '19b1a3c1-53f0-4d32-b072-d645dac98e38',
fieldValue: 'SENT',
position: 1,
isVisible: true,
},
{
universalIdentifier: 'bg1a2b3c-0003-4a7b-8c9d-0e1f2a3b4c5d',
universalIdentifier: 'f545cb5a-370d-423f-9b4e-278a9a465bdf',
fieldValue: 'DELIVERED',
position: 2,
isVisible: true,
},
{
universalIdentifier: 'bg1a2b3c-0004-4a7b-8c9d-0e1f2a3b4c5d',
universalIdentifier: '5d4c6d5f-af53-4cd0-a843-df38915561b2',
fieldValue: 'RETURNED',
position: 3,
isVisible: true,
},
{
universalIdentifier: 'bg1a2b3c-0005-4a7b-8c9d-0e1f2a3b4c5d',
universalIdentifier: '5ebbd7dc-9939-4594-b2a0-519269b4531f',
fieldValue: 'LOST',
position: 4,
isVisible: true,
@@ -111,7 +111,8 @@ export default defineLogicFunction({
description:
'Structured web search powered by Exa. Returns entity-aware results with category filtering (companies, people, research papers, news, and other content types). Prefer this when the query benefits from structured data or a specific category. For general real-time web browsing, prefer the native `web_search` tool when it is available.',
timeoutSeconds: 30,
isTool: true,
toolInputSchema: exaWebSearchInputSchema,
toolTriggerSettings: {
inputSchema: exaWebSearchInputSchema,
},
handler,
});
@@ -0,0 +1,19 @@
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"plugins": ["typescript"],
"categories": {
"correctness": "off"
},
"ignorePatterns": ["node_modules", "dist"],
"rules": {
"no-unused-vars": "off",
"typescript/no-unused-vars": [
"warn",
{
"argsIgnorePattern": "^_"
}
],
"typescript/no-explicit-any": "off"
}
}
@@ -0,0 +1,79 @@
# Linear for Twenty
Connect your Linear account to Twenty to create issues and look up teams
straight from your workflows or the AI chat.
## What you can do
Once installed and connected, two tools become available:
- **Create Linear issue** — from the AI chat, ask something like
*"create a Linear issue in the Engineering team titled 'Fix login bug'"*
and the AI will file it for you. From a workflow, add it as a step
with `teamId` + `title` (and optional `description`).
- **List Linear teams** — discovers the teams in your Linear workspace,
useful when you need to pick a `teamId` for the create-issue step.
## Installing
1. Open **Settings → Applications** in your Twenty workspace.
2. Find **Linear** in the available apps and click **Install**.
3. Open the app, go to the **Connections** tab, and click **Add connection**.
4. Choose **Just for me** (your personal Linear account) or
**Workspace shared** (a team-managed Linear account anyone in this
workspace can act through), then complete the Linear sign-in.
That's it — you can now use the tools above.
> If you see a "Linear OAuth is not yet set up by your server administrator"
> notice on the Connections tab, ask your Twenty admin to follow the
> **Self-hosting setup** below — they need to provide the OAuth credentials
> before connections can be added.
---
## Self-hosting setup
This section is for Twenty server admins. If you're on Twenty Cloud, skip
this — the OAuth credentials are already configured.
### 1. Register an OAuth app in Linear
1. Visit https://linear.app/settings/api/applications/new.
2. Set the **Redirect URI** to `<SERVER_URL>/apps/oauth/callback` (for
local dev: `http://localhost:3000/apps/oauth/callback`).
3. Copy the generated **Client ID** and **Client Secret**.
### 2. Wire the credentials into Twenty
1. In **Settings → Applications**, find **Linear**, click into it, and go
to the **Application registration** tab (admin-only).
2. Paste your Linear **Client ID** into `LINEAR_CLIENT_ID` and the
**Client Secret** into `LINEAR_CLIENT_SECRET`.
Workspace users will now be able to add Linear connections from the
**Connections** tab as described above.
### 3. (Developers only) Building the app from source
If you're working on this app rather than installing the published version:
```bash
cd packages/twenty-apps/internal/twenty-linear
# For day-to-day development (publish + install + watch in one):
yarn twenty dev
# Manual publish flow (deploy registers the app, install activates it):
yarn twenty deploy
yarn twenty install
```
`twenty dev` is recommended for iteration — it publishes, installs, and
watches for changes in one command. Use `twenty deploy` + `twenty install`
when you want to control each step separately (e.g. deploying to a
production server without auto-installing).
This serves as the reference implementation for Twenty's
`defineConnectionProvider({ type: 'oauth' })` flow — useful as a template
when adding OAuth integrations for other providers.
@@ -0,0 +1,32 @@
{
"name": "twenty-linear",
"version": "0.1.5",
"description": "Linear integration for Twenty. Connect a user's Linear account and create issues from logic functions.",
"license": "MIT",
"engines": {
"node": "^24.5.0",
"npm": "please-use-yarn",
"yarn": ">=4.0.2"
},
"keywords": [
"twenty-app"
],
"packageManager": "yarn@4.9.2",
"scripts": {
"twenty": "twenty",
"lint": "oxlint -c .oxlintrc.json .",
"lint:fix": "oxlint --fix -c .oxlintrc.json .",
"test": "vitest run --config vitest.unit.config.ts",
"test:watch": "vitest --config vitest.unit.config.ts"
},
"dependencies": {
"twenty-sdk": "2.1.0"
},
"devDependencies": {
"@types/node": "^24.7.2",
"oxlint": "^0.16.0",
"typescript": "^5.9.3",
"vite-tsconfig-paths": "^4.3.2",
"vitest": "^3.1.1"
}
}
@@ -0,0 +1 @@
<svg fill="#5E6AD2" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Linear</title><path d="M2.886 4.18A11.982 11.982 0 0 1 11.99 0C18.624 0 24 5.376 24 12.009c0 3.64-1.62 6.903-4.18 9.105L2.887 4.18ZM1.817 5.626l16.556 16.556c-.524.33-1.075.62-1.65.866L.951 7.277c.247-.575.537-1.126.866-1.65ZM.322 9.163l14.515 14.515c-.71.172-1.443.282-2.195.322L0 11.358a12 12 0 0 1 .322-2.195Zm-.17 4.862 9.823 9.824a12.02 12.02 0 0 1-9.824-9.824Z"/></svg>

After

Width:  |  Height:  |  Size: 469 B

@@ -0,0 +1,32 @@
import { defineApplication } from 'twenty-sdk/define';
import {
APPLICATION_UNIVERSAL_IDENTIFIER,
DEFAULT_ROLE_UNIVERSAL_IDENTIFIER,
} from 'src/constants/universal-identifiers';
export default defineApplication({
universalIdentifier: APPLICATION_UNIVERSAL_IDENTIFIER,
displayName: 'Linear',
description:
'Connect Linear to Twenty. Each workspace member connects their own Linear account; logic functions can then create issues and read team data on their behalf.',
logoUrl: 'public/linear-logomark.svg',
defaultRoleUniversalIdentifier: DEFAULT_ROLE_UNIVERSAL_IDENTIFIER,
// OAuth client_id/secret live at the registration level (one OAuth app per
// Twenty server, configured by the server admin) — not per-workspace —
// so they're declared as serverVariables, not applicationVariables.
serverVariables: {
LINEAR_CLIENT_ID: {
description:
'OAuth client ID from your Linear OAuth application (linear.app/settings/api/applications).',
isSecret: false,
isRequired: true,
},
LINEAR_CLIENT_SECRET: {
description:
'OAuth client secret from your Linear OAuth application. Stored encrypted; never exposed in API responses.',
isSecret: true,
isRequired: true,
},
},
});
@@ -0,0 +1,22 @@
import { defineConnectionProvider } from 'twenty-sdk/define';
import { LINEAR_CONNECTION_PROVIDER_UNIVERSAL_IDENTIFIER } from 'src/constants/universal-identifiers';
export default defineConnectionProvider({
universalIdentifier: LINEAR_CONNECTION_PROVIDER_UNIVERSAL_IDENTIFIER,
name: 'linear',
displayName: 'Linear',
type: 'oauth',
oauth: {
authorizationEndpoint: 'https://linear.app/oauth/authorize',
tokenEndpoint: 'https://api.linear.app/oauth/token',
revokeEndpoint: 'https://api.linear.app/oauth/revoke',
scopes: ['read', 'write'],
clientIdVariable: 'LINEAR_CLIENT_ID',
clientSecretVariable: 'LINEAR_CLIENT_SECRET',
tokenRequestContentType: 'form-urlencoded',
// Linear supports PKCE but doesn't require it for confidential clients.
// Disabled to keep the test surface minimal.
usePkce: false,
},
});
@@ -0,0 +1,19 @@
// Group all universal identifiers in a single file. Per the codebase
// convention (see twenty-for-twenty), closely-related constants live
// together so the rest of the app's source files can stay at one
// `export default` per file.
export const APPLICATION_UNIVERSAL_IDENTIFIER =
'6f4e7c2a-3d8e-4a91-b2cf-9e0b8d5f4a2e';
export const DEFAULT_ROLE_UNIVERSAL_IDENTIFIER =
'b6c33347-e41c-4b90-8a37-7b3c49baa85a';
export const LINEAR_CONNECTION_PROVIDER_UNIVERSAL_IDENTIFIER =
'9c7d1f5e-6a0b-4d44-be0c-3f8b5a9d4e6f';
export const CREATE_LINEAR_ISSUE_UNIVERSAL_IDENTIFIER =
'01f829c9-1661-41fa-9ee1-b67e64716c2e';
export const LIST_LINEAR_TEAMS_UNIVERSAL_IDENTIFIER =
'15824bbc-9c64-4f97-b45f-d0a44b402bb8';
@@ -0,0 +1,126 @@
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
import { createLinearIssueHandler } from '../handlers/create-linear-issue-handler';
import { buildConnection, stubConnectionsThenLinear } from './test-utils';
const SAVED_ENV = { ...process.env };
describe('createLinearIssueHandler', () => {
beforeEach(() => {
process.env.TWENTY_API_URL = 'http://api.test';
process.env.TWENTY_APP_ACCESS_TOKEN = 'app-token';
});
afterEach(() => {
process.env = { ...SAVED_ENV };
vi.unstubAllGlobals();
vi.restoreAllMocks();
});
it('returns an error when required input fields are missing', async () => {
const result = await createLinearIssueHandler({ title: 'no team' });
expect(result).toMatchObject({
success: false,
error: expect.stringContaining('teamId'),
});
});
it('returns an error when no Linear connection exists', async () => {
stubConnectionsThenLinear([], {});
const result = await createLinearIssueHandler({
teamId: 'team_1',
title: 'hi',
});
expect(result).toMatchObject({
success: false,
error: expect.stringContaining('not connected'),
});
});
it('calls Linear with the only available connection and returns the issue', async () => {
const issue = {
id: 'issue_1',
identifier: 'TEAM-1',
title: 'Hello from Twenty',
url: 'https://linear.app/twenty/issue/TEAM-1',
};
const fetchMock = stubConnectionsThenLinear([buildConnection()], {
data: { issueCreate: { success: true, issue } },
});
const result = await createLinearIssueHandler({
teamId: 'team_1',
title: 'Hello from Twenty',
description: 'Body',
});
expect(result).toEqual({ success: true, issue });
const [url, init] = fetchMock.mock.calls[1];
expect(url).toBe('https://api.linear.app/graphql');
expect(init.headers.Authorization).toBe('Bearer lin_test_access_token');
expect(JSON.parse(init.body as string).variables.input).toEqual({
teamId: 'team_1',
title: 'Hello from Twenty',
description: 'Body',
});
});
it('prefers a workspace-shared connection over a user-visibility one', async () => {
const userConnection = buildConnection({
id: 'conn_user',
accessToken: 'lin_user',
});
const sharedConnection = buildConnection({
id: 'conn_shared',
visibility: 'workspace',
accessToken: 'lin_shared',
});
const fetchMock = stubConnectionsThenLinear(
[userConnection, sharedConnection],
{
data: {
issueCreate: {
success: true,
issue: {
id: 'issue_2',
identifier: 'T-2',
title: 'Hi',
url: 'https://linear.app/x/T-2',
},
},
},
},
);
const result = await createLinearIssueHandler({
teamId: 'team_1',
title: 'Hi',
});
expect(result.success).toBe(true);
expect(fetchMock.mock.calls[1][1].headers.Authorization).toBe(
'Bearer lin_shared',
);
});
it('surfaces Linear GraphQL errors as the handler error', async () => {
stubConnectionsThenLinear([buildConnection()], {
errors: [{ message: 'Invalid teamId' }],
});
const result = await createLinearIssueHandler({
teamId: 'bogus',
title: 'hi',
});
expect(result).toEqual({ success: false, error: 'Invalid teamId' });
});
});
@@ -0,0 +1,56 @@
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
import { listLinearTeamsHandler } from '../handlers/list-linear-teams-handler';
import { buildConnection, stubConnectionsThenLinear } from './test-utils';
const SAVED_ENV = { ...process.env };
describe('listLinearTeamsHandler', () => {
beforeEach(() => {
process.env.TWENTY_API_URL = 'http://api.test';
process.env.TWENTY_APP_ACCESS_TOKEN = 'app-token';
});
afterEach(() => {
process.env = { ...SAVED_ENV };
vi.unstubAllGlobals();
vi.restoreAllMocks();
});
it('returns the teams when the Linear query succeeds', async () => {
const teams = [
{ id: 'team_1', name: 'Engineering', key: 'ENG' },
{ id: 'team_2', name: 'Design', key: 'DES' },
];
const fetchMock = stubConnectionsThenLinear([buildConnection()], {
data: { teams: { nodes: teams } },
});
const result = await listLinearTeamsHandler();
expect(result).toEqual({ success: true, teams });
expect(fetchMock.mock.calls[1][1].headers.Authorization).toBe(
'Bearer lin_test_access_token',
);
});
it('returns success=false when no Linear connection exists', async () => {
stubConnectionsThenLinear([], { data: { teams: { nodes: [] } } });
const result = await listLinearTeamsHandler();
expect(result.success).toBe(false);
});
it('surfaces Linear errors', async () => {
stubConnectionsThenLinear([buildConnection()], {
errors: [{ message: 'rate limited' }],
});
const result = await listLinearTeamsHandler();
expect(result).toEqual({ success: false, error: 'rate limited' });
});
});
@@ -0,0 +1,48 @@
import { vi } from 'vitest';
export const USER_WORKSPACE_ID = '11111111-1111-1111-1111-111111111111';
export const buildConnection = (
overrides: Partial<Record<string, unknown>> = {},
) => ({
id: 'conn_1',
name: 'octocat@example.com',
visibility: 'user' as const,
providerName: 'linear',
userWorkspaceId: USER_WORKSPACE_ID,
accessToken: 'lin_test_access_token',
scopes: ['read', 'write'],
handle: 'octocat@example.com',
lastRefreshedAt: '2024-01-01T00:00:00.000Z',
authFailedAt: null,
...overrides,
});
// Stubs `fetch` to first answer the SDK's `/apps/connections/list` call, then
// the handler's downstream Linear GraphQL request.
export const stubConnectionsThenLinear = (
connections: ReturnType<typeof buildConnection>[],
linearJson: unknown,
) => {
const fetchMock = vi.fn(async (url: string) => {
if (url.endsWith('/apps/connections/list')) {
return {
ok: true,
status: 200,
json: async () => connections,
text: async () => JSON.stringify(connections),
};
}
return {
ok: true,
status: 200,
json: async () => linearJson,
text: async () => JSON.stringify(linearJson),
};
});
vi.stubGlobal('fetch', fetchMock);
return fetchMock;
};
@@ -0,0 +1,8 @@
export const ISSUE_CREATE_MUTATION = `
mutation IssueCreate($input: IssueCreateInput!) {
issueCreate(input: $input) {
success
issue { id identifier title url }
}
}
`;
@@ -0,0 +1,34 @@
import { defineLogicFunction } from 'twenty-sdk/define';
import { CREATE_LINEAR_ISSUE_UNIVERSAL_IDENTIFIER } from 'src/constants/universal-identifiers';
import { createLinearIssueHandler } from 'src/logic-functions/handlers/create-linear-issue-handler';
export default defineLogicFunction({
universalIdentifier: CREATE_LINEAR_ISSUE_UNIVERSAL_IDENTIFIER,
name: 'create-linear-issue',
description:
'Create a Linear issue on behalf of the connected user. Requires a teamId (call list-linear-teams to discover one) and a title.',
timeoutSeconds: 30,
handler: createLinearIssueHandler,
toolTriggerSettings: {
inputSchema: {
type: 'object',
properties: {
teamId: {
type: 'string',
description:
'The Linear team ID to create the issue in. Use list-linear-teams to discover available teams.',
},
title: {
type: 'string',
description: 'The issue title.',
},
description: {
type: 'string',
description: 'Optional issue description (Markdown supported).',
},
},
required: ['teamId', 'title'],
},
},
});
@@ -0,0 +1,73 @@
import { listConnections } from 'twenty-sdk/logic-function';
import { ISSUE_CREATE_MUTATION } from 'src/logic-functions/constants/issue-create-mutation.constant';
import { type CreateIssueInput } from 'src/logic-functions/types/create-issue-input.type';
import { type CreateIssueMutationResult } from 'src/logic-functions/types/create-issue-mutation-result.type';
import { callLinearGraphQL } from 'src/logic-functions/utils/call-linear-graphql';
type HandlerResult =
| {
success: true;
issue: {
id: string;
identifier: string;
title: string;
url: string;
};
}
| { success: false; error: string };
export const createLinearIssueHandler = async (
input: CreateIssueInput,
): Promise<HandlerResult> => {
if (!input.teamId || !input.title) {
return {
success: false,
error: 'Both `teamId` and `title` are required.',
};
}
const connections = await listConnections({ providerName: 'linear' });
// Workspace-shared credentials win when present (a team-managed service
// account); otherwise fall back to the first user-scoped connection.
const connection =
connections.find((c) => c.visibility === 'workspace') ?? connections[0];
if (!connection) {
return {
success: false,
error:
'Linear is not connected. Open the app settings and click "Add connection" first.',
};
}
const result = await callLinearGraphQL<CreateIssueMutationResult>({
accessToken: connection.accessToken,
query: ISSUE_CREATE_MUTATION,
variables: {
input: {
teamId: input.teamId,
title: input.title,
description: input.description,
},
},
});
if (result.errors || !result.data) {
return {
success: false,
error: result.errors?.[0]?.message ?? 'Unknown Linear API error',
};
}
const { success, issue } = result.data.issueCreate;
if (!success || !issue) {
return {
success: false,
error: 'Linear reported the mutation as unsuccessful.',
};
}
return { success: true, issue };
};
@@ -0,0 +1,49 @@
import { listConnections } from 'twenty-sdk/logic-function';
import { callLinearGraphQL } from 'src/logic-functions/utils/call-linear-graphql';
type LinearTeam = {
id: string;
name: string;
key: string;
};
type TeamsQueryResult = {
teams: { nodes: LinearTeam[] };
};
type HandlerResult =
| { success: true; teams: LinearTeam[] }
| { success: false; error: string };
export const listLinearTeamsHandler = async (): Promise<HandlerResult> => {
const connections = await listConnections({ providerName: 'linear' });
const connection =
connections.find((c) => c.visibility === 'workspace') ?? connections[0];
if (!connection) {
return {
success: false,
error:
'Linear is not connected. Open the app settings and click "Add connection" first.',
};
}
const result = await callLinearGraphQL<TeamsQueryResult>({
accessToken: connection.accessToken,
query: `
query Teams {
teams { nodes { id name key } }
}
`,
});
if (result.errors || !result.data) {
return {
success: false,
error: result.errors?.[0]?.message ?? 'Unknown Linear API error',
};
}
return { success: true, teams: result.data.teams.nodes };
};
@@ -0,0 +1,19 @@
import { defineLogicFunction } from 'twenty-sdk/define';
import { LIST_LINEAR_TEAMS_UNIVERSAL_IDENTIFIER } from 'src/constants/universal-identifiers';
import { listLinearTeamsHandler } from 'src/logic-functions/handlers/list-linear-teams-handler';
export default defineLogicFunction({
universalIdentifier: LIST_LINEAR_TEAMS_UNIVERSAL_IDENTIFIER,
name: 'list-linear-teams',
description:
"Returns the connected user's Linear teams. Useful for picking a teamId to pass to create-linear-issue.",
timeoutSeconds: 15,
handler: listLinearTeamsHandler,
toolTriggerSettings: {
inputSchema: {
type: 'object',
properties: {},
},
},
});
@@ -0,0 +1,5 @@
export type CreateIssueInput = {
teamId?: string;
title?: string;
description?: string;
};
@@ -0,0 +1,11 @@
export type CreateIssueMutationResult = {
issueCreate: {
success: boolean;
issue: {
id: string;
identifier: string;
title: string;
url: string;
} | null;
};
};
@@ -0,0 +1,58 @@
import { type LinearGraphQLResult } from 'src/logic-functions/utils/types/linear-graphql-result.type';
const LINEAR_GRAPHQL_ENDPOINT = 'https://api.linear.app/graphql';
export const callLinearGraphQL = async <TData>({
accessToken,
query,
variables,
}: {
accessToken: string;
query: string;
variables?: Record<string, unknown>;
}): Promise<LinearGraphQLResult<TData>> => {
let response: Response;
try {
response = await fetch(LINEAR_GRAPHQL_ENDPOINT, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${accessToken}`,
},
body: JSON.stringify({ query, variables }),
});
} catch (error) {
return {
errors: [
{
message: `Linear API request failed: ${(error as Error).message}`,
},
],
};
}
if (!response.ok) {
const text = await response.text().catch(() => '');
return {
errors: [
{
message: `Linear API responded with ${response.status}: ${text.slice(0, 500)}`,
},
],
};
}
try {
return (await response.json()) as LinearGraphQLResult<TData>;
} catch (error) {
return {
errors: [
{
message: `Linear API returned a non-JSON response: ${(error as Error).message}`,
},
],
};
}
};
@@ -0,0 +1,4 @@
export type LinearGraphQLResult<TData> = {
data?: TData;
errors?: Array<{ message: string }>;
};
@@ -0,0 +1,22 @@
import { defineRole } from 'twenty-sdk/define';
import { DEFAULT_ROLE_UNIVERSAL_IDENTIFIER } from 'src/constants/universal-identifiers';
// The Linear logic functions never read workspace data — they only call
// Linear's GraphQL API on behalf of the connected user.
export default defineRole({
universalIdentifier: DEFAULT_ROLE_UNIVERSAL_IDENTIFIER,
label: 'Linear function role',
description: 'No-op role for Linear logic functions',
canReadAllObjectRecords: false,
canUpdateAllObjectRecords: false,
canSoftDeleteAllObjectRecords: false,
canDestroyAllObjectRecords: false,
canUpdateAllSettings: false,
canBeAssignedToAgents: false,
canBeAssignedToUsers: false,
canBeAssignedToApiKeys: false,
objectPermissions: [],
fieldPermissions: [],
permissionFlags: [],
});
@@ -0,0 +1,30 @@
{
"compileOnSave": false,
"compilerOptions": {
"sourceMap": true,
"declaration": true,
"outDir": "./dist",
"rootDir": ".",
"moduleResolution": "bundler",
"allowSyntheticDefaultImports": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"importHelpers": true,
"allowUnreachableCode": false,
"strict": true,
"alwaysStrict": true,
"noImplicitAny": true,
"strictBindCallApply": false,
"target": "es2020",
"module": "esnext",
"lib": ["es2020"],
"skipLibCheck": true,
"skipDefaultLibCheck": true,
"resolveJsonModule": true,
"paths": {
"src/*": ["./src/*"],
"~/*": ["./*"]
}
},
"exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.spec.ts"]
}
@@ -0,0 +1,9 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"composite": true,
"types": ["vitest/globals", "node"]
},
"include": ["src/**/*.ts"],
"exclude": ["node_modules", "dist"]
}
@@ -0,0 +1,43 @@
import path from 'node:path';
import tsconfigPaths from 'vite-tsconfig-paths';
import { defineConfig } from 'vitest/config';
const TWENTY_SDK_SRC = path.resolve(
__dirname,
'../../../twenty-sdk/src/sdk',
);
// twenty-sdk's `exports` map points at compiled `./dist/*`. Aliasing the
// subpaths to source keeps unit tests self-contained — no `yarn build` in
// twenty-sdk required before running them.
export default defineConfig({
plugins: [
tsconfigPaths({
projects: ['tsconfig.spec.json'],
ignoreConfigErrors: true,
}),
],
resolve: {
alias: [
{
find: 'twenty-sdk/logic-function',
replacement: path.join(TWENTY_SDK_SRC, 'logic-function/index.ts'),
},
{
find: 'twenty-sdk/define',
replacement: path.join(TWENTY_SDK_SRC, 'define/index.ts'),
},
// The SDK source uses `@/*` to refer to its own `src/`. Vitest
// doesn't pick up the SDK's tsconfig path mapping when resolving
// a different package, so map the alias here.
{
find: /^@\/(.*)$/,
replacement: path.resolve(__dirname, '../../../twenty-sdk/src/$1'),
},
],
},
test: {
include: ['src/**/*.test.ts'],
},
});
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "twenty-client-sdk",
"version": "2.2.0",
"version": "2.3.0",
"sideEffects": false,
"license": "AGPL-3.0",
"scripts": {
@@ -324,6 +324,115 @@ type FrontComponent {
applicationTokenPair: ApplicationTokenPair
}
type CommandMenuItem {
id: UUID!
workflowVersionId: UUID
frontComponentId: UUID
frontComponent: FrontComponent
engineComponentKey: EngineComponentKey!
label: String!
icon: String
shortLabel: String
position: Float!
isPinned: Boolean!
availabilityType: CommandMenuItemAvailabilityType!
payload: CommandMenuItemPayload
hotKeys: [String!]
conditionalAvailabilityExpression: String
availabilityObjectMetadataId: UUID
pageLayoutId: UUID
universalIdentifier: UUID
applicationId: UUID
createdAt: DateTime!
updatedAt: DateTime!
}
enum EngineComponentKey {
NAVIGATE_TO_NEXT_RECORD
NAVIGATE_TO_PREVIOUS_RECORD
CREATE_NEW_RECORD
DELETE_RECORDS
RESTORE_RECORDS
DESTROY_RECORDS
ADD_TO_FAVORITES
REMOVE_FROM_FAVORITES
EXPORT_NOTE_TO_PDF
EXPORT_RECORDS
UPDATE_MULTIPLE_RECORDS
MERGE_MULTIPLE_RECORDS
IMPORT_RECORDS
EXPORT_VIEW
SEE_DELETED_RECORDS
CREATE_NEW_VIEW
HIDE_DELETED_RECORDS
EDIT_RECORD_PAGE_LAYOUT
EDIT_DASHBOARD_LAYOUT
SAVE_DASHBOARD_LAYOUT
CANCEL_DASHBOARD_LAYOUT
DUPLICATE_DASHBOARD
ACTIVATE_WORKFLOW
DEACTIVATE_WORKFLOW
DISCARD_DRAFT_WORKFLOW
TEST_WORKFLOW
SEE_ACTIVE_VERSION_WORKFLOW
SEE_RUNS_WORKFLOW
SEE_VERSIONS_WORKFLOW
ADD_NODE_WORKFLOW
TIDY_UP_WORKFLOW
DUPLICATE_WORKFLOW
SEE_VERSION_WORKFLOW_RUN
SEE_WORKFLOW_WORKFLOW_RUN
STOP_WORKFLOW_RUN
SEE_RUNS_WORKFLOW_VERSION
SEE_WORKFLOW_WORKFLOW_VERSION
USE_AS_DRAFT_WORKFLOW_VERSION
SEE_VERSIONS_WORKFLOW_VERSION
SEARCH_RECORDS
SEARCH_RECORDS_FALLBACK
ASK_AI
VIEW_PREVIOUS_AI_CHATS
NAVIGATION
TRIGGER_WORKFLOW_VERSION
FRONT_COMPONENT_RENDERER
REPLY_TO_EMAIL_THREAD
COMPOSE_EMAIL
GO_TO_PEOPLE
GO_TO_COMPANIES
GO_TO_DASHBOARDS
GO_TO_OPPORTUNITIES
GO_TO_SETTINGS
GO_TO_TASKS
GO_TO_NOTES
GO_TO_WORKFLOWS
GO_TO_RUNS
DELETE_SINGLE_RECORD
DELETE_MULTIPLE_RECORDS
RESTORE_SINGLE_RECORD
RESTORE_MULTIPLE_RECORDS
DESTROY_SINGLE_RECORD
DESTROY_MULTIPLE_RECORDS
EXPORT_FROM_RECORD_INDEX
EXPORT_FROM_RECORD_SHOW
EXPORT_MULTIPLE_RECORDS
}
enum CommandMenuItemAvailabilityType {
GLOBAL
GLOBAL_OBJECT_CONTEXT
RECORD_SELECTION
FALLBACK
}
union CommandMenuItemPayload = PathCommandMenuItemPayload | ObjectMetadataCommandMenuItemPayload
type PathCommandMenuItemPayload {
path: String!
}
type ObjectMetadataCommandMenuItemPayload {
objectMetadataItemId: UUID!
}
type LogicFunction {
id: UUID!
name: String!
@@ -332,11 +441,11 @@ type LogicFunction {
timeoutSeconds: Float!
sourceHandlerPath: String!
handlerName: String!
toolInputSchema: JSON
isTool: Boolean!
cronTriggerSettings: JSON
databaseEventTriggerSettings: JSON
httpRouteTriggerSettings: JSON
toolTriggerSettings: JSON
workflowActionTriggerSettings: JSON
applicationId: UUID
universalIdentifier: UUID
createdAt: DateTime!
@@ -595,6 +704,7 @@ type Application {
defaultLogicFunctionRole: Role
agents: [Agent!]!
frontComponents: [FrontComponent!]!
commandMenuItems: [CommandMenuItem!]!
logicFunctions: [LogicFunction!]!
objects: [Object!]!
applicationVariables: [ApplicationVariable!]!
@@ -863,7 +973,6 @@ type User {
firstName: String!
lastName: String!
email: String!
defaultAvatarUrl: String
isEmailVerified: Boolean!
disabled: Boolean
canImpersonate: Boolean!
@@ -1293,6 +1402,20 @@ enum PageLayoutType {
STANDALONE_PAGE
}
type ApplicationConnectionProviderOAuthConfig {
scopes: [String!]!
isClientCredentialsConfigured: Boolean!
}
type ApplicationConnectionProvider {
id: UUID!
applicationId: String!
type: String!
name: String!
displayName: String!
oauth: ApplicationConnectionProviderOAuthConfig
}
type Analytics {
"""Boolean that confirms query was dispatched"""
success: Boolean!
@@ -2311,114 +2434,6 @@ type PostgresCredentials {
workspaceId: UUID!
}
type CommandMenuItem {
id: UUID!
workflowVersionId: UUID
frontComponentId: UUID
frontComponent: FrontComponent
engineComponentKey: EngineComponentKey!
label: String!
icon: String
shortLabel: String
position: Float!
isPinned: Boolean!
availabilityType: CommandMenuItemAvailabilityType!
payload: CommandMenuItemPayload
hotKeys: [String!]
conditionalAvailabilityExpression: String
availabilityObjectMetadataId: UUID
pageLayoutId: UUID
applicationId: UUID
createdAt: DateTime!
updatedAt: DateTime!
}
enum EngineComponentKey {
NAVIGATE_TO_NEXT_RECORD
NAVIGATE_TO_PREVIOUS_RECORD
CREATE_NEW_RECORD
DELETE_RECORDS
RESTORE_RECORDS
DESTROY_RECORDS
ADD_TO_FAVORITES
REMOVE_FROM_FAVORITES
EXPORT_NOTE_TO_PDF
EXPORT_RECORDS
UPDATE_MULTIPLE_RECORDS
MERGE_MULTIPLE_RECORDS
IMPORT_RECORDS
EXPORT_VIEW
SEE_DELETED_RECORDS
CREATE_NEW_VIEW
HIDE_DELETED_RECORDS
EDIT_RECORD_PAGE_LAYOUT
EDIT_DASHBOARD_LAYOUT
SAVE_DASHBOARD_LAYOUT
CANCEL_DASHBOARD_LAYOUT
DUPLICATE_DASHBOARD
ACTIVATE_WORKFLOW
DEACTIVATE_WORKFLOW
DISCARD_DRAFT_WORKFLOW
TEST_WORKFLOW
SEE_ACTIVE_VERSION_WORKFLOW
SEE_RUNS_WORKFLOW
SEE_VERSIONS_WORKFLOW
ADD_NODE_WORKFLOW
TIDY_UP_WORKFLOW
DUPLICATE_WORKFLOW
SEE_VERSION_WORKFLOW_RUN
SEE_WORKFLOW_WORKFLOW_RUN
STOP_WORKFLOW_RUN
SEE_RUNS_WORKFLOW_VERSION
SEE_WORKFLOW_WORKFLOW_VERSION
USE_AS_DRAFT_WORKFLOW_VERSION
SEE_VERSIONS_WORKFLOW_VERSION
SEARCH_RECORDS
SEARCH_RECORDS_FALLBACK
ASK_AI
VIEW_PREVIOUS_AI_CHATS
NAVIGATION
TRIGGER_WORKFLOW_VERSION
FRONT_COMPONENT_RENDERER
REPLY_TO_EMAIL_THREAD
COMPOSE_EMAIL
GO_TO_PEOPLE
GO_TO_COMPANIES
GO_TO_DASHBOARDS
GO_TO_OPPORTUNITIES
GO_TO_SETTINGS
GO_TO_TASKS
GO_TO_NOTES
GO_TO_WORKFLOWS
GO_TO_RUNS
DELETE_SINGLE_RECORD
DELETE_MULTIPLE_RECORDS
RESTORE_SINGLE_RECORD
RESTORE_MULTIPLE_RECORDS
DESTROY_SINGLE_RECORD
DESTROY_MULTIPLE_RECORDS
EXPORT_FROM_RECORD_INDEX
EXPORT_FROM_RECORD_SHOW
EXPORT_MULTIPLE_RECORDS
}
enum CommandMenuItemAvailabilityType {
GLOBAL
GLOBAL_OBJECT_CONTEXT
RECORD_SELECTION
FALLBACK
}
union CommandMenuItemPayload = PathCommandMenuItemPayload | ObjectMetadataCommandMenuItemPayload
type PathCommandMenuItemPayload {
path: String!
}
type ObjectMetadataCommandMenuItemPayload {
objectMetadataItemId: UUID!
}
type ToolIndexEntry {
name: String!
description: String!
@@ -2537,6 +2552,10 @@ type ConnectedAccountDTO {
connectionParameters: ImapSmtpCaldavConnectionParameters
lastSignedInAt: DateTime
userWorkspaceId: UUID!
connectionProviderId: UUID
applicationId: UUID
name: String
visibility: String!
createdAt: DateTime!
updatedAt: DateTime!
}
@@ -2564,6 +2583,10 @@ type ConnectedAccountPublicDTO {
scopes: [String!]
lastSignedInAt: DateTime
userWorkspaceId: UUID!
connectionProviderId: UUID
applicationId: UUID
name: String
visibility: String!
createdAt: DateTime!
updatedAt: DateTime!
connectionParameters: PublicImapSmtpCaldavConnectionParameters
@@ -2849,6 +2872,7 @@ enum AllMetadataName {
fieldPermission
frontComponent
webhook
connectionProvider
}
type MinimalObjectMetadata {
@@ -2919,6 +2943,7 @@ type Query {
getPageLayoutTab(id: String!): PageLayoutTab!
getPageLayouts(objectMetadataId: String, pageLayoutType: PageLayoutType): [PageLayout!]!
getPageLayout(id: String!): PageLayout
applicationConnectionProviders(applicationId: UUID!): [ApplicationConnectionProvider!]!
getPageLayoutWidgets(pageLayoutTabId: String!): [PageLayoutWidget!]!
getPageLayoutWidget(id: String!): PageLayoutWidget!
findOneLogicFunction(input: LogicFunctionIdInput!): LogicFunction!
@@ -3170,6 +3195,7 @@ type Mutation {
resetPageLayoutToDefault(id: String!): PageLayout!
resetPageLayoutWidgetToDefault(id: String!): PageLayoutWidget!
resetPageLayoutTabToDefault(id: String!): PageLayoutTab!
updateOneApplicationVariable(key: String!, value: String!, applicationId: UUID!): Boolean!
createPageLayoutWidget(input: CreatePageLayoutWidgetInput!): PageLayoutWidget!
updatePageLayoutWidget(id: String!, input: UpdatePageLayoutWidgetInput!): PageLayoutWidget!
destroyPageLayoutWidget(id: String!): Boolean!
@@ -3272,7 +3298,6 @@ type Mutation {
installApplication(appRegistrationId: String!, version: String): Boolean!
runWorkspaceMigration(workspaceMigration: WorkspaceMigrationInput!): Boolean!
uninstallApplication(universalIdentifier: String!): Boolean!
updateOneApplicationVariable(key: String!, value: String!, applicationId: UUID!): Boolean!
createOIDCIdentityProvider(input: SetupOIDCSsoInput!): SetupSso!
createSAMLIdentityProvider(input: SetupSAMLSsoInput!): SetupSso!
deleteSSOIdentityProvider(input: DeleteSsoInput!): DeleteSso!
@@ -3756,12 +3781,12 @@ input CreateLogicFunctionFromSourceInput {
name: String!
description: String
timeoutSeconds: Float
toolInputSchema: JSON
isTool: Boolean
source: JSON
cronTriggerSettings: JSON
databaseEventTriggerSettings: JSON
httpRouteTriggerSettings: JSON
toolTriggerSettings: JSON
workflowActionTriggerSettings: JSON
}
input ExecuteOneLogicFunctionInput {
@@ -3785,13 +3810,13 @@ input UpdateLogicFunctionFromSourceInputUpdates {
description: String
timeoutSeconds: Float
sourceHandlerCode: String
toolInputSchema: JSON
handlerName: String
sourceHandlerPath: String
isTool: Boolean
cronTriggerSettings: JSON
databaseEventTriggerSettings: JSON
httpRouteTriggerSettings: JSON
toolTriggerSettings: JSON
workflowActionTriggerSettings: JSON
}
input CreateCommandMenuItemInput {
@@ -278,6 +278,46 @@ export interface FrontComponent {
__typename: 'FrontComponent'
}
export interface CommandMenuItem {
id: Scalars['UUID']
workflowVersionId?: Scalars['UUID']
frontComponentId?: Scalars['UUID']
frontComponent?: FrontComponent
engineComponentKey: EngineComponentKey
label: Scalars['String']
icon?: Scalars['String']
shortLabel?: Scalars['String']
position: Scalars['Float']
isPinned: Scalars['Boolean']
availabilityType: CommandMenuItemAvailabilityType
payload?: CommandMenuItemPayload
hotKeys?: Scalars['String'][]
conditionalAvailabilityExpression?: Scalars['String']
availabilityObjectMetadataId?: Scalars['UUID']
pageLayoutId?: Scalars['UUID']
universalIdentifier?: Scalars['UUID']
applicationId?: Scalars['UUID']
createdAt: Scalars['DateTime']
updatedAt: Scalars['DateTime']
__typename: 'CommandMenuItem'
}
export type EngineComponentKey = 'NAVIGATE_TO_NEXT_RECORD' | 'NAVIGATE_TO_PREVIOUS_RECORD' | 'CREATE_NEW_RECORD' | 'DELETE_RECORDS' | 'RESTORE_RECORDS' | 'DESTROY_RECORDS' | 'ADD_TO_FAVORITES' | 'REMOVE_FROM_FAVORITES' | 'EXPORT_NOTE_TO_PDF' | 'EXPORT_RECORDS' | 'UPDATE_MULTIPLE_RECORDS' | 'MERGE_MULTIPLE_RECORDS' | 'IMPORT_RECORDS' | 'EXPORT_VIEW' | 'SEE_DELETED_RECORDS' | 'CREATE_NEW_VIEW' | 'HIDE_DELETED_RECORDS' | 'EDIT_RECORD_PAGE_LAYOUT' | 'EDIT_DASHBOARD_LAYOUT' | 'SAVE_DASHBOARD_LAYOUT' | 'CANCEL_DASHBOARD_LAYOUT' | 'DUPLICATE_DASHBOARD' | 'ACTIVATE_WORKFLOW' | 'DEACTIVATE_WORKFLOW' | 'DISCARD_DRAFT_WORKFLOW' | 'TEST_WORKFLOW' | 'SEE_ACTIVE_VERSION_WORKFLOW' | 'SEE_RUNS_WORKFLOW' | 'SEE_VERSIONS_WORKFLOW' | 'ADD_NODE_WORKFLOW' | 'TIDY_UP_WORKFLOW' | 'DUPLICATE_WORKFLOW' | 'SEE_VERSION_WORKFLOW_RUN' | 'SEE_WORKFLOW_WORKFLOW_RUN' | 'STOP_WORKFLOW_RUN' | 'SEE_RUNS_WORKFLOW_VERSION' | 'SEE_WORKFLOW_WORKFLOW_VERSION' | 'USE_AS_DRAFT_WORKFLOW_VERSION' | 'SEE_VERSIONS_WORKFLOW_VERSION' | 'SEARCH_RECORDS' | 'SEARCH_RECORDS_FALLBACK' | 'ASK_AI' | 'VIEW_PREVIOUS_AI_CHATS' | 'NAVIGATION' | 'TRIGGER_WORKFLOW_VERSION' | 'FRONT_COMPONENT_RENDERER' | 'REPLY_TO_EMAIL_THREAD' | 'COMPOSE_EMAIL' | 'GO_TO_PEOPLE' | 'GO_TO_COMPANIES' | 'GO_TO_DASHBOARDS' | 'GO_TO_OPPORTUNITIES' | 'GO_TO_SETTINGS' | 'GO_TO_TASKS' | 'GO_TO_NOTES' | 'GO_TO_WORKFLOWS' | 'GO_TO_RUNS' | 'DELETE_SINGLE_RECORD' | 'DELETE_MULTIPLE_RECORDS' | 'RESTORE_SINGLE_RECORD' | 'RESTORE_MULTIPLE_RECORDS' | 'DESTROY_SINGLE_RECORD' | 'DESTROY_MULTIPLE_RECORDS' | 'EXPORT_FROM_RECORD_INDEX' | 'EXPORT_FROM_RECORD_SHOW' | 'EXPORT_MULTIPLE_RECORDS'
export type CommandMenuItemAvailabilityType = 'GLOBAL' | 'GLOBAL_OBJECT_CONTEXT' | 'RECORD_SELECTION' | 'FALLBACK'
export type CommandMenuItemPayload = (PathCommandMenuItemPayload | ObjectMetadataCommandMenuItemPayload) & { __isUnion?: true }
export interface PathCommandMenuItemPayload {
path: Scalars['String']
__typename: 'PathCommandMenuItemPayload'
}
export interface ObjectMetadataCommandMenuItemPayload {
objectMetadataItemId: Scalars['UUID']
__typename: 'ObjectMetadataCommandMenuItemPayload'
}
export interface LogicFunction {
id: Scalars['UUID']
name: Scalars['String']
@@ -286,11 +326,11 @@ export interface LogicFunction {
timeoutSeconds: Scalars['Float']
sourceHandlerPath: Scalars['String']
handlerName: Scalars['String']
toolInputSchema?: Scalars['JSON']
isTool: Scalars['Boolean']
cronTriggerSettings?: Scalars['JSON']
databaseEventTriggerSettings?: Scalars['JSON']
httpRouteTriggerSettings?: Scalars['JSON']
toolTriggerSettings?: Scalars['JSON']
workflowActionTriggerSettings?: Scalars['JSON']
applicationId?: Scalars['UUID']
universalIdentifier?: Scalars['UUID']
createdAt: Scalars['DateTime']
@@ -429,6 +469,7 @@ export interface Application {
defaultLogicFunctionRole?: Role
agents: Agent[]
frontComponents: FrontComponent[]
commandMenuItems: CommandMenuItem[]
logicFunctions: LogicFunction[]
objects: Object[]
applicationVariables: ApplicationVariable[]
@@ -648,7 +689,6 @@ export interface User {
firstName: Scalars['String']
lastName: Scalars['String']
email: Scalars['String']
defaultAvatarUrl?: Scalars['String']
isEmailVerified: Scalars['Boolean']
disabled?: Scalars['Boolean']
canImpersonate: Scalars['Boolean']
@@ -1019,6 +1059,22 @@ export interface PageLayout {
export type PageLayoutType = 'RECORD_INDEX' | 'RECORD_PAGE' | 'DASHBOARD' | 'STANDALONE_PAGE'
export interface ApplicationConnectionProviderOAuthConfig {
scopes: Scalars['String'][]
isClientCredentialsConfigured: Scalars['Boolean']
__typename: 'ApplicationConnectionProviderOAuthConfig'
}
export interface ApplicationConnectionProvider {
id: Scalars['UUID']
applicationId: Scalars['String']
type: Scalars['String']
name: Scalars['String']
displayName: Scalars['String']
oauth?: ApplicationConnectionProviderOAuthConfig
__typename: 'ApplicationConnectionProvider'
}
export interface Analytics {
/** Boolean that confirms query was dispatched */
success: Scalars['Boolean']
@@ -2055,45 +2111,6 @@ export interface PostgresCredentials {
__typename: 'PostgresCredentials'
}
export interface CommandMenuItem {
id: Scalars['UUID']
workflowVersionId?: Scalars['UUID']
frontComponentId?: Scalars['UUID']
frontComponent?: FrontComponent
engineComponentKey: EngineComponentKey
label: Scalars['String']
icon?: Scalars['String']
shortLabel?: Scalars['String']
position: Scalars['Float']
isPinned: Scalars['Boolean']
availabilityType: CommandMenuItemAvailabilityType
payload?: CommandMenuItemPayload
hotKeys?: Scalars['String'][]
conditionalAvailabilityExpression?: Scalars['String']
availabilityObjectMetadataId?: Scalars['UUID']
pageLayoutId?: Scalars['UUID']
applicationId?: Scalars['UUID']
createdAt: Scalars['DateTime']
updatedAt: Scalars['DateTime']
__typename: 'CommandMenuItem'
}
export type EngineComponentKey = 'NAVIGATE_TO_NEXT_RECORD' | 'NAVIGATE_TO_PREVIOUS_RECORD' | 'CREATE_NEW_RECORD' | 'DELETE_RECORDS' | 'RESTORE_RECORDS' | 'DESTROY_RECORDS' | 'ADD_TO_FAVORITES' | 'REMOVE_FROM_FAVORITES' | 'EXPORT_NOTE_TO_PDF' | 'EXPORT_RECORDS' | 'UPDATE_MULTIPLE_RECORDS' | 'MERGE_MULTIPLE_RECORDS' | 'IMPORT_RECORDS' | 'EXPORT_VIEW' | 'SEE_DELETED_RECORDS' | 'CREATE_NEW_VIEW' | 'HIDE_DELETED_RECORDS' | 'EDIT_RECORD_PAGE_LAYOUT' | 'EDIT_DASHBOARD_LAYOUT' | 'SAVE_DASHBOARD_LAYOUT' | 'CANCEL_DASHBOARD_LAYOUT' | 'DUPLICATE_DASHBOARD' | 'ACTIVATE_WORKFLOW' | 'DEACTIVATE_WORKFLOW' | 'DISCARD_DRAFT_WORKFLOW' | 'TEST_WORKFLOW' | 'SEE_ACTIVE_VERSION_WORKFLOW' | 'SEE_RUNS_WORKFLOW' | 'SEE_VERSIONS_WORKFLOW' | 'ADD_NODE_WORKFLOW' | 'TIDY_UP_WORKFLOW' | 'DUPLICATE_WORKFLOW' | 'SEE_VERSION_WORKFLOW_RUN' | 'SEE_WORKFLOW_WORKFLOW_RUN' | 'STOP_WORKFLOW_RUN' | 'SEE_RUNS_WORKFLOW_VERSION' | 'SEE_WORKFLOW_WORKFLOW_VERSION' | 'USE_AS_DRAFT_WORKFLOW_VERSION' | 'SEE_VERSIONS_WORKFLOW_VERSION' | 'SEARCH_RECORDS' | 'SEARCH_RECORDS_FALLBACK' | 'ASK_AI' | 'VIEW_PREVIOUS_AI_CHATS' | 'NAVIGATION' | 'TRIGGER_WORKFLOW_VERSION' | 'FRONT_COMPONENT_RENDERER' | 'REPLY_TO_EMAIL_THREAD' | 'COMPOSE_EMAIL' | 'GO_TO_PEOPLE' | 'GO_TO_COMPANIES' | 'GO_TO_DASHBOARDS' | 'GO_TO_OPPORTUNITIES' | 'GO_TO_SETTINGS' | 'GO_TO_TASKS' | 'GO_TO_NOTES' | 'GO_TO_WORKFLOWS' | 'GO_TO_RUNS' | 'DELETE_SINGLE_RECORD' | 'DELETE_MULTIPLE_RECORDS' | 'RESTORE_SINGLE_RECORD' | 'RESTORE_MULTIPLE_RECORDS' | 'DESTROY_SINGLE_RECORD' | 'DESTROY_MULTIPLE_RECORDS' | 'EXPORT_FROM_RECORD_INDEX' | 'EXPORT_FROM_RECORD_SHOW' | 'EXPORT_MULTIPLE_RECORDS'
export type CommandMenuItemAvailabilityType = 'GLOBAL' | 'GLOBAL_OBJECT_CONTEXT' | 'RECORD_SELECTION' | 'FALLBACK'
export type CommandMenuItemPayload = (PathCommandMenuItemPayload | ObjectMetadataCommandMenuItemPayload) & { __isUnion?: true }
export interface PathCommandMenuItemPayload {
path: Scalars['String']
__typename: 'PathCommandMenuItemPayload'
}
export interface ObjectMetadataCommandMenuItemPayload {
objectMetadataItemId: Scalars['UUID']
__typename: 'ObjectMetadataCommandMenuItemPayload'
}
export interface ToolIndexEntry {
name: Scalars['String']
description: Scalars['String']
@@ -2223,6 +2240,10 @@ export interface ConnectedAccountDTO {
connectionParameters?: ImapSmtpCaldavConnectionParameters
lastSignedInAt?: Scalars['DateTime']
userWorkspaceId: Scalars['UUID']
connectionProviderId?: Scalars['UUID']
applicationId?: Scalars['UUID']
name?: Scalars['String']
visibility: Scalars['String']
createdAt: Scalars['DateTime']
updatedAt: Scalars['DateTime']
__typename: 'ConnectedAccountDTO'
@@ -2253,6 +2274,10 @@ export interface ConnectedAccountPublicDTO {
scopes?: Scalars['String'][]
lastSignedInAt?: Scalars['DateTime']
userWorkspaceId: Scalars['UUID']
connectionProviderId?: Scalars['UUID']
applicationId?: Scalars['UUID']
name?: Scalars['String']
visibility: Scalars['String']
createdAt: Scalars['DateTime']
updatedAt: Scalars['DateTime']
connectionParameters?: PublicImapSmtpCaldavConnectionParameters
@@ -2470,7 +2495,7 @@ export interface CollectionHash {
__typename: 'CollectionHash'
}
export type AllMetadataName = 'fieldMetadata' | 'objectMetadata' | 'view' | 'viewField' | 'viewFieldGroup' | 'viewGroup' | 'viewSort' | 'rowLevelPermissionPredicate' | 'rowLevelPermissionPredicateGroup' | 'viewFilterGroup' | 'index' | 'logicFunction' | 'viewFilter' | 'role' | 'roleTarget' | 'agent' | 'skill' | 'pageLayout' | 'pageLayoutWidget' | 'pageLayoutTab' | 'commandMenuItem' | 'navigationMenuItem' | 'permissionFlag' | 'objectPermission' | 'fieldPermission' | 'frontComponent' | 'webhook'
export type AllMetadataName = 'fieldMetadata' | 'objectMetadata' | 'view' | 'viewField' | 'viewFieldGroup' | 'viewGroup' | 'viewSort' | 'rowLevelPermissionPredicate' | 'rowLevelPermissionPredicateGroup' | 'viewFilterGroup' | 'index' | 'logicFunction' | 'viewFilter' | 'role' | 'roleTarget' | 'agent' | 'skill' | 'pageLayout' | 'pageLayoutWidget' | 'pageLayoutTab' | 'commandMenuItem' | 'navigationMenuItem' | 'permissionFlag' | 'objectPermission' | 'fieldPermission' | 'frontComponent' | 'webhook' | 'connectionProvider'
export interface MinimalObjectMetadata {
id: Scalars['UUID']
@@ -2544,6 +2569,7 @@ export interface Query {
getPageLayoutTab: PageLayoutTab
getPageLayouts: PageLayout[]
getPageLayout?: PageLayout
applicationConnectionProviders: ApplicationConnectionProvider[]
getPageLayoutWidgets: PageLayoutWidget[]
getPageLayoutWidget: PageLayoutWidget
findOneLogicFunction: LogicFunction
@@ -2701,6 +2727,7 @@ export interface Mutation {
resetPageLayoutToDefault: PageLayout
resetPageLayoutWidgetToDefault: PageLayoutWidget
resetPageLayoutTabToDefault: PageLayoutTab
updateOneApplicationVariable: Scalars['Boolean']
createPageLayoutWidget: PageLayoutWidget
updatePageLayoutWidget: PageLayoutWidget
destroyPageLayoutWidget: Scalars['Boolean']
@@ -2803,7 +2830,6 @@ export interface Mutation {
installApplication: Scalars['Boolean']
runWorkspaceMigration: Scalars['Boolean']
uninstallApplication: Scalars['Boolean']
updateOneApplicationVariable: Scalars['Boolean']
createOIDCIdentityProvider: SetupSso
createSAMLIdentityProvider: SetupSso
deleteSSOIdentityProvider: DeleteSso
@@ -3121,6 +3147,49 @@ export interface FrontComponentGenqlSelection{
__scalar?: boolean | number
}
export interface CommandMenuItemGenqlSelection{
id?: boolean | number
workflowVersionId?: boolean | number
frontComponentId?: boolean | number
frontComponent?: FrontComponentGenqlSelection
engineComponentKey?: boolean | number
label?: boolean | number
icon?: boolean | number
shortLabel?: boolean | number
position?: boolean | number
isPinned?: boolean | number
availabilityType?: boolean | number
payload?: CommandMenuItemPayloadGenqlSelection
hotKeys?: boolean | number
conditionalAvailabilityExpression?: boolean | number
availabilityObjectMetadataId?: boolean | number
pageLayoutId?: boolean | number
universalIdentifier?: boolean | number
applicationId?: boolean | number
createdAt?: boolean | number
updatedAt?: boolean | number
__typename?: boolean | number
__scalar?: boolean | number
}
export interface CommandMenuItemPayloadGenqlSelection{
on_PathCommandMenuItemPayload?:PathCommandMenuItemPayloadGenqlSelection,
on_ObjectMetadataCommandMenuItemPayload?:ObjectMetadataCommandMenuItemPayloadGenqlSelection,
__typename?: boolean | number
}
export interface PathCommandMenuItemPayloadGenqlSelection{
path?: boolean | number
__typename?: boolean | number
__scalar?: boolean | number
}
export interface ObjectMetadataCommandMenuItemPayloadGenqlSelection{
objectMetadataItemId?: boolean | number
__typename?: boolean | number
__scalar?: boolean | number
}
export interface LogicFunctionGenqlSelection{
id?: boolean | number
name?: boolean | number
@@ -3129,11 +3198,11 @@ export interface LogicFunctionGenqlSelection{
timeoutSeconds?: boolean | number
sourceHandlerPath?: boolean | number
handlerName?: boolean | number
toolInputSchema?: boolean | number
isTool?: boolean | number
cronTriggerSettings?: boolean | number
databaseEventTriggerSettings?: boolean | number
httpRouteTriggerSettings?: boolean | number
toolTriggerSettings?: boolean | number
workflowActionTriggerSettings?: boolean | number
applicationId?: boolean | number
universalIdentifier?: boolean | number
createdAt?: boolean | number
@@ -3309,6 +3378,7 @@ export interface ApplicationGenqlSelection{
defaultLogicFunctionRole?: RoleGenqlSelection
agents?: AgentGenqlSelection
frontComponents?: FrontComponentGenqlSelection
commandMenuItems?: CommandMenuItemGenqlSelection
logicFunctions?: LogicFunctionGenqlSelection
objects?: ObjectGenqlSelection
applicationVariables?: ApplicationVariableGenqlSelection
@@ -3518,7 +3588,6 @@ export interface UserGenqlSelection{
firstName?: boolean | number
lastName?: boolean | number
email?: boolean | number
defaultAvatarUrl?: boolean | number
isEmailVerified?: boolean | number
disabled?: boolean | number
canImpersonate?: boolean | number
@@ -3916,6 +3985,24 @@ export interface PageLayoutGenqlSelection{
__scalar?: boolean | number
}
export interface ApplicationConnectionProviderOAuthConfigGenqlSelection{
scopes?: boolean | number
isClientCredentialsConfigured?: boolean | number
__typename?: boolean | number
__scalar?: boolean | number
}
export interface ApplicationConnectionProviderGenqlSelection{
id?: boolean | number
applicationId?: boolean | number
type?: boolean | number
name?: boolean | number
displayName?: boolean | number
oauth?: ApplicationConnectionProviderOAuthConfigGenqlSelection
__typename?: boolean | number
__scalar?: boolean | number
}
export interface AnalyticsGenqlSelection{
/** Boolean that confirms query was dispatched */
success?: boolean | number
@@ -5027,48 +5114,6 @@ export interface PostgresCredentialsGenqlSelection{
__scalar?: boolean | number
}
export interface CommandMenuItemGenqlSelection{
id?: boolean | number
workflowVersionId?: boolean | number
frontComponentId?: boolean | number
frontComponent?: FrontComponentGenqlSelection
engineComponentKey?: boolean | number
label?: boolean | number
icon?: boolean | number
shortLabel?: boolean | number
position?: boolean | number
isPinned?: boolean | number
availabilityType?: boolean | number
payload?: CommandMenuItemPayloadGenqlSelection
hotKeys?: boolean | number
conditionalAvailabilityExpression?: boolean | number
availabilityObjectMetadataId?: boolean | number
pageLayoutId?: boolean | number
applicationId?: boolean | number
createdAt?: boolean | number
updatedAt?: boolean | number
__typename?: boolean | number
__scalar?: boolean | number
}
export interface CommandMenuItemPayloadGenqlSelection{
on_PathCommandMenuItemPayload?:PathCommandMenuItemPayloadGenqlSelection,
on_ObjectMetadataCommandMenuItemPayload?:ObjectMetadataCommandMenuItemPayloadGenqlSelection,
__typename?: boolean | number
}
export interface PathCommandMenuItemPayloadGenqlSelection{
path?: boolean | number
__typename?: boolean | number
__scalar?: boolean | number
}
export interface ObjectMetadataCommandMenuItemPayloadGenqlSelection{
objectMetadataItemId?: boolean | number
__typename?: boolean | number
__scalar?: boolean | number
}
export interface ToolIndexEntryGenqlSelection{
name?: boolean | number
description?: boolean | number
@@ -5209,6 +5254,10 @@ export interface ConnectedAccountDTOGenqlSelection{
connectionParameters?: ImapSmtpCaldavConnectionParametersGenqlSelection
lastSignedInAt?: boolean | number
userWorkspaceId?: boolean | number
connectionProviderId?: boolean | number
applicationId?: boolean | number
name?: boolean | number
visibility?: boolean | number
createdAt?: boolean | number
updatedAt?: boolean | number
__typename?: boolean | number
@@ -5242,6 +5291,10 @@ export interface ConnectedAccountPublicDTOGenqlSelection{
scopes?: boolean | number
lastSignedInAt?: boolean | number
userWorkspaceId?: boolean | number
connectionProviderId?: boolean | number
applicationId?: boolean | number
name?: boolean | number
visibility?: boolean | number
createdAt?: boolean | number
updatedAt?: boolean | number
connectionParameters?: PublicImapSmtpCaldavConnectionParametersGenqlSelection
@@ -5530,6 +5583,7 @@ export interface QueryGenqlSelection{
getPageLayoutTab?: (PageLayoutTabGenqlSelection & { __args: {id: Scalars['String']} })
getPageLayouts?: (PageLayoutGenqlSelection & { __args?: {objectMetadataId?: (Scalars['String'] | null), pageLayoutType?: (PageLayoutType | null)} })
getPageLayout?: (PageLayoutGenqlSelection & { __args: {id: Scalars['String']} })
applicationConnectionProviders?: (ApplicationConnectionProviderGenqlSelection & { __args: {applicationId: Scalars['UUID']} })
getPageLayoutWidgets?: (PageLayoutWidgetGenqlSelection & { __args: {pageLayoutTabId: Scalars['String']} })
getPageLayoutWidget?: (PageLayoutWidgetGenqlSelection & { __args: {id: Scalars['String']} })
findOneLogicFunction?: (LogicFunctionGenqlSelection & { __args: {input: LogicFunctionIdInput} })
@@ -5726,6 +5780,7 @@ export interface MutationGenqlSelection{
resetPageLayoutToDefault?: (PageLayoutGenqlSelection & { __args: {id: Scalars['String']} })
resetPageLayoutWidgetToDefault?: (PageLayoutWidgetGenqlSelection & { __args: {id: Scalars['String']} })
resetPageLayoutTabToDefault?: (PageLayoutTabGenqlSelection & { __args: {id: Scalars['String']} })
updateOneApplicationVariable?: { __args: {key: Scalars['String'], value: Scalars['String'], applicationId: Scalars['UUID']} }
createPageLayoutWidget?: (PageLayoutWidgetGenqlSelection & { __args: {input: CreatePageLayoutWidgetInput} })
updatePageLayoutWidget?: (PageLayoutWidgetGenqlSelection & { __args: {id: Scalars['String'], input: UpdatePageLayoutWidgetInput} })
destroyPageLayoutWidget?: { __args: {id: Scalars['String']} }
@@ -5828,7 +5883,6 @@ export interface MutationGenqlSelection{
installApplication?: { __args: {appRegistrationId: Scalars['String'], version?: (Scalars['String'] | null)} }
runWorkspaceMigration?: { __args: {workspaceMigration: WorkspaceMigrationInput} }
uninstallApplication?: { __args: {universalIdentifier: Scalars['String']} }
updateOneApplicationVariable?: { __args: {key: Scalars['String'], value: Scalars['String'], applicationId: Scalars['UUID']} }
createOIDCIdentityProvider?: (SetupSsoGenqlSelection & { __args: {input: SetupOIDCSsoInput} })
createSAMLIdentityProvider?: (SetupSsoGenqlSelection & { __args: {input: SetupSAMLSsoInput} })
deleteSSOIdentityProvider?: (DeleteSsoGenqlSelection & { __args: {input: DeleteSsoInput} })
@@ -6026,7 +6080,7 @@ export interface CreatePageLayoutWidgetInput {pageLayoutTabId: Scalars['UUID'],t
export interface UpdatePageLayoutWidgetInput {pageLayoutTabId?: (Scalars['UUID'] | null),title?: (Scalars['String'] | null),type?: (WidgetType | null),objectMetadataId?: (Scalars['UUID'] | null),gridPosition?: (GridPositionInput | null),position?: (Scalars['JSON'] | null),configuration?: (Scalars['JSON'] | null),conditionalDisplay?: (Scalars['JSON'] | null),conditionalAvailabilityExpression?: (Scalars['String'] | null)}
export interface CreateLogicFunctionFromSourceInput {id?: (Scalars['UUID'] | null),universalIdentifier?: (Scalars['UUID'] | null),name: Scalars['String'],description?: (Scalars['String'] | null),timeoutSeconds?: (Scalars['Float'] | null),toolInputSchema?: (Scalars['JSON'] | null),isTool?: (Scalars['Boolean'] | null),source?: (Scalars['JSON'] | null),cronTriggerSettings?: (Scalars['JSON'] | null),databaseEventTriggerSettings?: (Scalars['JSON'] | null),httpRouteTriggerSettings?: (Scalars['JSON'] | null)}
export interface CreateLogicFunctionFromSourceInput {id?: (Scalars['UUID'] | null),universalIdentifier?: (Scalars['UUID'] | null),name: Scalars['String'],description?: (Scalars['String'] | null),timeoutSeconds?: (Scalars['Float'] | null),source?: (Scalars['JSON'] | null),cronTriggerSettings?: (Scalars['JSON'] | null),databaseEventTriggerSettings?: (Scalars['JSON'] | null),httpRouteTriggerSettings?: (Scalars['JSON'] | null),toolTriggerSettings?: (Scalars['JSON'] | null),workflowActionTriggerSettings?: (Scalars['JSON'] | null)}
export interface ExecuteOneLogicFunctionInput {
/** Id of the logic function to execute */
@@ -6040,7 +6094,7 @@ id: Scalars['UUID'],
/** The logic function updates */
update: UpdateLogicFunctionFromSourceInputUpdates}
export interface UpdateLogicFunctionFromSourceInputUpdates {name?: (Scalars['String'] | null),description?: (Scalars['String'] | null),timeoutSeconds?: (Scalars['Float'] | null),sourceHandlerCode?: (Scalars['String'] | null),toolInputSchema?: (Scalars['JSON'] | null),handlerName?: (Scalars['String'] | null),sourceHandlerPath?: (Scalars['String'] | null),isTool?: (Scalars['Boolean'] | null),cronTriggerSettings?: (Scalars['JSON'] | null),databaseEventTriggerSettings?: (Scalars['JSON'] | null),httpRouteTriggerSettings?: (Scalars['JSON'] | null)}
export interface UpdateLogicFunctionFromSourceInputUpdates {name?: (Scalars['String'] | null),description?: (Scalars['String'] | null),timeoutSeconds?: (Scalars['Float'] | null),sourceHandlerCode?: (Scalars['String'] | null),handlerName?: (Scalars['String'] | null),sourceHandlerPath?: (Scalars['String'] | null),cronTriggerSettings?: (Scalars['JSON'] | null),databaseEventTriggerSettings?: (Scalars['JSON'] | null),httpRouteTriggerSettings?: (Scalars['JSON'] | null),toolTriggerSettings?: (Scalars['JSON'] | null),workflowActionTriggerSettings?: (Scalars['JSON'] | null)}
export interface CreateCommandMenuItemInput {workflowVersionId?: (Scalars['UUID'] | null),frontComponentId?: (Scalars['UUID'] | null),engineComponentKey: EngineComponentKey,label: Scalars['String'],icon?: (Scalars['String'] | null),shortLabel?: (Scalars['String'] | null),position?: (Scalars['Float'] | null),isPinned?: (Scalars['Boolean'] | null),availabilityType?: (CommandMenuItemAvailabilityType | null),hotKeys?: (Scalars['String'][] | null),conditionalAvailabilityExpression?: (Scalars['String'] | null),availabilityObjectMetadataId?: (Scalars['UUID'] | null),payload?: (Scalars['JSON'] | null),pageLayoutId?: (Scalars['UUID'] | null)}
@@ -6391,6 +6445,38 @@ export interface LogicFunctionLogsInput {applicationId?: (Scalars['UUID'] | null
const CommandMenuItem_possibleTypes: string[] = ['CommandMenuItem']
export const isCommandMenuItem = (obj?: { __typename?: any } | null): obj is CommandMenuItem => {
if (!obj?.__typename) throw new Error('__typename is missing in "isCommandMenuItem"')
return CommandMenuItem_possibleTypes.includes(obj.__typename)
}
const CommandMenuItemPayload_possibleTypes: string[] = ['PathCommandMenuItemPayload','ObjectMetadataCommandMenuItemPayload']
export const isCommandMenuItemPayload = (obj?: { __typename?: any } | null): obj is CommandMenuItemPayload => {
if (!obj?.__typename) throw new Error('__typename is missing in "isCommandMenuItemPayload"')
return CommandMenuItemPayload_possibleTypes.includes(obj.__typename)
}
const PathCommandMenuItemPayload_possibleTypes: string[] = ['PathCommandMenuItemPayload']
export const isPathCommandMenuItemPayload = (obj?: { __typename?: any } | null): obj is PathCommandMenuItemPayload => {
if (!obj?.__typename) throw new Error('__typename is missing in "isPathCommandMenuItemPayload"')
return PathCommandMenuItemPayload_possibleTypes.includes(obj.__typename)
}
const ObjectMetadataCommandMenuItemPayload_possibleTypes: string[] = ['ObjectMetadataCommandMenuItemPayload']
export const isObjectMetadataCommandMenuItemPayload = (obj?: { __typename?: any } | null): obj is ObjectMetadataCommandMenuItemPayload => {
if (!obj?.__typename) throw new Error('__typename is missing in "isObjectMetadataCommandMenuItemPayload"')
return ObjectMetadataCommandMenuItemPayload_possibleTypes.includes(obj.__typename)
}
const LogicFunction_possibleTypes: string[] = ['LogicFunction']
export const isLogicFunction = (obj?: { __typename?: any } | null): obj is LogicFunction => {
if (!obj?.__typename) throw new Error('__typename is missing in "isLogicFunction"')
@@ -6807,6 +6893,22 @@ export interface LogicFunctionLogsInput {applicationId?: (Scalars['UUID'] | null
const ApplicationConnectionProviderOAuthConfig_possibleTypes: string[] = ['ApplicationConnectionProviderOAuthConfig']
export const isApplicationConnectionProviderOAuthConfig = (obj?: { __typename?: any } | null): obj is ApplicationConnectionProviderOAuthConfig => {
if (!obj?.__typename) throw new Error('__typename is missing in "isApplicationConnectionProviderOAuthConfig"')
return ApplicationConnectionProviderOAuthConfig_possibleTypes.includes(obj.__typename)
}
const ApplicationConnectionProvider_possibleTypes: string[] = ['ApplicationConnectionProvider']
export const isApplicationConnectionProvider = (obj?: { __typename?: any } | null): obj is ApplicationConnectionProvider => {
if (!obj?.__typename) throw new Error('__typename is missing in "isApplicationConnectionProvider"')
return ApplicationConnectionProvider_possibleTypes.includes(obj.__typename)
}
const Analytics_possibleTypes: string[] = ['Analytics']
export const isAnalytics = (obj?: { __typename?: any } | null): obj is Analytics => {
if (!obj?.__typename) throw new Error('__typename is missing in "isAnalytics"')
@@ -7807,38 +7909,6 @@ export interface LogicFunctionLogsInput {applicationId?: (Scalars['UUID'] | null
const CommandMenuItem_possibleTypes: string[] = ['CommandMenuItem']
export const isCommandMenuItem = (obj?: { __typename?: any } | null): obj is CommandMenuItem => {
if (!obj?.__typename) throw new Error('__typename is missing in "isCommandMenuItem"')
return CommandMenuItem_possibleTypes.includes(obj.__typename)
}
const CommandMenuItemPayload_possibleTypes: string[] = ['PathCommandMenuItemPayload','ObjectMetadataCommandMenuItemPayload']
export const isCommandMenuItemPayload = (obj?: { __typename?: any } | null): obj is CommandMenuItemPayload => {
if (!obj?.__typename) throw new Error('__typename is missing in "isCommandMenuItemPayload"')
return CommandMenuItemPayload_possibleTypes.includes(obj.__typename)
}
const PathCommandMenuItemPayload_possibleTypes: string[] = ['PathCommandMenuItemPayload']
export const isPathCommandMenuItemPayload = (obj?: { __typename?: any } | null): obj is PathCommandMenuItemPayload => {
if (!obj?.__typename) throw new Error('__typename is missing in "isPathCommandMenuItemPayload"')
return PathCommandMenuItemPayload_possibleTypes.includes(obj.__typename)
}
const ObjectMetadataCommandMenuItemPayload_possibleTypes: string[] = ['ObjectMetadataCommandMenuItemPayload']
export const isObjectMetadataCommandMenuItemPayload = (obj?: { __typename?: any } | null): obj is ObjectMetadataCommandMenuItemPayload => {
if (!obj?.__typename) throw new Error('__typename is missing in "isObjectMetadataCommandMenuItemPayload"')
return ObjectMetadataCommandMenuItemPayload_possibleTypes.includes(obj.__typename)
}
const ToolIndexEntry_possibleTypes: string[] = ['ToolIndexEntry']
export const isToolIndexEntry = (obj?: { __typename?: any } | null): obj is ToolIndexEntry => {
if (!obj?.__typename) throw new Error('__typename is missing in "isToolIndexEntry"')
@@ -8238,6 +8308,82 @@ export const enumWorkspaceMemberNumberFormatEnum = {
APOSTROPHE_AND_DOT: 'APOSTROPHE_AND_DOT' as const
}
export const enumEngineComponentKey = {
NAVIGATE_TO_NEXT_RECORD: 'NAVIGATE_TO_NEXT_RECORD' as const,
NAVIGATE_TO_PREVIOUS_RECORD: 'NAVIGATE_TO_PREVIOUS_RECORD' as const,
CREATE_NEW_RECORD: 'CREATE_NEW_RECORD' as const,
DELETE_RECORDS: 'DELETE_RECORDS' as const,
RESTORE_RECORDS: 'RESTORE_RECORDS' as const,
DESTROY_RECORDS: 'DESTROY_RECORDS' as const,
ADD_TO_FAVORITES: 'ADD_TO_FAVORITES' as const,
REMOVE_FROM_FAVORITES: 'REMOVE_FROM_FAVORITES' as const,
EXPORT_NOTE_TO_PDF: 'EXPORT_NOTE_TO_PDF' as const,
EXPORT_RECORDS: 'EXPORT_RECORDS' as const,
UPDATE_MULTIPLE_RECORDS: 'UPDATE_MULTIPLE_RECORDS' as const,
MERGE_MULTIPLE_RECORDS: 'MERGE_MULTIPLE_RECORDS' as const,
IMPORT_RECORDS: 'IMPORT_RECORDS' as const,
EXPORT_VIEW: 'EXPORT_VIEW' as const,
SEE_DELETED_RECORDS: 'SEE_DELETED_RECORDS' as const,
CREATE_NEW_VIEW: 'CREATE_NEW_VIEW' as const,
HIDE_DELETED_RECORDS: 'HIDE_DELETED_RECORDS' as const,
EDIT_RECORD_PAGE_LAYOUT: 'EDIT_RECORD_PAGE_LAYOUT' as const,
EDIT_DASHBOARD_LAYOUT: 'EDIT_DASHBOARD_LAYOUT' as const,
SAVE_DASHBOARD_LAYOUT: 'SAVE_DASHBOARD_LAYOUT' as const,
CANCEL_DASHBOARD_LAYOUT: 'CANCEL_DASHBOARD_LAYOUT' as const,
DUPLICATE_DASHBOARD: 'DUPLICATE_DASHBOARD' as const,
ACTIVATE_WORKFLOW: 'ACTIVATE_WORKFLOW' as const,
DEACTIVATE_WORKFLOW: 'DEACTIVATE_WORKFLOW' as const,
DISCARD_DRAFT_WORKFLOW: 'DISCARD_DRAFT_WORKFLOW' as const,
TEST_WORKFLOW: 'TEST_WORKFLOW' as const,
SEE_ACTIVE_VERSION_WORKFLOW: 'SEE_ACTIVE_VERSION_WORKFLOW' as const,
SEE_RUNS_WORKFLOW: 'SEE_RUNS_WORKFLOW' as const,
SEE_VERSIONS_WORKFLOW: 'SEE_VERSIONS_WORKFLOW' as const,
ADD_NODE_WORKFLOW: 'ADD_NODE_WORKFLOW' as const,
TIDY_UP_WORKFLOW: 'TIDY_UP_WORKFLOW' as const,
DUPLICATE_WORKFLOW: 'DUPLICATE_WORKFLOW' as const,
SEE_VERSION_WORKFLOW_RUN: 'SEE_VERSION_WORKFLOW_RUN' as const,
SEE_WORKFLOW_WORKFLOW_RUN: 'SEE_WORKFLOW_WORKFLOW_RUN' as const,
STOP_WORKFLOW_RUN: 'STOP_WORKFLOW_RUN' as const,
SEE_RUNS_WORKFLOW_VERSION: 'SEE_RUNS_WORKFLOW_VERSION' as const,
SEE_WORKFLOW_WORKFLOW_VERSION: 'SEE_WORKFLOW_WORKFLOW_VERSION' as const,
USE_AS_DRAFT_WORKFLOW_VERSION: 'USE_AS_DRAFT_WORKFLOW_VERSION' as const,
SEE_VERSIONS_WORKFLOW_VERSION: 'SEE_VERSIONS_WORKFLOW_VERSION' as const,
SEARCH_RECORDS: 'SEARCH_RECORDS' as const,
SEARCH_RECORDS_FALLBACK: 'SEARCH_RECORDS_FALLBACK' as const,
ASK_AI: 'ASK_AI' as const,
VIEW_PREVIOUS_AI_CHATS: 'VIEW_PREVIOUS_AI_CHATS' as const,
NAVIGATION: 'NAVIGATION' as const,
TRIGGER_WORKFLOW_VERSION: 'TRIGGER_WORKFLOW_VERSION' as const,
FRONT_COMPONENT_RENDERER: 'FRONT_COMPONENT_RENDERER' as const,
REPLY_TO_EMAIL_THREAD: 'REPLY_TO_EMAIL_THREAD' as const,
COMPOSE_EMAIL: 'COMPOSE_EMAIL' as const,
GO_TO_PEOPLE: 'GO_TO_PEOPLE' as const,
GO_TO_COMPANIES: 'GO_TO_COMPANIES' as const,
GO_TO_DASHBOARDS: 'GO_TO_DASHBOARDS' as const,
GO_TO_OPPORTUNITIES: 'GO_TO_OPPORTUNITIES' as const,
GO_TO_SETTINGS: 'GO_TO_SETTINGS' as const,
GO_TO_TASKS: 'GO_TO_TASKS' as const,
GO_TO_NOTES: 'GO_TO_NOTES' as const,
GO_TO_WORKFLOWS: 'GO_TO_WORKFLOWS' as const,
GO_TO_RUNS: 'GO_TO_RUNS' as const,
DELETE_SINGLE_RECORD: 'DELETE_SINGLE_RECORD' as const,
DELETE_MULTIPLE_RECORDS: 'DELETE_MULTIPLE_RECORDS' as const,
RESTORE_SINGLE_RECORD: 'RESTORE_SINGLE_RECORD' as const,
RESTORE_MULTIPLE_RECORDS: 'RESTORE_MULTIPLE_RECORDS' as const,
DESTROY_SINGLE_RECORD: 'DESTROY_SINGLE_RECORD' as const,
DESTROY_MULTIPLE_RECORDS: 'DESTROY_MULTIPLE_RECORDS' as const,
EXPORT_FROM_RECORD_INDEX: 'EXPORT_FROM_RECORD_INDEX' as const,
EXPORT_FROM_RECORD_SHOW: 'EXPORT_FROM_RECORD_SHOW' as const,
EXPORT_MULTIPLE_RECORDS: 'EXPORT_MULTIPLE_RECORDS' as const
}
export const enumCommandMenuItemAvailabilityType = {
GLOBAL: 'GLOBAL' as const,
GLOBAL_OBJECT_CONTEXT: 'GLOBAL_OBJECT_CONTEXT' as const,
RECORD_SELECTION: 'RECORD_SELECTION' as const,
FALLBACK: 'FALLBACK' as const
}
export const enumFieldMetadataType = {
ACTOR: 'ACTOR' as const,
ADDRESS: 'ADDRESS' as const,
@@ -8597,82 +8743,6 @@ export const enumEmailingDomainStatus = {
TEMPORARY_FAILURE: 'TEMPORARY_FAILURE' as const
}
export const enumEngineComponentKey = {
NAVIGATE_TO_NEXT_RECORD: 'NAVIGATE_TO_NEXT_RECORD' as const,
NAVIGATE_TO_PREVIOUS_RECORD: 'NAVIGATE_TO_PREVIOUS_RECORD' as const,
CREATE_NEW_RECORD: 'CREATE_NEW_RECORD' as const,
DELETE_RECORDS: 'DELETE_RECORDS' as const,
RESTORE_RECORDS: 'RESTORE_RECORDS' as const,
DESTROY_RECORDS: 'DESTROY_RECORDS' as const,
ADD_TO_FAVORITES: 'ADD_TO_FAVORITES' as const,
REMOVE_FROM_FAVORITES: 'REMOVE_FROM_FAVORITES' as const,
EXPORT_NOTE_TO_PDF: 'EXPORT_NOTE_TO_PDF' as const,
EXPORT_RECORDS: 'EXPORT_RECORDS' as const,
UPDATE_MULTIPLE_RECORDS: 'UPDATE_MULTIPLE_RECORDS' as const,
MERGE_MULTIPLE_RECORDS: 'MERGE_MULTIPLE_RECORDS' as const,
IMPORT_RECORDS: 'IMPORT_RECORDS' as const,
EXPORT_VIEW: 'EXPORT_VIEW' as const,
SEE_DELETED_RECORDS: 'SEE_DELETED_RECORDS' as const,
CREATE_NEW_VIEW: 'CREATE_NEW_VIEW' as const,
HIDE_DELETED_RECORDS: 'HIDE_DELETED_RECORDS' as const,
EDIT_RECORD_PAGE_LAYOUT: 'EDIT_RECORD_PAGE_LAYOUT' as const,
EDIT_DASHBOARD_LAYOUT: 'EDIT_DASHBOARD_LAYOUT' as const,
SAVE_DASHBOARD_LAYOUT: 'SAVE_DASHBOARD_LAYOUT' as const,
CANCEL_DASHBOARD_LAYOUT: 'CANCEL_DASHBOARD_LAYOUT' as const,
DUPLICATE_DASHBOARD: 'DUPLICATE_DASHBOARD' as const,
ACTIVATE_WORKFLOW: 'ACTIVATE_WORKFLOW' as const,
DEACTIVATE_WORKFLOW: 'DEACTIVATE_WORKFLOW' as const,
DISCARD_DRAFT_WORKFLOW: 'DISCARD_DRAFT_WORKFLOW' as const,
TEST_WORKFLOW: 'TEST_WORKFLOW' as const,
SEE_ACTIVE_VERSION_WORKFLOW: 'SEE_ACTIVE_VERSION_WORKFLOW' as const,
SEE_RUNS_WORKFLOW: 'SEE_RUNS_WORKFLOW' as const,
SEE_VERSIONS_WORKFLOW: 'SEE_VERSIONS_WORKFLOW' as const,
ADD_NODE_WORKFLOW: 'ADD_NODE_WORKFLOW' as const,
TIDY_UP_WORKFLOW: 'TIDY_UP_WORKFLOW' as const,
DUPLICATE_WORKFLOW: 'DUPLICATE_WORKFLOW' as const,
SEE_VERSION_WORKFLOW_RUN: 'SEE_VERSION_WORKFLOW_RUN' as const,
SEE_WORKFLOW_WORKFLOW_RUN: 'SEE_WORKFLOW_WORKFLOW_RUN' as const,
STOP_WORKFLOW_RUN: 'STOP_WORKFLOW_RUN' as const,
SEE_RUNS_WORKFLOW_VERSION: 'SEE_RUNS_WORKFLOW_VERSION' as const,
SEE_WORKFLOW_WORKFLOW_VERSION: 'SEE_WORKFLOW_WORKFLOW_VERSION' as const,
USE_AS_DRAFT_WORKFLOW_VERSION: 'USE_AS_DRAFT_WORKFLOW_VERSION' as const,
SEE_VERSIONS_WORKFLOW_VERSION: 'SEE_VERSIONS_WORKFLOW_VERSION' as const,
SEARCH_RECORDS: 'SEARCH_RECORDS' as const,
SEARCH_RECORDS_FALLBACK: 'SEARCH_RECORDS_FALLBACK' as const,
ASK_AI: 'ASK_AI' as const,
VIEW_PREVIOUS_AI_CHATS: 'VIEW_PREVIOUS_AI_CHATS' as const,
NAVIGATION: 'NAVIGATION' as const,
TRIGGER_WORKFLOW_VERSION: 'TRIGGER_WORKFLOW_VERSION' as const,
FRONT_COMPONENT_RENDERER: 'FRONT_COMPONENT_RENDERER' as const,
REPLY_TO_EMAIL_THREAD: 'REPLY_TO_EMAIL_THREAD' as const,
COMPOSE_EMAIL: 'COMPOSE_EMAIL' as const,
GO_TO_PEOPLE: 'GO_TO_PEOPLE' as const,
GO_TO_COMPANIES: 'GO_TO_COMPANIES' as const,
GO_TO_DASHBOARDS: 'GO_TO_DASHBOARDS' as const,
GO_TO_OPPORTUNITIES: 'GO_TO_OPPORTUNITIES' as const,
GO_TO_SETTINGS: 'GO_TO_SETTINGS' as const,
GO_TO_TASKS: 'GO_TO_TASKS' as const,
GO_TO_NOTES: 'GO_TO_NOTES' as const,
GO_TO_WORKFLOWS: 'GO_TO_WORKFLOWS' as const,
GO_TO_RUNS: 'GO_TO_RUNS' as const,
DELETE_SINGLE_RECORD: 'DELETE_SINGLE_RECORD' as const,
DELETE_MULTIPLE_RECORDS: 'DELETE_MULTIPLE_RECORDS' as const,
RESTORE_SINGLE_RECORD: 'RESTORE_SINGLE_RECORD' as const,
RESTORE_MULTIPLE_RECORDS: 'RESTORE_MULTIPLE_RECORDS' as const,
DESTROY_SINGLE_RECORD: 'DESTROY_SINGLE_RECORD' as const,
DESTROY_MULTIPLE_RECORDS: 'DESTROY_MULTIPLE_RECORDS' as const,
EXPORT_FROM_RECORD_INDEX: 'EXPORT_FROM_RECORD_INDEX' as const,
EXPORT_FROM_RECORD_SHOW: 'EXPORT_FROM_RECORD_SHOW' as const,
EXPORT_MULTIPLE_RECORDS: 'EXPORT_MULTIPLE_RECORDS' as const
}
export const enumCommandMenuItemAvailabilityType = {
GLOBAL: 'GLOBAL' as const,
GLOBAL_OBJECT_CONTEXT: 'GLOBAL_OBJECT_CONTEXT' as const,
RECORD_SELECTION: 'RECORD_SELECTION' as const,
FALLBACK: 'FALLBACK' as const
}
export const enumCalendarChannelSyncStatus = {
NOT_SYNCED: 'NOT_SYNCED' as const,
ONGOING: 'ONGOING' as const,
@@ -8783,7 +8853,8 @@ export const enumAllMetadataName = {
objectPermission: 'objectPermission' as const,
fieldPermission: 'fieldPermission' as const,
frontComponent: 'frontComponent' as const,
webhook: 'webhook' as const
webhook: 'webhook' as const,
connectionProvider: 'connectionProvider' as const
}
export const enumEventLogTable = {
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -26,11 +26,11 @@ prod-run:
prod-postgres-run:
@docker run -d -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres --name twenty-postgres twenty-postgres:$(TAG)
prod-website-build:
@cd ../.. && docker build -f ./packages/twenty-docker/twenty-website/Dockerfile --platform $(PLATFORM) --tag twenty-website:$(TAG) . && cd -
prod-website-new-build:
@cd ../.. && docker build -f ./packages/twenty-docker/twenty-website-new/Dockerfile --platform $(PLATFORM) --tag twenty-website-new:$(TAG) . && cd -
prod-website-run:
@docker run -d -p 3000:3000 --name twenty-website twenty-website:$(TAG)
prod-website-new-run:
@docker run -d -p 3000:3000 --name twenty-website-new twenty-website-new:$(TAG)
# =============================================================================
# Local Development Services
@@ -1,43 +0,0 @@
FROM node:24-alpine AS twenty-website-build
WORKDIR /app
COPY ./package.json .
COPY ./yarn.lock .
COPY ./.yarnrc.yml .
COPY ./.yarn/releases /app/.yarn/releases
COPY ./.yarn/patches /app/.yarn/patches
COPY ./packages/twenty-oxlint-rules /app/packages/twenty-oxlint-rules
COPY ./packages/twenty-ui/package.json /app/packages/twenty-ui/
COPY ./packages/twenty-shared/package.json /app/packages/twenty-shared/
COPY ./packages/twenty-website/package.json /app/packages/twenty-website/package.json
RUN yarn
ENV KEYSTATIC_GITHUB_CLIENT_ID="<fake build value>"
ENV KEYSTATIC_GITHUB_CLIENT_SECRET="<fake build value>"
ENV KEYSTATIC_SECRET="<fake build value>"
ENV NEXT_PUBLIC_KEYSTATIC_GITHUB_APP_SLUG="<fake build value>"
COPY ./packages/twenty-ui /app/packages/twenty-ui
COPY ./packages/twenty-website /app/packages/twenty-website
RUN npx nx build twenty-website
FROM node:24-alpine AS twenty-website
WORKDIR /app/packages/twenty-website
COPY --from=twenty-website-build /app /app
WORKDIR /app/packages/twenty-website
LABEL org.opencontainers.image.source=https://github.com/twentyhq/twenty
LABEL org.opencontainers.image.description="This image provides a consistent and reproducible environment for the website."
RUN chown -R 1000 /app
# Use non root user with uid 1000
USER 1000
CMD ["/bin/sh", "-c", "npx nx start"]
+24 -18
View File
@@ -1,8 +1,26 @@
# ===========================================================================
# Shared build stages (used by both targets)
# Dependency stages
# ===========================================================================
FROM node:24-alpine AS common-deps
FROM node:24-alpine AS front-deps
WORKDIR /app
COPY ./package.json ./yarn.lock ./.yarnrc.yml ./tsconfig.base.json ./nx.json /app/
COPY ./.yarn/releases /app/.yarn/releases
COPY ./.yarn/patches /app/.yarn/patches
COPY ./packages/twenty-ui/package.json /app/packages/twenty-ui/
COPY ./packages/twenty-shared/package.json /app/packages/twenty-shared/
COPY ./packages/twenty-front/package.json /app/packages/twenty-front/
COPY ./packages/twenty-front-component-renderer/package.json /app/packages/twenty-front-component-renderer/
COPY ./packages/twenty-sdk/package.json /app/packages/twenty-sdk/
COPY ./packages/twenty-client-sdk/package.json /app/packages/twenty-client-sdk/
RUN yarn workspaces focus twenty twenty-front twenty-front-component-renderer twenty-ui twenty-shared twenty-sdk twenty-client-sdk && yarn cache clean && npx nx reset
FROM node:24-alpine AS server-deps
WORKDIR /app
@@ -13,22 +31,16 @@ COPY ./.yarn/patches /app/.yarn/patches
COPY ./packages/twenty-emails/package.json /app/packages/twenty-emails/
COPY ./packages/twenty-server/package.json /app/packages/twenty-server/
COPY ./packages/twenty-server/patches /app/packages/twenty-server/patches
COPY ./packages/twenty-ui/package.json /app/packages/twenty-ui/
COPY ./packages/twenty-shared/package.json /app/packages/twenty-shared/
COPY ./packages/twenty-front/package.json /app/packages/twenty-front/
COPY ./packages/twenty-front-component-renderer/package.json /app/packages/twenty-front-component-renderer/
COPY ./packages/twenty-sdk/package.json /app/packages/twenty-sdk/
COPY ./packages/twenty-client-sdk/package.json /app/packages/twenty-client-sdk/
RUN yarn && yarn cache clean && npx nx reset
RUN yarn workspaces focus twenty twenty-server twenty-emails twenty-shared twenty-client-sdk && yarn cache clean && npx nx reset
FROM common-deps AS twenty-server-build
FROM server-deps AS twenty-server-build
COPY ./packages/twenty-emails /app/packages/twenty-emails
COPY ./packages/twenty-shared /app/packages/twenty-shared
COPY ./packages/twenty-ui /app/packages/twenty-ui
COPY ./packages/twenty-sdk /app/packages/twenty-sdk
COPY ./packages/twenty-client-sdk /app/packages/twenty-client-sdk
COPY ./packages/twenty-server /app/packages/twenty-server
@@ -44,10 +56,10 @@ RUN npx nx run twenty-server:build
RUN find /app/packages/twenty-server/dist -name '*.d.ts' -delete \
&& rm -rf /app/packages/twenty-server/dist/packages/twenty-server/test
RUN yarn workspaces focus --production twenty-emails twenty-shared twenty-sdk twenty-client-sdk twenty-server
RUN yarn workspaces focus --production twenty-emails twenty-shared twenty-client-sdk twenty-server
FROM common-deps AS twenty-front-build
FROM front-deps AS twenty-front-build
COPY ./packages/twenty-front /app/packages/twenty-front
COPY ./packages/twenty-front-component-renderer /app/packages/twenty-front-component-renderer
@@ -99,11 +111,8 @@ COPY --chown=1000 --from=twenty-server-build /app/packages/twenty-shared/package
COPY --chown=1000 --from=twenty-server-build /app/packages/twenty-shared/dist /app/packages/twenty-shared/dist
COPY --chown=1000 --from=twenty-server-build /app/packages/twenty-emails/package.json /app/packages/twenty-emails/
COPY --chown=1000 --from=twenty-server-build /app/packages/twenty-emails/dist /app/packages/twenty-emails/dist
COPY --chown=1000 --from=twenty-server-build /app/packages/twenty-sdk/package.json /app/packages/twenty-sdk/
COPY --chown=1000 --from=twenty-server-build /app/packages/twenty-client-sdk/package.json /app/packages/twenty-client-sdk/
COPY --chown=1000 --from=twenty-server-build /app/packages/twenty-client-sdk/dist /app/packages/twenty-client-sdk/dist
COPY --chown=1000 --from=twenty-server-build /app/packages/twenty-ui/package.json /app/packages/twenty-ui/
COPY --chown=1000 --from=twenty-server-build /app/packages/twenty-front/package.json /app/packages/twenty-front/
LABEL org.opencontainers.image.source=https://github.com/twentyhq/twenty
LABEL org.opencontainers.image.description="Twenty server image (no frontend)."
@@ -208,11 +217,8 @@ COPY --from=twenty-server-build /app/packages/twenty-shared/package.json /app/pa
COPY --from=twenty-server-build /app/packages/twenty-shared/dist /app/packages/twenty-shared/dist
COPY --from=twenty-server-build /app/packages/twenty-emails/package.json /app/packages/twenty-emails/
COPY --from=twenty-server-build /app/packages/twenty-emails/dist /app/packages/twenty-emails/dist
COPY --from=twenty-server-build /app/packages/twenty-sdk/package.json /app/packages/twenty-sdk/
COPY --from=twenty-server-build /app/packages/twenty-client-sdk/package.json /app/packages/twenty-client-sdk/
COPY --from=twenty-server-build /app/packages/twenty-client-sdk/dist /app/packages/twenty-client-sdk/dist
COPY --from=twenty-server-build /app/packages/twenty-ui/package.json /app/packages/twenty-ui/
COPY --from=twenty-server-build /app/packages/twenty-front/package.json /app/packages/twenty-front/
# Frontend static build
COPY --from=twenty-front-build /app/packages/twenty-front/build /app/packages/twenty-server/dist/front
+3 -8
View File
@@ -77,14 +77,10 @@ To deploy to Mintlify:
3. Set subdirectory to `packages/twenty-docs`
4. Mintlify will auto-deploy and generate search embeddings
## Next Steps
## Status
1. **Manual Review** - Check for any component conversion issues
2. **Fix Image Paths** - Verify all images render correctly
3. **Test Navigation** - Ensure all internal links work
4. **Deploy** - Push to production Mintlify
5. **Update Helper Agent** - Verify searchArticles tool works with full content
6. **Deprecate twenty-website docs** - Once migration is confirmed working
This migration has been completed. The legacy `packages/twenty-website` package
has been removed, and documentation now lives in `packages/twenty-docs`.
## Known Issues to Review
@@ -92,4 +88,3 @@ To deploy to Mintlify:
- Some images may have incorrect paths
- Custom styled components may need adjustment
- Video embeds might need review
@@ -0,0 +1,193 @@
---
title: Connections
description: Let your app act on a user's behalf in third-party services via OAuth.
icon: 'plug'
---
Connections are credentials a user holds for an external service (Linear, GitHub, Slack, ...). Your app declares **how** those credentials are obtained — a **connection provider** — and consumes them at runtime to make authenticated calls to the third-party API.
Today only OAuth 2.0 is supported. Future credential types (personal access tokens, API keys, basic auth) will plug into the same surface — apps already using `defineConnectionProvider({ type: 'oauth', ... })` won't need to migrate.
<AccordionGroup>
<Accordion title="defineConnectionProvider" description="Declare how your app's connections are obtained">
A connection provider describes the OAuth handshake your app needs. The user clicks "Add connection" in your app's settings, completes the provider's consent screen, and a `ConnectedAccount` row is created in their workspace.
A working setup needs **two files** — the connection provider, and a matching `serverVariables` declaration on `defineApplication` that holds the OAuth client credentials.
```ts src/connection-providers/linear-connection.ts
import { defineConnectionProvider } from 'twenty-sdk/define';
export default defineConnectionProvider({
universalIdentifier: '9c7d1f5e-6a0b-4d44-be0c-3f8b5a9d4e6f',
name: 'linear',
displayName: 'Linear',
icon: 'IconBrandLinear',
type: 'oauth',
oauth: {
authorizationEndpoint: 'https://linear.app/oauth/authorize',
tokenEndpoint: 'https://api.linear.app/oauth/token',
scopes: ['read', 'write'],
// These must match keys in `defineApplication.serverVariables` below.
clientIdVariable: 'LINEAR_CLIENT_ID',
clientSecretVariable: 'LINEAR_CLIENT_SECRET',
// Optional: defaults to 'json'. Some providers (Linear, Slack) want
// 'form-urlencoded' for the token request.
tokenRequestContentType: 'form-urlencoded',
// Optional: defaults to true. Disable only if the provider rejects PKCE.
usePkce: false,
// Optional: extra query params on the authorize URL.
// authorizationParams: { prompt: 'consent' },
// Optional: provider's RFC 7009 token revocation endpoint, called on disconnect.
// revokeEndpoint: 'https://example.com/oauth/revoke',
},
});
```
```ts src/application.config.ts
import { defineApplication } from 'twenty-sdk/define';
export default defineApplication({
universalIdentifier: '...',
displayName: 'Linear',
description: 'Connect Linear to Twenty.',
defaultRoleUniversalIdentifier: '...',
// OAuth client credentials live on the app registration (one OAuth app per
// Twenty server, configured by the admin) — not per-workspace. Declare them
// as serverVariables so the admin can fill them in once for all installs.
serverVariables: {
LINEAR_CLIENT_ID: {
description: 'OAuth client ID from your Linear OAuth application.',
isSecret: false,
isRequired: true,
},
LINEAR_CLIENT_SECRET: {
description: 'OAuth client secret from your Linear OAuth application.',
isSecret: true,
isRequired: true,
},
},
});
```
Key points:
- `name` is the unique identifier string used in `listConnections({ providerName })` (kebab-case, must match `^[a-z][a-z0-9-]*$`).
- `displayName` shows in the per-app settings tab and in the AI tool list.
- `clientIdVariable` / `clientSecretVariable` are **names**, not values — they must match keys declared in `defineApplication.serverVariables`. The actual `client_id` and `client_secret` are entered by the server admin through the app registration UI, never committed to your repo.
- Use `serverVariables` (not `applicationVariables`) — OAuth credentials are server-wide and one OAuth app per Twenty server.
- Until both `serverVariables` are filled in, the per-app settings tab shows a "needs server admin" hint and the "Add connection" button is disabled.
- `type: 'oauth'` is the only supported value today. The discriminator is forward-compatible: future types (`'pat'`, `'api-key'`, ...) will add new sub-config blocks alongside `oauth`.
The OAuth callback URL your provider needs to whitelist is:
```
https://<your-twenty-server>/apps/oauth/callback
```
</Accordion>
<Accordion title="listConnections / getConnection" description="Use connections from a logic function">
Inside a logic function handler, `listConnections({ providerName })` returns this app's `ConnectedAccount` rows for the given provider, with refreshed access tokens.
```ts src/logic-functions/handlers/create-linear-issue-handler.ts
import { listConnections } from 'twenty-sdk/logic-function';
export const createLinearIssueHandler = async (input: {
teamId?: string;
title?: string;
}) => {
if (!input.teamId || !input.title) {
return { success: false, error: 'teamId and title are required' };
}
const connections = await listConnections({ providerName: 'linear' });
// Workspace-shared credentials win when present; fall back to the first
// user-visibility one. For HTTP-route triggers you typically pick the
// request user's connection via event.userWorkspaceId instead.
const connection =
connections.find((c) => c.visibility === 'workspace') ?? connections[0];
if (!connection) {
return {
success: false,
error:
'Linear is not connected. Open the app settings and click "Add connection".',
};
}
// Use connection.accessToken to call the third-party API.
const response = await fetch('https://api.linear.app/graphql', {
method: 'POST',
headers: {
Authorization: `Bearer ${connection.accessToken}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: `mutation { issueCreate(input: { teamId: "${input.teamId}", title: "${input.title}" }) { success } }`,
}),
});
return { success: response.ok };
};
```
Each connection has:
| Field | Description |
| ----------------- | -------------------------------------------------------------------------------------------------------- |
| `id` | Unique row id; pass to `getConnection(id)` to refetch a single one |
| `visibility` | `'user'` (private to one workspace member) or `'workspace'` (shared with all members) |
| `scopes` | OAuth permissions granted by the upstream provider (distinct from `visibility` — those are unrelated) |
| `userWorkspaceId` | The owner's userWorkspace id — useful for picking "the request user's connection" in HTTP-route triggers |
| `accessToken` | Fresh OAuth access token (refreshed automatically if expired) |
| `name` / `handle` | The connection's display name (auto-derived at OAuth callback, user-renameable) |
| `authFailedAt` | Set when the most recent refresh failed; the user must reconnect |
Key points:
- Pass `{ providerName }` to filter by provider; omit it to get all connections this app owns across all providers.
- The server transparently refreshes the access token before returning. Your handler always sees a usable token (or `authFailedAt` set).
- `getConnection(id)` is the single-row equivalent.
</Accordion>
<Accordion title="Per-user vs workspace-shared visibility" description="How users choose between private and shared credentials">
When a user clicks "Add connection," they're prompted to pick a visibility:
- **Just for me** — the credential is private to the connecting user. Any logic function called on their behalf (HTTP-route trigger with `isAuthRequired: true`) sees it; cron triggers and database events do not.
- **Workspace shared** — any workspace member can use the credential. Cron / database triggers also see it, since they have no request user.
Use the right one for each handler:
```ts
// HTTP-route trigger — prefer the request user's own connection.
const conn =
connections.find((c) => c.userWorkspaceId === event.userWorkspaceId) ??
connections.find((c) => c.visibility === 'workspace');
// Cron trigger — no request user; only shared credentials are sensible.
const conn = connections.find((c) => c.visibility === 'workspace');
```
Multiple connections per (user, provider) are allowed, so the same user can hold "Personal Linear" and "Work Linear" side by side.
</Accordion>
<Accordion title="One-time provider setup" description="Register your OAuth app with the third-party service">
For each connection provider, the server admin needs to register an OAuth app at the third party first.
1. Go to the provider's developer settings (e.g. https://linear.app/settings/api/applications/new).
2. Set the **Redirect URI** to `<SERVER_URL>/apps/oauth/callback`.
3. Copy the generated **Client ID** and **Client Secret**.
4. Open the installed app in Twenty as a server admin → set the values on the corresponding `serverVariables`.
5. Workspace members can then add connections from the per-app **Connections** section.
</Accordion>
</AccordionGroup>
@@ -15,7 +15,7 @@ Front components can render in two locations within Twenty:
## Basic example
The quickest way to see a front component in action is to register it as a **command**. Adding a `command` field with `isPinned: true` makes it appear as a quick-action button in the top-right corner of the page — no page layout needed:
The quickest way to see a front component in action is to register it with a **command menu item**. Use `defineCommandMenuItem` in a separate file to make the component appear as a quick-action button in the top-right corner of the page:
```tsx src/front-components/hello-world.tsx
import { defineFrontComponent } from 'twenty-sdk/define';
@@ -34,14 +34,20 @@ export default defineFrontComponent({
name: 'hello-world',
description: 'A simple front component',
component: HelloWorld,
command: {
universalIdentifier: 'd4e5f6a7-b8c9-0123-defa-456789012345',
shortLabel: 'Hello',
label: 'Hello World',
icon: 'IconBolt',
isPinned: true,
availabilityType: 'GLOBAL',
},
});
```
```ts src/command-menu-items/hello-world.command-menu-item.ts
import { defineCommandMenuItem } from 'twenty-sdk/define';
export default defineCommandMenuItem({
universalIdentifier: 'd4e5f6a7-b8c9-0123-defa-456789012345',
shortLabel: 'Hello',
label: 'Hello World',
icon: 'IconBolt',
isPinned: true,
availabilityType: 'GLOBAL',
frontComponentUniversalIdentifier: '74c526eb-cb68-4cf7-b05c-0dd8c288d948',
});
```
@@ -62,7 +68,6 @@ Click it to render the component inline.
| `name` | No | Display name |
| `description` | No | Description of what the component does |
| `isHeadless` | No | Set to `true` if the component has no visible UI (see below) |
| `command` | No | Register the component as a command (see [command options](#command-options) below) |
## Placing a front component on a page
@@ -141,11 +146,17 @@ export default defineFrontComponent({
description: 'Creates a task from the command menu',
component: RunAction,
isHeadless: true,
command: {
universalIdentifier: 'f6a7b8c9-d0e1-2345-fabc-456789012345',
label: 'Run my action',
icon: 'IconPlayerPlay',
},
});
```
```ts src/command-menu-items/run-action.command-menu-item.ts
import { defineCommandMenuItem } from 'twenty-sdk/define';
export default defineCommandMenuItem({
universalIdentifier: 'f6a7b8c9-d0e1-2345-fabc-456789012345',
label: 'Run my action',
icon: 'IconPlayerPlay',
frontComponentUniversalIdentifier: 'e5f6a7b8-c9d0-1234-efab-345678901234',
});
```
@@ -177,11 +188,6 @@ export default defineFrontComponent({
description: 'Deletes a draft with confirmation',
component: DeleteDraft,
isHeadless: true,
command: {
universalIdentifier: 'b8c9d0e1-f2a3-4567-bcde-678901234567',
label: 'Delete draft',
icon: 'IconTrash',
},
});
```
@@ -223,7 +229,8 @@ Available hooks:
| Hook | Returns | Description |
|------|---------|-------------|
| `useUserId()` | `string` or `null` | The current user's ID |
| `useRecordId()` | `string` or `null` | The current record's ID (when placed on a record page) |
| `useSelectedRecordIds()` | `string[]` | All selected record IDs (empty array if none selected) |
| `useRecordId()` | `string` or `null` | **Deprecated.** Use `useSelectedRecordIds()` instead |
| `useFrontComponentId()` | `string` | This component instance's ID |
| `useFrontComponentExecutionContext(selector)` | varies | Access the full execution context with a selector function |
@@ -286,14 +293,84 @@ export default defineFrontComponent({
});
```
## Command options
### Working with multiple records
Adding a `command` field to `defineFrontComponent` registers the component in the command menu (Cmd+K). If `isPinned` is `true`, it also appears as a quick-action button in the top-right corner of the page.
Use `useSelectedRecordIds()` to handle multiple selected records. This is useful for bulk operations:
```tsx src/front-components/bulk-export.tsx
import { defineFrontComponent } from 'twenty-sdk/define';
import { useSelectedRecordIds, numberOfSelectedRecords } from 'twenty-sdk/front-component';
import { enqueueSnackbar, closeSidePanel } from 'twenty-sdk/front-component';
import { CoreApiClient } from 'twenty-sdk/clients';
const BulkExport = () => {
const selectedRecordIds = useSelectedRecordIds();
const handleExport = async () => {
const client = new CoreApiClient();
for (const recordId of selectedRecordIds) {
await client.mutation({
updateTask: {
__args: { id: recordId, data: { exported: true } },
id: true,
},
});
}
await enqueueSnackbar({
message: `Exported ${selectedRecordIds.length} records`,
variant: 'success',
});
await closeSidePanel();
};
return (
<div style={{ padding: '20px' }}>
<p>Export {selectedRecordIds.length} selected record(s)?</p>
<button onClick={handleExport}>Export</button>
</div>
);
};
export default defineFrontComponent({
universalIdentifier: 'd0e1f2a3-b4c5-6789-defa-012345678901',
name: 'bulk-export',
description: 'Export selected records',
component: BulkExport,
command: {
universalIdentifier: 'd0e1f2a3-b4c5-6789-defa-012345678902',
label: 'Bulk Export',
availabilityType: 'RECORD_SELECTION',
conditionalAvailabilityExpression: numberOfSelectedRecords > 0,
},
});
```
## defineCommandMenuItem
Use `defineCommandMenuItem` to register a front component in the command menu (Cmd+K). If `isPinned` is `true`, it also appears as a quick-action button in the top-right corner of the page.
```ts src/command-menu-items/open-dashboard.command-menu-item.ts
import { defineCommandMenuItem } from 'twenty-sdk/define';
export default defineCommandMenuItem({
universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
label: 'Open Dashboard',
shortLabel: 'Dashboard',
icon: 'IconLayoutDashboard',
isPinned: true,
availabilityType: 'GLOBAL',
frontComponentUniversalIdentifier: '74c526eb-cb68-4cf7-b05c-0dd8c288d948',
});
```
| Field | Required | Description |
|-------|----------|-------------|
| `universalIdentifier` | Yes | Stable unique ID for the command |
| `label` | Yes | Full label shown in the command menu (Cmd+K) |
| `frontComponentUniversalIdentifier` | Yes | The `universalIdentifier` of the front component this command opens |
| `shortLabel` | No | Shorter label displayed on the pinned quick-action button |
| `icon` | No | Icon name displayed next to the label (e.g. `'IconBolt'`, `'IconSend'`) |
| `isPinned` | No | When `true`, shows the command as a quick-action button in the top-right corner of the page |
@@ -305,30 +382,23 @@ Adding a `command` field to `defineFrontComponent` registers the component in th
The `conditionalAvailabilityExpression` field lets you control when a command is visible based on the current page context. Import typed variables and operators from `twenty-sdk` to build expressions:
```tsx
import { defineFrontComponent } from 'twenty-sdk/define';
```ts src/command-menu-items/bulk-update.command-menu-item.ts
import { defineCommandMenuItem } from 'twenty-sdk/define';
import {
pageType,
numberOfSelectedRecords,
objectPermissions,
everyEquals,
isDefined,
} from 'twenty-sdk/front-component';
export default defineFrontComponent({
export default defineCommandMenuItem({
universalIdentifier: '...',
name: 'bulk-action',
component: BulkAction,
command: {
universalIdentifier: '...',
label: 'Bulk Update',
availabilityType: 'RECORD_SELECTION',
conditionalAvailabilityExpression: everyEquals(
objectPermissions,
'canUpdateObjectRecords',
true,
),
},
label: 'Bulk Update',
availabilityType: 'RECORD_SELECTION',
frontComponentUniversalIdentifier: '...',
conditionalAvailabilityExpression: everyEquals(
objectPermissions,
'canUpdateObjectRecords',
true,
),
});
```
@@ -4,48 +4,52 @@ icon: "rocket"
description: Create your first Twenty app in minutes.
---
## What are apps?
Apps let you extend Twenty with custom objects, fields, logic functions, front components, AI skills, and more — all managed as code. Instead of configuring everything through the UI, you define your data model and logic in TypeScript and deploy it to one or more workspaces.
## Prerequisites
Before you begin, make sure the following is installed on your machine:
- **Node.js 24+** — [Download](https://nodejs.org/)
- **Yarn 4** — bundled with Node via Corepack. Enable it: `corepack enable`
- **Docker** — [Download](https://www.docker.com/products/docker-desktop/). Needed to run a local Twenty server. Skip if you already have Twenty running elsewhere.
- **Node.js 24+** — [Download here](https://nodejs.org/)
- **Yarn 4** — Comes with Node.js via Corepack. Enable it by running `corepack enable`
- **Docker** — [Download here](https://www.docker.com/products/docker-desktop/). Required to run a local Twenty instance. Not needed if you already have a Twenty server running.
Building a Twenty app has three phases. The scaffolder collapses them into one happy-path command, but each phase is a separate concept — when something fails, knowing which phase you're in tells you what to fix.
## Create your first app
| Phase | What you do | Tool | Result |
|---|---|---|---|
| **1. Scaffold** | Generate the app's source code | `npx create-twenty-app` | A TypeScript project on disk |
| **2. Run a server** | Start a Twenty server to sync into | Docker + `yarn twenty server` | A running Twenty instance |
| **3. Sync** | Live-sync your code to the server | `yarn twenty dev` | Your changes appear in the UI |
### Scaffold your app
---
Open a terminal and run:
## Phase 1 — Scaffold your project
Create a new app from the template:
```bash filename="Terminal"
npx create-twenty-app@latest my-twenty-app
```
You will be prompted to enter a name and a description for your app. Press **Enter** to accept the defaults.
You'll be prompted for a name and description — press **Enter** for the defaults. This generates a TypeScript project in `my-twenty-app/` with a starter `application-config.ts`, a default role, a CI workflow, and an integration test.
This creates a new folder called `my-twenty-app` with everything you need.
**After this phase:** you have an app's source code on your machine. It isn't running yet — that's Phase 2.
### Set up a local Twenty instance
---
The scaffolder will ask:
## Phase 2 — Run a local Twenty server
Your app needs a Twenty server to sync into. The server is a full Twenty instance — UI, GraphQL API, PostgreSQL — running locally in Docker. Your local code uploads its definitions to that server, which makes them appear in the UI.
The scaffolder offers to start one for you:
> **Would you like to set up a local Twenty instance?**
- **Type `yes`** (recommended) — This pulls the `twenty-app-dev` Docker image and starts a local Twenty server on port `2020`. Make sure Docker is running before you continue.
- **Type `no`** — Choose this if you already have a Twenty server running locally.
- **Yes (recommended)** — pulls the `twentycrm/twenty-app-dev` Docker image and starts it on port `2020`. Make sure Docker is running first.
- **No** — choose this if you already have a Twenty server you want to connect to. You can wire it up later with `yarn twenty remote add`.
<div style={{textAlign: 'center'}}>
<img src="/images/docs/developers/extends/apps/start-instance.png" alt="Should start local instance?" />
</div>
### Sign in to your workspace
Next, a browser window will open with the Twenty login page. Sign in with the pre-seeded demo account:
Once the server is up, a browser opens for sign-in. Use the pre-seeded demo account:
- **Email:** `tim@apple.dev`
- **Password:** `tim@apple.dev`
@@ -54,50 +58,66 @@ Next, a browser window will open with the Twenty login page. Sign in with the pr
<img src="/images/docs/developers/extends/apps/login.png" alt="Twenty login screen" />
</div>
### Authorize the app
After you sign in, you will see an authorization screen. This lets your app interact with your workspace.
Click **Authorize** to continue.
Click **Authorize** on the next screen — this gives the CLI access to your workspace.
<div style={{textAlign: 'center'}}>
<img src="/images/docs/developers/extends/apps/authorize.png" alt="Twenty CLI authorization screen" />
</div>
Once authorized, your terminal will confirm that everything is set up.
Your terminal will confirm everything is set up.
<div style={{textAlign: 'center'}}>
<img src="/images/docs/developers/extends/apps/scaffolded.png" alt="App scaffolded successfully" />
</div>
### Start developing
**After this phase:** you have a running Twenty server at [http://localhost:2020](http://localhost:2020) with your CLI authorized to sync to it.
Go into your new app folder and start the development server:
<Note>
If Docker isn't installed or running, the scaffolder will tell you the right start command for your OS. Once Docker is up, you can resume with `yarn twenty server start` — no need to re-scaffold.
</Note>
---
## Phase 3 — Sync your changes
This is the inner loop you'll spend most of your time in.
```bash filename="Terminal"
cd my-twenty-app
yarn twenty dev
```
This watches your source files, rebuilds on every change, and syncs your app to the local Twenty server automatically. You should see a live status panel in your terminal.
This watches `src/`, rebuilds on every change, and syncs the result to the server. Edit a file, save, and within a second the server reflects the change. You'll see a live status panel in your terminal.
For more detailed output (build logs, sync requests, error traces), use the `--verbose` flag:
```bash filename="Terminal"
yarn twenty dev --verbose
```
<Warning>
Dev mode is only available on Twenty instances running in development (`NODE_ENV=development`). Production instances reject dev sync requests. Use `yarn twenty deploy` to deploy to production servers — see [Publishing Apps](/developers/extend/apps/publishing) for details.
</Warning>
For more detailed output (build logs, sync requests, error traces), add `--verbose`.
<div style={{textAlign: 'center'}}>
<img src="/images/docs/developers/extends/apps/dev.png" alt="Dev mode terminal output" />
</div>
#### One-shot sync with `yarn twenty dev --once`
Open [http://localhost:2020/settings/applications#developer](http://localhost:2020/settings/applications#developer). You should see your app under **Your Apps**.
If you do not want a watcher running in the background (for example in a CI pipeline, a git hook, or a scripted workflow), pass the `--once` flag. It runs the same pipeline as `yarn twenty dev` — build manifest, bundle files, upload, sync, regenerate the typed API client — but **exits as soon as the sync completes**:
<div style={{textAlign: 'center'}}>
<img src="/images/docs/developers/extends/apps/app-in-ui-1.png" alt="Your Apps list showing My twenty app" />
</div>
Click **My twenty app** to see its **application registration** — a server-level record describing your app (name, identifier, OAuth credentials, source). One registration can be installed across multiple workspaces on the same server.
<div style={{textAlign: 'center'}}>
<img src="/images/docs/developers/extends/apps/app-in-ui-2.png" alt="Application registration details" />
</div>
Click **View installed app** to see the workspace install. The **About** tab shows version and management options.
<div style={{textAlign: 'center'}}>
<img src="/images/docs/developers/extends/apps/app-in-ui-3.png" alt="Installed app" />
</div>
**After this phase:** you have a live development loop. Edit any file in `src/` and it appears in the UI.
### One-shot sync for CI and scripts
Pass `--once` to run a single build + sync and exit — same pipeline, no watcher:
```bash filename="Terminal"
yarn twenty dev --once
@@ -105,32 +125,14 @@ yarn twenty dev --once
| Command | Behavior | When to use |
|---------|----------|-------------|
| `yarn twenty dev` | Watches your source files and re-syncs on every change. Keeps running until you stop it. | Interactive local development — you want the live status panel and instant feedback loop. |
| `yarn twenty dev --once` | Performs a single build + sync, then exits with code `0` on success or `1` on failure. | Scripts, CI, pre-commit hooks, AI agents, and any non-interactive workflow. |
| `yarn twenty dev` | Watches and re-syncs on every change. Runs until you stop it. | Interactive local development. |
| `yarn twenty dev --once` | Single build + sync, exits `0` on success, `1` on failure. | CI, pre-commit hooks, AI agents, scripted workflows. |
Both modes require a Twenty server running in development mode and an authenticated remote — the same prerequisites apply.
Both modes need a server in development mode and an authenticated remote.
### See your app in Twenty
Open [http://localhost:2020/settings/applications#developer](http://localhost:2020/settings/applications#developer) in your browser. Navigate to **Settings > Apps** and select the **Developer** tab. You should see your app listed under **Your Apps**:
<div style={{textAlign: 'center'}}>
<img src="/images/docs/developers/extends/apps/app-in-ui-1.png" alt="Your Apps list showing My twenty app" />
</div>
Click on **My twenty app** to open its **application registration**. A registration is a server-level record that describes your app — its name, unique identifier, OAuth credentials, and source (local, npm, or tarball). It lives on the server, not inside any specific workspace. When you install an app into a workspace, Twenty creates a workspace-scoped **application** that points back to this registration. One registration can be installed across multiple workspaces on the same server.
<div style={{textAlign: 'center'}}>
<img src="/images/docs/developers/extends/apps/app-in-ui-2.png" alt="Application registration details" />
</div>
Click **View installed app** to see the installed app. The **About** tab shows the current version and management options:
<div style={{textAlign: 'center'}}>
<img src="/images/docs/developers/extends/apps/app-in-ui-3.png" alt="Installed app" />
</div>
You are all set! Edit any file in `src/` and the changes will be picked up automatically.
<Warning>
Dev mode is only available on Twenty instances running in development (`NODE_ENV=development`). Production instances reject dev sync requests — use `yarn twenty deploy` to deploy to production servers. See [Publishing Apps](/developers/extend/apps/publishing).
</Warning>
---
@@ -140,134 +142,110 @@ Apps are composed of **entities** — each defined as a TypeScript file with a s
| Entity | What it does |
|--------|-------------|
| **Objects & Fields** | Define custom data models (like Post Card, Invoice) with typed fields |
| **Logic functions** | Server-side TypeScript functions triggered by HTTP routes, cron schedules, or database events |
| **Objects & Fields** | Custom data models (Post Card, Invoice, etc.) with typed fields |
| **Logic functions** | Server-side TypeScript triggered by HTTP routes, cron schedules, or database events |
| **Front components** | React components that render inside Twenty's UI (side panel, widgets, command menu) |
| **Skills & Agents** | AI capabilities — reusable instructions and autonomous assistants |
| **Views & Navigation** | Pre-configured list views and sidebar menu items for your objects |
| **Views & Navigation** | Pre-configured list views and sidebar menu items |
| **Page layouts** | Custom record detail pages with tabs and widgets |
Head over to [Building Apps](/developers/extend/apps/building) for a detailed guide on each entity type.
---
Full reference: [Building Apps](/developers/extend/apps/building).
## Project structure
The scaffolder generates the following file structure:
```text filename="my-twenty-app/"
my-twenty-app/
package.json
yarn.lock
.gitignore
.nvmrc
.yarnrc.yml
.oxlintrc.json
tsconfig.json
tsconfig.spec.json # TypeScript config for tests
vitest.config.ts # Vitest test runner configuration
LLMS.md
README.md
.github/
└── workflows/
└── ci.yml # GitHub Actions CI workflow
public/ # Public assets (images, fonts, etc.)
src/
├── application-config.ts # Required — main application configuration
├── default-role.ts # Default role for logic functions
├── constants/
└── universal-identifiers.ts # Auto-generated UUIDs and app metadata
└── __tests__/
├── setup-test.ts # Test setup (server health check, config)
└── app-install.integration-test.ts # Integration test
application-config.ts # Required — your app's entry point
default-role.ts # Permissions for logic functions
constants/
universal-identifiers.ts # Auto-generated UUIDs and metadata
__tests__/
setup-test.ts
app-install.integration-test.ts
.github/workflows/ci.yml # GitHub Actions
public/ # Static assets
vitest.config.ts # Test runner config
tsconfig.json, tsconfig.spec.json
.nvmrc, .yarnrc.yml, .oxlintrc.json
README.md, LLMS.md
```
| File / Folder | Purpose |
|---|---|
| `src/application-config.ts` | **Required.** The main configuration file for your app. |
| `src/default-role.ts` | Default role controlling what your logic functions can access. |
| `src/constants/universal-identifiers.ts` | Auto-generated UUIDs and metadata (display name, description). |
| `src/__tests__/` | Integration tests (setup + example test). |
| `public/` | Static assets (images, fonts) served with your app. |
### Starting from an example
To start from a more complete example with custom objects, fields, logic functions, front components, and more, use the `--example` flag:
Use `--example` to start with a more complete project (custom objects, fields, logic functions, front components):
```bash filename="Terminal"
npx create-twenty-app@latest my-twenty-app --example postcard
```
Examples are sourced from the [twenty-apps/examples](https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/examples) directory on GitHub. You can also scaffold individual entities into an existing project with `yarn twenty add` (see [Building Apps](/developers/extend/apps/building#scaffolding-entities-with-yarn-twenty-add)).
Examples live in [twenty-apps/examples](https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/examples). You can also scaffold individual entities into an existing project with `yarn twenty add` see [Building Apps](/developers/extend/apps/building#scaffolding-entities-with-yarn-twenty-add).
### Key files
---
| File / Folder | Purpose |
|---|---|
| `package.json` | Declares your app name, version, and dependencies. Includes a `twenty` script so you can run `yarn twenty help` to see all commands. |
| `src/application-config.ts` | **Required.** The main configuration file for your app. |
| `src/default-role.ts` | Default role that controls what your logic functions can access. |
| `src/constants/universal-identifiers.ts` | Auto-generated UUIDs and app metadata (display name, description). |
| `src/__tests__/` | Integration tests (setup + example test). |
| `public/` | Static assets (images, fonts) served with your app. |
## Managing the local server
## Local development server
Use `yarn twenty server` to control the local Twenty container:
The scaffolder already started a local Twenty server for you. To manage it later, use `yarn twenty server`:
| Command | Description |
|---------|-------------|
| `yarn twenty server start` | Start the local server (pulls image if needed) |
| Command | What it does |
|---------|--------------|
| `yarn twenty server start` | Start the server (pulls the image if needed) |
| `yarn twenty server start --port 3030` | Start on a custom port |
| `yarn twenty server start --test` | Start a separate test instance on port 2021 |
| `yarn twenty server stop` | Stop the server (preserves data) |
| `yarn twenty server status` | Show server status, URL, version, and credentials |
| `yarn twenty server status` | Show URL, version, and login credentials |
| `yarn twenty server logs` | Stream server logs |
| `yarn twenty server logs --lines 100` | Show the last 100 log lines |
| `yarn twenty server reset` | Delete all data and start fresh |
| `yarn twenty server upgrade` | Pull the latest `twenty-app-dev` image and recreate the container |
| `yarn twenty server reset` | Wipe data and start fresh |
| `yarn twenty server upgrade` | Pull the latest `twenty-app-dev` image |
| `yarn twenty server upgrade 2.2.0` | Upgrade to a specific version |
Data is persisted across restarts in two Docker volumes (`twenty-app-dev-data` for PostgreSQL, `twenty-app-dev-storage` for files). Use `reset` to wipe everything and start fresh.
Data persists across restarts in two Docker volumes (`twenty-app-dev-data` for PostgreSQL, `twenty-app-dev-storage` for files). Use `reset` to wipe everything.
### Upgrading the server image
Use `yarn twenty server upgrade` to check for a newer `twenty-app-dev` Docker image and update the container. The command pulls the image, compares it against the one the container was created from, and only recreates the container if the image actually changed. Your data volumes are preserved — only the container is replaced.
`yarn twenty server upgrade` pulls the latest image, compares digests, and only recreates the container if anything actually changed. Volumes are preserved — only the container is replaced. If a new image was pulled and the container was running, the upgrade automatically starts a new container; run `yarn twenty server start` afterward to wait for it to become healthy.
```bash filename="Terminal"
# Upgrade to the latest version (skips recreation if already up to date)
yarn twenty server upgrade
# Upgrade to a specific version
yarn twenty server upgrade 2.2.0
yarn twenty server upgrade # Latest
yarn twenty server upgrade 2.2.0 # Specific version
```
If a newer image is available and the container was running, the upgrade command automatically starts a new container with the updated image. Run `yarn twenty server start` afterward to wait for it to become healthy. If the image hasn't changed, the container is left untouched.
Verify the running version with `yarn twenty server status` (it shows the `APP_VERSION` baked into the container).
You can verify the running version with `yarn twenty server status`, which displays the `APP_VERSION` from the container.
### Running a parallel test instance
### Running a test instance
Pass `--test` to any `server` command to manage a second, fully isolated instance — useful for integration tests or experiments without touching your main dev data:
Pass `--test` to any `server` command to manage a second, fully isolated instance — useful for running integration tests or experimenting without touching your main dev data.
| Command | Description |
|---------|-------------|
| Command | What it does |
|---------|--------------|
| `yarn twenty server start --test` | Start the test instance (defaults to port 2021) |
| `yarn twenty server stop --test` | Stop the test instance |
| `yarn twenty server status --test` | Show test instance status, URL, version, and credentials |
| `yarn twenty server logs --test` | Stream test instance logs |
| `yarn twenty server reset --test` | Wipe test data and start fresh |
| `yarn twenty server upgrade --test` | Upgrade the test instance image |
| `yarn twenty server stop --test` | Stop it |
| `yarn twenty server status --test` | Show its status |
| `yarn twenty server logs --test` | Stream its logs |
| `yarn twenty server reset --test` | Wipe its data |
| `yarn twenty server upgrade --test` | Upgrade its image |
The test instance runs in its own Docker container (`twenty-app-dev-test`) with dedicated volumes (`twenty-app-dev-test-data`, `twenty-app-dev-test-storage`) and config, so it can run in parallel with your main instance without conflicts. Combine `--test` with `--port` to override the default 2021.
The test instance has its own container (`twenty-app-dev-test`), volumes (`twenty-app-dev-test-data`, `twenty-app-dev-test-storage`), and config — it runs alongside your main instance without conflicts. Combine `--test` with `--port` to override 2021.
<Note>
The server requires **Docker** to be running. If you see a "Docker not running" error, make sure Docker Desktop (or the Docker daemon) is started.
</Note>
---
## Manual setup (without the scaffolder)
If you prefer to set things up yourself instead of using `create-twenty-app`, you can do it in two steps.
**1. Add `twenty-sdk` and `twenty-client-sdk` as dependencies:**
Skip the scaffolder if you're adding the SDK to an existing project:
```bash filename="Terminal"
yarn add twenty-sdk twenty-client-sdk
```
**2. Add a `twenty` script to your `package.json`:**
Add the script to `package.json`:
```json filename="package.json"
{
@@ -277,19 +255,19 @@ yarn add twenty-sdk twenty-client-sdk
}
```
You can now run `yarn twenty dev`, `yarn twenty help`, and all other commands.
You can now run `yarn twenty dev`, `yarn twenty server start`, and the rest.
<Note>
Do not install `twenty-sdk` globally. Always use it as a local project dependency so that each project can pin its own version.
Don't install `twenty-sdk` globally — pin it per project so each app uses its own version.
</Note>
---
## Troubleshooting
If you run into issues:
- **Docker errors** — Make sure Docker Desktop (or the daemon) is running before `yarn twenty server start`. The error message will show the right start command for your OS.
- **Wrong Node version** — Need 24+. Check with `node -v`.
- **Yarn 4 missing** — Run `corepack enable`.
- **Dependencies broken** — `rm -rf node_modules && yarn install`.
- Make sure **Docker is running** before starting the scaffolder with a local instance.
- Make sure you are using **Node.js 24+** (`node -v` to check).
- Make sure **Corepack is enabled** (`corepack enable`) so Yarn 4 is available.
- Try deleting `node_modules` and running `yarn install` again if dependencies seem broken.
Still stuck? Ask for help on the [Twenty Discord](https://discord.com/channels/1130383047699738754/1130386664812982322).
Stuck? Ask on the [Twenty Discord](https://discord.com/channels/1130383047699738754/1130386664812982322).
@@ -142,11 +142,14 @@ const handler = async (event: RoutePayload) => {
Header names are normalized to lowercase. Access them using lowercase keys (e.g., `event.headers['content-type']`).
</Note>
#### Exposing a function as a tool
#### Exposing a function as an AI tool or workflow action
Logic functions can be exposed as **tools** for AI agents and workflows. When marked as a tool, a function becomes discoverable by Twenty's AI features and can be used in workflow automations.
Logic functions can be exposed on two surfaces, each with its own trigger:
To mark a logic function as a tool, set `isTool: true`:
- **`toolTriggerSettings`** — makes the function discoverable by Twenty's AI features (chat, MCP, function calling). Uses standard JSON Schema, the format LLMs natively understand.
- **`workflowActionTriggerSettings`** — makes the function appear as a step in the visual workflow builder. Uses Twenty's rich `InputSchema` so the builder can render proper field editors, variable pickers, and labels.
A function can opt into one, the other, or both. They sit alongside `cronTriggerSettings`, `databaseEventTriggerSettings`, and `httpRouteTriggerSettings` — same pattern, same shape.
```ts src/logic-functions/enrich-company.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk/define';
@@ -176,31 +179,33 @@ export default defineLogicFunction({
description: 'Enrich a company record with external data',
timeoutSeconds: 10,
handler,
isTool: true,
toolTriggerSettings: {},
});
```
Key points:
- You can combine `isTool` with triggers — a function can be both a tool (callable by AI agents) and triggered by events at the same time.
- **`toolInputSchema`** (optional): A JSON Schema object describing the parameters your function accepts. The schema is computed automatically from source code static analysis, but you can set it explicitly:
- A function can mix surfaces — declare both `toolTriggerSettings` and `workflowActionTriggerSettings` to expose it in chat AND in the workflow builder.
- `toolTriggerSettings.inputSchema` and `workflowActionTriggerSettings.inputSchema` are both optional. When omitted, the manifest builder infers them from the handler source code (JSON Schema for the AI tool, Twenty's `InputSchema` for the workflow action). Provide one explicitly when you want richer typing — for example, with `FieldMetadataType`-aware fields like `CURRENCY` or `RELATION` for the workflow builder, or with `description` fields the AI agent can read:
```ts
export default defineLogicFunction({
...,
toolInputSchema: {
type: 'object',
properties: {
companyName: {
type: 'string',
description: 'The name of the company to enrich',
},
domain: {
type: 'string',
description: 'The company website domain (optional)',
toolTriggerSettings: {
inputSchema: {
type: 'object',
properties: {
companyName: {
type: 'string',
description: 'The name of the company to enrich',
},
domain: {
type: 'string',
description: 'The company website domain (optional)',
},
},
required: ['companyName'],
},
required: ['companyName'],
},
});
```
@@ -239,7 +244,7 @@ yarn twenty exec --postInstall
```
Key points:
- Post-install functions use `definePostInstallLogicFunction()` — a specialized variant that omits trigger settings (`cronTriggerSettings`, `databaseEventTriggerSettings`, `httpRouteTriggerSettings`, `isTool`).
- Post-install functions use `definePostInstallLogicFunction()` — a specialized variant that omits trigger settings (`cronTriggerSettings`, `databaseEventTriggerSettings`, `httpRouteTriggerSettings`, `toolTriggerSettings`, `workflowActionTriggerSettings`).
- The handler receives an `InstallPayload` with `{ previousVersion?: string; newVersion: string }` — `newVersion` is the version being installed, and `previousVersion` is the version that was previously installed (or `undefined` on a fresh install). Use these values to distinguish fresh installs from upgrades and to run version-specific migration logic.
- **When the hook runs**: on fresh installs only, by default. Pass `shouldRunOnVersionUpgrade: true` if you also want it to run when the app is upgraded from a previous version. When omitted, the flag defaults to `false` and upgrades skip the hook.
- **Execution model — async by default, sync opt-in**: the `shouldRunSynchronously` flag controls *how* post-install is executed.
@@ -77,6 +77,39 @@ Pre-release tags work as expected: bumping `1.0.0-rc.1` → `1.0.0-rc.2` is allo
{/* TODO: add screenshot of the Upgrade button */}
### Server version compatibility
If your app uses a feature introduced in a specific Twenty server version (for example, OAuth providers added in v2.3.0), you should declare the minimum server version your app requires using the `engines.twenty` field in `package.json`:
```json filename="package.json"
{
"name": "twenty-my-app",
"version": "1.0.0",
"engines": {
"node": "^24.5.0",
"twenty": ">=2.3.0"
}
}
```
The value is a standard [semver range](https://github.com/npm/node-semver#ranges). Common patterns:
| Range | Meaning |
|-------|---------|
| `>=2.3.0` | Any server from 2.3.0 onward |
| `>=2.3.0 <3.0.0` | 2.3.0 or later, but below the next major |
| `^2.3.0` | Same as `>=2.3.0 <3.0.0` |
**What happens at deploy and install time:**
- If `engines.twenty` is set and the target server's version does not satisfy the range, the deploy (tarball upload) or install is rejected with a `SERVER_VERSION_INCOMPATIBLE` error and a message indicating both the required range and the actual server version.
- If `engines.twenty` is **not set**, the app is accepted on any server version (backward-compatible with existing apps).
- If the server has no `APP_VERSION` configured, the check is skipped.
<Note>
The server is the authoritative check — it validates `engines.twenty` on both tarball upload and workspace install. If you deploy a tarball out-of-band or install from the marketplace, the server still enforces compatibility.
</Note>
## Automated CI/CD (scaffolded workflows)
Apps generated with `create-twenty-app` ship with two GitHub Actions workflows out of the box, under `.github/workflows/`. They are ready to run as soon as you push the repo to GitHub — no extra setup is needed for CI, and CD only requires a single secret.
@@ -184,9 +217,9 @@ The Twenty server syncs its marketplace catalog from the npm registry **every ho
You can trigger the sync immediately instead of waiting:
```bash filename="Terminal"
yarn twenty catalog-sync
yarn twenty server catalog-sync
# To target a specific remote:
# yarn twenty catalog-sync --remote production
# yarn twenty server catalog-sync --remote production
```
The metadata shown in the marketplace comes from your `defineApplication()` config — fields like `displayName`, `description`, `author`, `category`, `logoUrl`, `screenshots`, `aboutDescription`, `websiteUrl`, and `termsUrl`.
@@ -35,14 +35,8 @@ Everything is detected via AST analysis at build time — no config files, no re
## The developer experience
```bash
npx create-twenty-app@latest my-app
cd my-app
yarn twenty dev
```
`yarn twenty dev` watches your source files, rebuilds on change, and live-syncs to a local Twenty instance. The typed API client regenerates automatically when the schema changes. When you're ready, `yarn twenty deploy` pushes to production. Apps can also be published to npm and listed in the Twenty marketplace.
You write your app as a TypeScript project on your machine. The CLI watches your source files and live-syncs them to a running Twenty server — edit a file, see the change in the UI within a second. The typed API client regenerates automatically when the schema changes. When you're ready, `yarn twenty deploy` pushes to a production server, or `yarn twenty publish` lists your app on npm and the Twenty marketplace.
<Card title="Build your first app" icon="arrow-right" href="/developers/extend/apps/getting-started">
Full walkthrough — scaffold, develop, deploy.
Three-phase walkthrough — scaffold, run a local server, sync your changes.
</Card>
@@ -0,0 +1,193 @@
---
title: Verbindungen
description: Ermöglichen Sie Ihrer App, im Namen eines Benutzers über OAuth in Diensten von Drittanbietern zu handeln.
icon: plug
---
Verbindungen sind Anmeldedaten, die ein Benutzer für einen externen Dienst besitzt (Linear, GitHub, Slack, ...). Ihre App legt fest, **wie** diese Anmeldedaten bezogen werden — ein **Verbindungsanbieter** — und verwendet sie zur Laufzeit, um authentifizierte Aufrufe an die Drittanbieter-API zu tätigen.
Derzeit wird nur OAuth 2.0 unterstützt. Zukünftige Anmeldedatentypen (Personal Access Tokens, API-Schlüssel, Basic Auth) werden in dieselbe Oberfläche integriert — Apps, die bereits `defineConnectionProvider({ type: 'oauth', ... })` müssen nicht migriert werden.
<AccordionGroup>
<Accordion title="defineConnectionProvider" description="Legen Sie fest, wie die Verbindungen Ihrer App bezogen werden">
Ein Verbindungsanbieter beschreibt den OAuth-Handshake, den Ihre App benötigt. Der Benutzer klickt in den Einstellungen Ihrer App auf "Verbindung hinzufügen", schließt den Zustimmungsbildschirm des Anbieters ab, und in seinem Arbeitsbereich wird eine `ConnectedAccount`-Zeile erstellt.
Eine funktionierende Einrichtung benötigt **zwei Dateien** — den Verbindungsanbieter und eine passende `serverVariables`-Deklaration in `defineApplication`, die die OAuth-Client-Anmeldedaten enthält.
```ts src/connection-providers/linear-connection.ts
import { defineConnectionProvider } from 'twenty-sdk/define';
export default defineConnectionProvider({
universalIdentifier: '9c7d1f5e-6a0b-4d44-be0c-3f8b5a9d4e6f',
name: 'linear',
displayName: 'Linear',
icon: 'IconBrandLinear',
type: 'oauth',
oauth: {
authorizationEndpoint: 'https://linear.app/oauth/authorize',
tokenEndpoint: 'https://api.linear.app/oauth/token',
scopes: ['read', 'write'],
// These must match keys in `defineApplication.serverVariables` below.
clientIdVariable: 'LINEAR_CLIENT_ID',
clientSecretVariable: 'LINEAR_CLIENT_SECRET',
// Optional: defaults to 'json'. Some providers (Linear, Slack) want
// 'form-urlencoded' for the token request.
tokenRequestContentType: 'form-urlencoded',
// Optional: defaults to true. Disable only if the provider rejects PKCE.
usePkce: false,
// Optional: extra query params on the authorize URL.
// authorizationParams: { prompt: 'consent' },
// Optional: provider's RFC 7009 token revocation endpoint, called on disconnect.
// revokeEndpoint: 'https://example.com/oauth/revoke',
},
});
```
```ts src/application.config.ts
import { defineApplication } from 'twenty-sdk/define';
export default defineApplication({
universalIdentifier: '...',
displayName: 'Linear',
description: 'Connect Linear to Twenty.',
defaultRoleUniversalIdentifier: '...',
// OAuth client credentials live on the app registration (one OAuth app per
// Twenty server, configured by the admin) — not per-workspace. Declare them
// as serverVariables so the admin can fill them in once for all installs.
serverVariables: {
LINEAR_CLIENT_ID: {
description: 'OAuth client ID from your Linear OAuth application.',
isSecret: false,
isRequired: true,
},
LINEAR_CLIENT_SECRET: {
description: 'OAuth client secret from your Linear OAuth application.',
isSecret: true,
isRequired: true,
},
},
});
```
Hauptpunkte:
* `name` ist die eindeutige Bezeichner-Zeichenfolge, die in `listConnections({ providerName })` verwendet wird (kebab-case, muss `^[a-z][a-z0-9-]*$` entsprechen).
* `displayName` wird im Einstellungs-Tab der jeweiligen App und in der KI-Toolliste angezeigt.
* `clientIdVariable` / `clientSecretVariable` sind **Namen**, keine Werte — sie müssen den in `defineApplication.serverVariables` deklarierten Schlüsseln entsprechen. Die tatsächlichen `client_id` und `client_secret` werden vom Serveradministrator über die App-Registrierungsoberfläche eingegeben und niemals in Ihr Repository eingecheckt.
* Verwenden Sie `serverVariables` (nicht `applicationVariables`) — OAuth-Anmeldedaten gelten serverweit und es gibt eine OAuth-App pro Twenty-Server.
* Solange beide `serverVariables` nicht ausgefüllt sind, zeigt der Einstellungs-Tab pro App den Hinweis "Benötigt Server-Admin" an und der Button "Verbindung hinzufügen" ist deaktiviert.
* `type: 'oauth'` ist derzeit der einzige unterstützte Wert. Der Diskriminator ist vorwärtskompatibel: zukünftige Typen (`'pat'`, `'api-key'`, ...) werden neue Unterkonfigurationsblöcke neben `oauth` hinzufügen.
Die OAuth-Callback-URL, die Ihr Anbieter auf die Whitelist setzen muss, lautet:
```
https://<your-twenty-server>/apps/oauth/callback
```
</Accordion>
<Accordion title="listConnections / getConnection" description="Verbindungen aus einer Logikfunktion verwenden">
Innerhalb eines Logikfunktions-Handlers gibt `listConnections({ providerName })` die `ConnectedAccount`-Zeilen dieser App für den angegebenen Anbieter zurück, mit aktualisierten Zugriffstoken.
```ts src/logic-functions/handlers/create-linear-issue-handler.ts
import { listConnections } from 'twenty-sdk/logic-function';
export const createLinearIssueHandler = async (input: {
teamId?: string;
title?: string;
}) => {
if (!input.teamId || !input.title) {
return { success: false, error: 'teamId and title are required' };
}
const connections = await listConnections({ providerName: 'linear' });
// Workspace-shared credentials win when present; fall back to the first
// user-visibility one. For HTTP-route triggers you typically pick the
// request user's connection via event.userWorkspaceId instead.
const connection =
connections.find((c) => c.visibility === 'workspace') ?? connections[0];
if (!connection) {
return {
success: false,
error:
'Linear is not connected. Open the app settings and click "Add connection".',
};
}
// Use connection.accessToken to call the third-party API.
const response = await fetch('https://api.linear.app/graphql', {
method: 'POST',
headers: {
Authorization: `Bearer ${connection.accessToken}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: `mutation { issueCreate(input: { teamId: "${input.teamId}", title: "${input.title}" }) { success } }`,
}),
});
return { success: response.ok };
};
```
Jede Verbindung hat:
| Feld | Beschreibung |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
| `id` | Eindeutige Zeilen-ID; an `getConnection(id)` übergeben, um eine einzelne Verbindung erneut abzurufen |
| `sichtbarkeit` | `'user'` (privat für ein Mitglied des Arbeitsbereichs) oder `'workspace'` (mit allen Mitgliedern geteilt) |
| `geltungsbereiche` | Vom Upstream-Anbieter gewährte OAuth-Berechtigungen (unabhängig von `visibility` — diese sind nicht miteinander verknüpft) |
| `userWorkspaceId` | Die userWorkspace-ID des Eigentümers — nützlich, um "die Verbindung des anfragenden Benutzers" in HTTP-Routen-Triggern auszuwählen |
| `accessToken` | Frisches OAuth-Zugriffstoken (wird bei Ablauf automatisch erneuert) |
| `name` / `handle` | Anzeigename der Verbindung (automatisch beim OAuth-Callback abgeleitet, vom Benutzer umbenennbar) |
| `authFailedAt` | Gesetzt, wenn die jüngste Aktualisierung fehlgeschlagen ist; der Benutzer muss die Verbindung erneut herstellen |
Hauptpunkte:
* Übergeben Sie `{ providerName }`, um nach Anbieter zu filtern; lassen Sie es weg, um alle Verbindungen dieser App über alle Anbieter hinweg zu erhalten.
* Der Server aktualisiert das Zugriffstoken vor der Rückgabe transparent. Ihr Handler sieht stets ein verwendbares Token (oder `authFailedAt` ist gesetzt).
* `getConnection(id)` ist das Pendant für eine einzelne Zeile.
</Accordion>
<Accordion title="Sichtbarkeit: pro Benutzer vs. im Arbeitsbereich geteilt" description="Wie Benutzer zwischen privaten und geteilten Anmeldedaten wählen">
Wenn ein Benutzer auf "Verbindung hinzufügen" klickt, wird er aufgefordert, eine Sichtbarkeit auszuwählen:
* **Nur für mich** — die Anmeldedaten sind für den sich verbindenden Benutzer privat. Jede Logikfunktion, die in seinem/ihrem Auftrag aufgerufen wird (HTTP-Routen-Trigger mit `isAuthRequired: true`), sieht sie; Cron-Trigger und Datenbankereignisse nicht.
* **Im Arbeitsbereich geteilt** — jedes Arbeitsbereichsmitglied kann die Anmeldedaten verwenden. Cron-/Datenbank-Trigger sehen sie ebenfalls, da sie keinen anfragenden Benutzer haben.
Verwenden Sie für jeden Handler die richtige Option:
```ts
// HTTP-route trigger — prefer the request user's own connection.
const conn =
connections.find((c) => c.userWorkspaceId === event.userWorkspaceId) ??
connections.find((c) => c.visibility === 'workspace');
// Cron trigger — no request user; only shared credentials are sensible.
const conn = connections.find((c) => c.visibility === 'workspace');
```
Mehrere Verbindungen pro (Benutzer, Anbieter) sind erlaubt, sodass derselbe Benutzer "Persönliches Linear" und "Arbeits-Linear" nebeneinander haben kann.
</Accordion>
<Accordion title="Einmalige Anbietereinrichtung" description="Registrieren Sie Ihre OAuth-App beim Drittanbieterdienst">
Für jeden Verbindungsanbieter muss der Serveradministrator zunächst eine OAuth-App beim Drittanbieter registrieren.
1. Gehen Sie zu den Entwickler-Einstellungen des Anbieters (z. B. https://linear.app/settings/api/applications/new).
2. Setzen Sie die **Redirect-URI** auf `\<SERVER_URL>/apps/oauth/callback`.
3. Kopieren Sie die generierte **Client ID** und das **Client Secret**.
4. Öffnen Sie die installierte App in Twenty als Serveradministrator → setzen Sie die Werte in den entsprechenden `serverVariables`.
5. Mitglieder des Arbeitsbereichs können dann Verbindungen im **Verbindungen**-Abschnitt der jeweiligen App hinzufügen.
</Accordion>
</AccordionGroup>
@@ -88,7 +88,7 @@ yarn twenty dev --verbose
```
<Warning>
Der Dev-Modus ist nur auf Twenty-Instanzen verfügbar, die im Entwicklungsmodus laufen (`NODE_ENV=development`). Produktionsinstanzen lehnen Dev-Synchronisierungsanfragen ab. Verwenden Sie `yarn twenty deploy`, um auf Produktionsservern bereitzustellen — Details finden Sie unter [Apps veröffentlichen](/l/de/developers/extend/apps/publishing).
Der Dev-Modus ist nur auf Twenty-Instanzen verfügbar, die im Entwicklungsmodus laufen (`NODE_ENV=development`). Produktionsinstanzen lehnen Dev-Synchronisierungsanfragen ab. Verwenden Sie `yarn twenty deploy`, gefolgt von `yarn twenty install`, um auf Produktionsservern zu veröffentlichen und zu installieren — `deploy` veröffentlicht im Anwendungsregister, während `install` es in einem angegebenen Arbeitsbereich installiert. Details finden Sie unter [Apps veröffentlichen](/l/de/developers/extend/apps/publishing).
</Warning>
<div style={{textAlign: 'center'}}>
@@ -77,6 +77,39 @@ Pre-Release-Tags funktionieren wie erwartet: Das Erhöhen von `1.0.0-rc.1` → `
{/* TODO: add screenshot of the Upgrade button */}
### Kompatibilität der Serverversionen
Wenn Ihre App eine Funktion verwendet, die in einer bestimmten Twenty-Serverversion eingeführt wurde (z. B. OAuth-Anbieter, die in v2.3.0 hinzugefügt wurden), sollten Sie die minimale Serverversion, die Ihre App benötigt, mithilfe des Felds `engines.twenty` in `package.json` angeben:
```json filename="package.json"
{
"name": "twenty-my-app",
"version": "1.0.0",
"engines": {
"node": "^24.5.0",
"twenty": ">=2.3.0"
}
}
```
Der Wert ist ein standardmäßiger [semver-Bereich](https://github.com/npm/node-semver#ranges). Häufige Muster:
| Bereich | Bedeutung |
| ---------------------------------- | ------------------------------------------------------ |
| `>=2.3.0` | Jeder Server ab 2.3.0 |
| `>=2.3.0 \<3.0.0` | 2.3.0 oder höher, aber unter der nächsten Hauptversion |
| `^2.3.0` | Entspricht `>=2.3.0 \<3.0.0` |
**Was bei Bereitstellung und Installation passiert:**
* Wenn `engines.twenty` gesetzt ist und die Version des Zielservers den Bereich nicht erfüllt, wird die Bereitstellung (Tarball-Upload) oder Installation mit dem Fehler `SERVER_VERSION_INCOMPATIBLE` abgelehnt, zusammen mit einer Meldung, die sowohl den erforderlichen Bereich als auch die tatsächliche Serverversion angibt.
* Wenn `engines.twenty` nicht gesetzt ist, wird die App auf jeder Serverversion akzeptiert (abwärtskompatibel mit bestehenden Apps).
* Wenn auf dem Server keine `APP_VERSION` konfiguriert ist, wird die Prüfung übersprungen.
<Note>
Der Server ist die maßgebliche Prüfinstanz — er validiert `engines.twenty` sowohl beim Tarball-Upload als auch bei der Workspace-Installation. Auch wenn Sie ein Tarball außerhalb des regulären Prozesses bereitstellen oder aus dem Marketplace installieren, erzwingt der Server weiterhin die Kompatibilität.
</Note>
## Automatisiertes CI/CD (vorgefertigte Workflows)
Apps, die mit `create-twenty-app` erzeugt wurden, enthalten von Haus aus zwei GitHub-Actions-Workflows unter `.github/workflows/`. Sie sind einsatzbereit, sobald Sie das Repository zu GitHub pushen — für CI ist keine zusätzliche Einrichtung erforderlich, und für CD ist nur ein einziges Secret nötig.
@@ -0,0 +1,193 @@
---
title: Conexões
description: Permita que seu aplicativo aja em nome de um usuário em serviços de terceiros via OAuth.
icon: plug
---
Conexões são credenciais que um usuário mantém para um serviço externo (Linear, GitHub, Slack, ...). Seu app declara **como** essas credenciais são obtidas — um **provedor de conexão** — e as consome em tempo de execução para fazer chamadas autenticadas à API de terceiros.
Atualmente, apenas o OAuth 2.0 tem suporte. Tipos de credenciais futuros (tokens de acesso pessoal, chaves de API, autenticação básica) serão conectados à mesma interface — apps que já usam `defineConnectionProvider({ type: 'oauth', ... })` não precisarão migrar.
<AccordionGroup>
<Accordion title="defineConnectionProvider" description="Declare como as conexões do seu app são obtidas">
Um provedor de conexão descreve o handshake OAuth de que seu app precisa. O usuário clica em "Adicionar conexão" nas configurações do seu app, conclui a tela de consentimento do provedor e uma linha `ConnectedAccount` é criada no seu workspace.
Uma configuração funcional precisa de **dois arquivos** — o provedor de conexão e uma declaração correspondente de `serverVariables` em `defineApplication` que contém as credenciais do cliente OAuth.
```ts src/connection-providers/linear-connection.ts
import { defineConnectionProvider } from 'twenty-sdk/define';
export default defineConnectionProvider({
universalIdentifier: '9c7d1f5e-6a0b-4d44-be0c-3f8b5a9d4e6f',
name: 'linear',
displayName: 'Linear',
icon: 'IconBrandLinear',
type: 'oauth',
oauth: {
authorizationEndpoint: 'https://linear.app/oauth/authorize',
tokenEndpoint: 'https://api.linear.app/oauth/token',
scopes: ['read', 'write'],
// These must match keys in `defineApplication.serverVariables` below.
clientIdVariable: 'LINEAR_CLIENT_ID',
clientSecretVariable: 'LINEAR_CLIENT_SECRET',
// Optional: defaults to 'json'. Some providers (Linear, Slack) want
// 'form-urlencoded' for the token request.
tokenRequestContentType: 'form-urlencoded',
// Optional: defaults to true. Disable only if the provider rejects PKCE.
usePkce: false,
// Optional: extra query params on the authorize URL.
// authorizationParams: { prompt: 'consent' },
// Optional: provider's RFC 7009 token revocation endpoint, called on disconnect.
// revokeEndpoint: 'https://example.com/oauth/revoke',
},
});
```
```ts src/application.config.ts
import { defineApplication } from 'twenty-sdk/define';
export default defineApplication({
universalIdentifier: '...',
displayName: 'Linear',
description: 'Connect Linear to Twenty.',
defaultRoleUniversalIdentifier: '...',
// OAuth client credentials live on the app registration (one OAuth app per
// Twenty server, configured by the admin) — not per-workspace. Declare them
// as serverVariables so the admin can fill them in once for all installs.
serverVariables: {
LINEAR_CLIENT_ID: {
description: 'OAuth client ID from your Linear OAuth application.',
isSecret: false,
isRequired: true,
},
LINEAR_CLIENT_SECRET: {
description: 'OAuth client secret from your Linear OAuth application.',
isSecret: true,
isRequired: true,
},
},
});
```
Pontos-chave:
* `name` é a string de identificador exclusivo usada em `listConnections({ providerName })` (kebab-case, deve corresponder a `^[a-z][a-z0-9-]*$`).
* `displayName` aparece na aba de configurações do app e na lista de ferramentas de IA.
* `clientIdVariable` / `clientSecretVariable` são **nomes**, não valores — devem corresponder às chaves declaradas em `defineApplication.serverVariables`. Os `client_id` e `client_secret` reais são inseridos pelo administrador do servidor por meio da interface de registro do app e nunca são versionados no seu repositório.
* Use `serverVariables` (não `applicationVariables`) — as credenciais OAuth são do servidor como um todo e há um app OAuth por servidor do Twenty.
* Até que ambos os `serverVariables` sejam preenchidos, a aba de configurações do app mostra uma dica "precisa de administrador do servidor" e o botão "Adicionar conexão" fica desativado.
* `type: 'oauth'` é o único valor compatível atualmente. O discriminador é compatível com versões futuras: tipos futuros (`'pat'`, `'api-key'`, ...) adicionarão novos blocos de subconfiguração ao lado de `oauth`.
O URL de callback do OAuth que seu provedor precisa adicionar à lista de permissões é:
```
https://<your-twenty-server>/apps/oauth/callback
```
</Accordion>
<Accordion title="listConnections / getConnection" description="Use conexões a partir de uma função de lógica">
Dentro de um handler de função de lógica, `listConnections({ providerName })` retorna as linhas `ConnectedAccount` deste app para o provedor fornecido, com tokens de acesso atualizados.
```ts src/logic-functions/handlers/create-linear-issue-handler.ts
import { listConnections } from 'twenty-sdk/logic-function';
export const createLinearIssueHandler = async (input: {
teamId?: string;
title?: string;
}) => {
if (!input.teamId || !input.title) {
return { success: false, error: 'teamId and title are required' };
}
const connections = await listConnections({ providerName: 'linear' });
// Workspace-shared credentials win when present; fall back to the first
// user-visibility one. For HTTP-route triggers you typically pick the
// request user's connection via event.userWorkspaceId instead.
const connection =
connections.find((c) => c.visibility === 'workspace') ?? connections[0];
if (!connection) {
return {
success: false,
error:
'Linear is not connected. Open the app settings and click "Add connection".',
};
}
// Use connection.accessToken to call the third-party API.
const response = await fetch('https://api.linear.app/graphql', {
method: 'POST',
headers: {
Authorization: `Bearer ${connection.accessToken}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: `mutation { issueCreate(input: { teamId: "${input.teamId}", title: "${input.title}" }) { success } }`,
}),
});
return { success: response.ok };
};
```
Cada conexão tem:
| Campo | Descrição |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `id` | ID de linha exclusivo; passe para `getConnection(id)` para buscar novamente um único registro |
| `visibilidade` | `'user'` (privada para um membro do workspace) ou `'workspace'` (compartilhada com todos os membros) |
| `escopos` | Permissões OAuth concedidas pelo provedor de origem (distintas de `visibility` — não têm relação) |
| `userWorkspaceId` | O id de userWorkspace do proprietário — útil para selecionar "a conexão do usuário da requisição" em gatilhos de rota HTTP |
| `accessToken` | Token de acesso OAuth recente (atualizado automaticamente se estiver expirado) |
| `name` / `handle` | O nome de exibição da conexão (derivado automaticamente no callback do OAuth, renomeável pelo usuário) |
| `authFailedAt` | Definido quando a atualização mais recente falhou; o usuário deve reconectar |
Pontos-chave:
* Passe `{ providerName }` para filtrar por provedor; omita para obter todas as conexões que este app possui em todos os provedores.
* O servidor atualiza transparentemente o token de acesso antes de retornar. Seu handler sempre vê um token utilizável (ou `authFailedAt` definido).
* `getConnection(id)` é o equivalente de uma única linha.
</Accordion>
<Accordion title="Visibilidade por usuário vs. compartilhada no workspace" description="Como os usuários escolhem entre credenciais privadas e compartilhadas">
Quando um usuário clica em "Adicionar conexão", é solicitado que escolha uma visibilidade:
* **Apenas para mim** — a credencial é privada para o usuário que a conectou. Qualquer função de lógica chamada em seu nome (gatilho de rota HTTP com `isAuthRequired: true`) a vê; gatilhos cron e eventos de banco de dados não.
* **Compartilhada no workspace** — qualquer membro do workspace pode usar a credencial. Gatilhos de cron / banco de dados também a veem, pois não há um usuário da requisição.
Use a adequada para cada handler:
```ts
// HTTP-route trigger — prefer the request user's own connection.
const conn =
connections.find((c) => c.userWorkspaceId === event.userWorkspaceId) ??
connections.find((c) => c.visibility === 'workspace');
// Cron trigger — no request user; only shared credentials are sensible.
const conn = connections.find((c) => c.visibility === 'workspace');
```
Várias conexões por (usuário, provedor) são permitidas, então o mesmo usuário pode manter "Linear pessoal" e "Linear de trabalho" lado a lado.
</Accordion>
<Accordion title="Configuração única do provedor" description="Registre seu app OAuth no serviço de terceiros">
Para cada provedor de conexão, o administrador do servidor precisa primeiro registrar um app OAuth no serviço de terceiros.
1. Acesse as configurações de desenvolvedor do provedor (por exemplo, https://linear.app/settings/api/applications/new).
2. Defina a **URI de redirecionamento** como `\<SERVER_URL>/apps/oauth/callback`.
3. Copie o **ID do cliente** e o **Segredo do cliente** gerados.
4. Abra o app instalado no Twenty como administrador do servidor → defina os valores nos `serverVariables` correspondentes.
5. Os membros do workspace podem então adicionar conexões na seção **Conexões** de cada app.
</Accordion>
</AccordionGroup>
@@ -88,7 +88,7 @@ yarn twenty dev --verbose
```
<Warning>
O modo de desenvolvimento só está disponível em instâncias do Twenty em modo de desenvolvimento (`NODE_ENV=development`). Instâncias de produção rejeitam solicitações de sincronização de desenvolvimento. Use `yarn twenty deploy` para fazer o deploy em servidores de produção — veja [Publicando aplicativos](/l/pt/developers/extend/apps/publishing) para detalhes.
O modo de desenvolvimento só está disponível em instâncias do Twenty em modo de desenvolvimento (`NODE_ENV=development`). Instâncias de produção rejeitam solicitações de sincronização de desenvolvimento. Use `yarn twenty deploy` seguido de `yarn twenty install` para publicar e instalar em servidores de produção — `deploy` publica no registro de aplicativos, enquanto `install` o instala em um determinado workspace. Veja [Publicação de aplicativos](/l/pt/developers/extend/apps/publishing) para detalhes.
</Warning>
<div style={{textAlign: 'center'}}>
@@ -77,6 +77,39 @@ Tags de pré-lançamento funcionam como esperado: incrementar `1.0.0-rc.1` → `
{/* TODO: add screenshot of the Upgrade button */}
### Compatibilidade da versão do servidor
Se o seu aplicativo usar um recurso introduzido em uma versão específica do servidor Twenty (por exemplo, provedores OAuth adicionados na v2.3.0), você deve declarar a versão mínima do servidor que seu aplicativo requer usando o campo `engines.twenty` em `package.json`:
```json filename="package.json"
{
"name": "twenty-my-app",
"version": "1.0.0",
"engines": {
"node": "^24.5.0",
"twenty": ">=2.3.0"
}
}
```
O valor é um [intervalo semver](https://github.com/npm/node-semver#ranges) padrão. Padrões comuns:
| Intervalo | Significado |
| ---------------------------------- | ---------------------------------------------------------- |
| `>=2.3.0` | Qualquer servidor a partir de 2.3.0 |
| `>=2.3.0 \<3.0.0` | 2.3.0 ou posterior, mas abaixo da próxima versão principal |
| `^2.3.0` | O mesmo que `>=2.3.0 \<3.0.0` |
**O que acontece no momento da implantação e da instalação:**
* Se `engines.twenty` estiver definido e a versão do servidor de destino não satisfizer o intervalo, a implantação (upload do tarball) ou a instalação será rejeitada com o erro `SERVER_VERSION_INCOMPATIBLE` e uma mensagem indicando tanto o intervalo exigido quanto a versão real do servidor.
* Se `engines.twenty` **não estiver definido**, o aplicativo é aceito em qualquer versão do servidor (retrocompatível com os aplicativos existentes).
* Se o servidor não tiver `APP_VERSION` configurado, a verificação será ignorada.
<Note>
O servidor realiza a verificação definitiva — ele valida `engines.twenty` tanto no upload do tarball quanto na instalação no workspace. Se você implantar um tarball fora de banda ou instalar a partir do marketplace, o servidor ainda impõe a compatibilidade.
</Note>
## CI/CD automatizado (fluxos de trabalho pré-configurados)
Os apps gerados com `create-twenty-app` já vêm com dois fluxos de trabalho do GitHub Actions prontos, em `.github/workflows/`. Eles estão prontos para executar assim que você fizer push do repositório para o GitHub — nenhuma configuração extra é necessária para CI, e CD requer apenas um único segredo.
@@ -0,0 +1,193 @@
---
title: Подключения
description: Разрешите вашему приложению действовать от имени пользователя в сторонних сервисах с помощью OAuth.
icon: plug
---
Подключения — это учетные данные, которыми пользователь располагает для внешнего сервиса (Linear, GitHub, Slack, ...). Ваше приложение определяет, **как** получают эти учетные данные — через **провайдера подключения** — и использует их во время выполнения для выполнения аутентифицированных вызовов к стороннему API.
На данный момент поддерживается только OAuth 2.0. Будущие типы учетных данных (персональные токены доступа, ключи API, базовая аутентификация) будут подключаться к тому же интерфейсу — приложения, уже использующие `defineConnectionProvider({ type: 'oauth', ... })` не потребуют миграции.
<AccordionGroup>
<Accordion title="defineConnectionProvider" description="Определите, как в вашем приложении получаются подключения">
Провайдер подключения описывает процедуру OAuth-обмена, которая требуется вашему приложению. Пользователь нажимает "Добавить подключение" в настройках вашего приложения, подтверждает разрешения на экране согласия провайдера, и в его рабочем пространстве создается запись `ConnectedAccount`.
Рабочей конфигурации нужны **два файла** — провайдер подключения и соответствующее объявление `serverVariables` в `defineApplication`, которое содержит учетные данные клиента OAuth.
```ts src/connection-providers/linear-connection.ts
import { defineConnectionProvider } from 'twenty-sdk/define';
export default defineConnectionProvider({
universalIdentifier: '9c7d1f5e-6a0b-4d44-be0c-3f8b5a9d4e6f',
name: 'linear',
displayName: 'Linear',
icon: 'IconBrandLinear',
type: 'oauth',
oauth: {
authorizationEndpoint: 'https://linear.app/oauth/authorize',
tokenEndpoint: 'https://api.linear.app/oauth/token',
scopes: ['read', 'write'],
// These must match keys in `defineApplication.serverVariables` below.
clientIdVariable: 'LINEAR_CLIENT_ID',
clientSecretVariable: 'LINEAR_CLIENT_SECRET',
// Optional: defaults to 'json'. Some providers (Linear, Slack) want
// 'form-urlencoded' for the token request.
tokenRequestContentType: 'form-urlencoded',
// Optional: defaults to true. Disable only if the provider rejects PKCE.
usePkce: false,
// Optional: extra query params on the authorize URL.
// authorizationParams: { prompt: 'consent' },
// Optional: provider's RFC 7009 token revocation endpoint, called on disconnect.
// revokeEndpoint: 'https://example.com/oauth/revoke',
},
});
```
```ts src/application.config.ts
import { defineApplication } from 'twenty-sdk/define';
export default defineApplication({
universalIdentifier: '...',
displayName: 'Linear',
description: 'Connect Linear to Twenty.',
defaultRoleUniversalIdentifier: '...',
// OAuth client credentials live on the app registration (one OAuth app per
// Twenty server, configured by the admin) — not per-workspace. Declare them
// as serverVariables so the admin can fill them in once for all installs.
serverVariables: {
LINEAR_CLIENT_ID: {
description: 'OAuth client ID from your Linear OAuth application.',
isSecret: false,
isRequired: true,
},
LINEAR_CLIENT_SECRET: {
description: 'OAuth client secret from your Linear OAuth application.',
isSecret: true,
isRequired: true,
},
},
});
```
Основные моменты:
* `name` — это уникальная строка-идентификатор, используемая в `listConnections({ providerName })` (kebab-case, должна соответствовать `^[a-z][a-z0-9-]*$`).
* `displayName` отображается на вкладке настроек приложения и в списке инструментов ИИ.
* `clientIdVariable` / `clientSecretVariable` — это **имена**, а не значения — они должны совпадать с ключами, объявленными в `defineApplication.serverVariables`. Фактические `client_id` и `client_secret` вводятся администратором сервера через интерфейс регистрации приложения и никогда не коммитятся в ваш репозиторий.
* Используйте `serverVariables` (не `applicationVariables`) — учетные данные OAuth являются общими для сервера, и на каждом сервере Twenty используется одно приложение OAuth.
* Пока оба `serverVariables` не заполнены, на вкладке настроек приложения показывается подсказка "нужен администратор сервера", а кнопка "Добавить подключение" отключена.
* `type: 'oauth'` — единственное поддерживаемое сегодня значение. Дискриминатор совместим с будущими версиями: будущие типы (`'pat'`, `'api-key'`, ...) добавят новые блоки подконфигурации рядом с `oauth`.
URL обратного вызова OAuth, который вашему провайдеру нужно добавить в список разрешенных:
```
https://<your-twenty-server>/apps/oauth/callback
```
</Accordion>
<Accordion title="listConnections / getConnection" description="Используйте подключения из логической функции">
Внутри обработчика логической функции `listConnections({ providerName })` возвращает записи `ConnectedAccount` этого приложения для указанного провайдера с обновленными токенами доступа.
```ts src/logic-functions/handlers/create-linear-issue-handler.ts
import { listConnections } from 'twenty-sdk/logic-function';
export const createLinearIssueHandler = async (input: {
teamId?: string;
title?: string;
}) => {
if (!input.teamId || !input.title) {
return { success: false, error: 'teamId and title are required' };
}
const connections = await listConnections({ providerName: 'linear' });
// Workspace-shared credentials win when present; fall back to the first
// user-visibility one. For HTTP-route triggers you typically pick the
// request user's connection via event.userWorkspaceId instead.
const connection =
connections.find((c) => c.visibility === 'workspace') ?? connections[0];
if (!connection) {
return {
success: false,
error:
'Linear is not connected. Open the app settings and click "Add connection".',
};
}
// Use connection.accessToken to call the third-party API.
const response = await fetch('https://api.linear.app/graphql', {
method: 'POST',
headers: {
Authorization: `Bearer ${connection.accessToken}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: `mutation { issueCreate(input: { teamId: "${input.teamId}", title: "${input.title}" }) { success } }`,
}),
});
return { success: response.ok };
};
```
Каждое подключение имеет:
| Поле | Описание |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `id` | Уникальный идентификатор записи; передайте его в `getConnection(id)`, чтобы повторно получить одну запись |
| `visibility` | `'user'` (приватно для одного участника рабочего пространства) или `'workspace'` (доступно всем участникам) |
| `scopes` | Разрешения OAuth, предоставленные внешним провайдером (отличаются от `visibility` — это несвязанные вещи) |
| `userWorkspaceId` | Идентификатор userWorkspace владельца — полезно для выбора "подключения пользователя запроса" в триггерах HTTP-маршрутов |
| `accessToken` | Актуальный токен доступа OAuth (обновляется автоматически при истечении срока действия) |
| `name` / `handle` | Отображаемое имя подключения (автоматически определяется при обратном вызове OAuth, может быть переименовано пользователем) |
| `authFailedAt` | Устанавливается, если последняя попытка обновления не удалась; пользователю нужно переподключиться |
Основные моменты:
* Передайте `{ providerName }`, чтобы отфильтровать по провайдеру; опустите, чтобы получить все подключения этого приложения у всех провайдеров.
* Сервер прозрачно обновляет токен доступа перед возвратом. Ваш обработчик всегда получает рабочий токен (или установлено `authFailedAt`).
* `getConnection(id)` — эквивалент для одной записи.
</Accordion>
<Accordion title="Индивидуальная и общая для рабочего пространства видимость" description="Как пользователи выбирают между приватными и общими учетными данными">
Когда пользователь нажимает "Добавить подключение", ему предлагается выбрать видимость:
* **Только для меня** — учетные данные приватны для подключившегося пользователя. Любая логическая функция, вызываемая от его имени (триггер HTTP-маршрута с `isAuthRequired: true`), видит их; триггеры cron и события базы данных — нет.
* **Общее для рабочего пространства** — любой участник рабочего пространства может использовать эти учетные данные. Триггеры cron/базы данных также видят их, поскольку у них нет пользователя запроса.
Используйте подходящий вариант для каждого обработчика:
```ts
// HTTP-route trigger — prefer the request user's own connection.
const conn =
connections.find((c) => c.userWorkspaceId === event.userWorkspaceId) ??
connections.find((c) => c.visibility === 'workspace');
// Cron trigger — no request user; only shared credentials are sensible.
const conn = connections.find((c) => c.visibility === 'workspace');
```
Допускается несколько подключений на пару (пользователь, провайдер), поэтому один и тот же пользователь может иметь "Personal Linear" и "Work Linear" одновременно.
</Accordion>
<Accordion title="Единоразовая настройка провайдера" description="Зарегистрируйте свое приложение OAuth у стороннего сервиса">
Для каждого провайдера подключения администратору сервера сначала нужно зарегистрировать у стороннего сервиса приложение OAuth.
1. Перейдите в настройки разработчика провайдера (например, https://linear.app/settings/api/applications/new).
2. Установите **Redirect URI** в значение `\<SERVER_URL>/apps/oauth/callback`.
3. Скопируйте сгенерированные **Client ID** и **Client Secret**.
4. Откройте установленное приложение в Twenty под учетной записью администратора сервера → задайте значения в соответствующих `serverVariables`.
5. Затем участники рабочего пространства смогут добавлять подключения в разделе **Подключения** конкретного приложения.
</Accordion>
</AccordionGroup>
@@ -88,7 +88,7 @@ yarn twenty dev --verbose
```
<Warning>
Режим разработки доступен только на экземплярах Twenty, запущенных в режиме разработки (`NODE_ENV=development`). Экземпляры в продакшене отклоняют запросы синхронизации из режима разработки. Используйте `yarn twenty deploy` для развёртывания на продакшен-серверах — подробности см. в разделе [Публикация приложений](/l/ru/developers/extend/apps/publishing).
Режим разработки доступен только на экземплярах Twenty, запущенных в режиме разработки (`NODE_ENV=development`). Экземпляры в продакшене отклоняют запросы синхронизации из режима разработки. Используйте `yarn twenty deploy`, а затем `yarn twenty install`, чтобы выполнить публикацию и установку на продакшн-серверах — `deploy` публикует в реестр приложений, а `install` устанавливает его в указанное рабочее пространство. См. [Публикация приложений](/l/ru/developers/extend/apps/publishing) для подробностей.
</Warning>
<div style={{textAlign: 'center'}}>
@@ -77,6 +77,39 @@ When updating an already deployed tarball app, the server requires the `version`
{/* TODO: add screenshot of the Upgrade button */}
### Совместимость версий сервера
Если ваше приложение использует функцию, появившуюся в конкретной версии сервера Twenty (например, провайдеры OAuth, добавленные в v2.3.0), следует объявить минимальную требуемую версию сервера с помощью поля `engines.twenty` в `package.json`:
```json filename="package.json"
{
"name": "twenty-my-app",
"version": "1.0.0",
"engines": {
"node": "^24.5.0",
"twenty": ">=2.3.0"
}
}
```
Значение — это стандартный [диапазон semver](https://github.com/npm/node-semver#ranges). Типовые шаблоны:
| Диапазон | Значение |
| ---------------------------------- | -------------------------------------------------- |
| `>=2.3.0` | Любой сервер версии 2.3.0 и новее |
| `>=2.3.0 \<3.0.0` | 2.3.0 или новее, но ниже следующей мажорной версии |
| `^2.3.0` | То же, что и `>=2.3.0 \<3.0.0` |
**Что происходит при развёртывании и установке:**
* Если `engines.twenty` задано и версия целевого сервера не удовлетворяет диапазону, развёртывание (загрузка tarball-архива) или установка отклоняются с ошибкой `SERVER_VERSION_INCOMPATIBLE` и сообщением, указывающим как требуемый диапазон, так и фактическую версию сервера.
* Если `engines.twenty` **не задано**, приложение принимается на сервере любой версии (обратная совместимость с существующими приложениями).
* Если на сервере `APP_VERSION` не задано, проверка пропускается.
<Note>
Сервер выполняет окончательную проверку — он проверяет `engines.twenty` как при загрузке tarball-архива, так и при установке в рабочем пространстве. Если вы развёртываете tarball вне стандартного процесса или устанавливаете из маркетплейса, сервер всё равно принудительно проверяет совместимость.
</Note>
## Автоматизированный CI/CD (рабочие процессы, сгенерированные шаблоном)
Приложения, созданные с помощью `create-twenty-app`, «из коробки» включают два рабочих процесса GitHub Actions в каталоге `.github/workflows/`. Они готовы к запуску, как только вы запушите репозиторий на GitHub — для CI не требуется дополнительной настройки, а для CD нужен лишь один секрет.
@@ -0,0 +1,193 @@
---
title: Bağlantılar
description: Uygulamanızın, OAuth aracılığıyla üçüncü taraf hizmetlerde kullanıcı adına işlem yapmasına izin verin.
icon: plug
---
Bağlantılar, bir kullanıcının harici bir hizmet için (Linear, GitHub, Slack, ...) sahip olduğu kimlik bilgileridir. Uygulamanız bu kimlik bilgilerinin **nasıl** elde edildiğini — bir **bağlantı sağlayıcısı** — bildirir ve çalışma zamanında üçüncü taraf API'sine kimlik doğrulamalı çağrılar yapmak için bunları kullanır.
Bugün yalnızca OAuth 2.0 destekleniyor. Gelecekteki kimlik bilgisi türleri (kişisel erişim belirteçleri, API anahtarları, basic auth) aynı yüzeye bağlanacak — halihazırda `defineConnectionProvider({ type: 'oauth', ... })` kullanan uygulamaların geçiş yapması gerekmeyecek.
<AccordionGroup>
<Accordion title="defineConnectionProvider" description="Uygulamanızın bağlantılarının nasıl elde edildiğini belirtin">
Bir bağlantı sağlayıcısı, uygulamanızın ihtiyaç duyduğu OAuth el sıkışmasını açıklar. Kullanıcı, uygulamanızın ayarlarında "Bağlantı ekle"ye tıklar, sağlayıcının izin ekranını tamamlar ve çalışma alanında bir `ConnectedAccount` satırı oluşturulur.
Çalışan bir kurulum **iki dosya** gerektirir — bağlantı sağlayıcısı ve OAuth istemci kimlik bilgilerini tutan `defineApplication` üzerindeki eşleşen bir `serverVariables` bildirimi.
```ts src/connection-providers/linear-connection.ts
import { defineConnectionProvider } from 'twenty-sdk/define';
export default defineConnectionProvider({
universalIdentifier: '9c7d1f5e-6a0b-4d44-be0c-3f8b5a9d4e6f',
name: 'linear',
displayName: 'Linear',
icon: 'IconBrandLinear',
type: 'oauth',
oauth: {
authorizationEndpoint: 'https://linear.app/oauth/authorize',
tokenEndpoint: 'https://api.linear.app/oauth/token',
scopes: ['read', 'write'],
// These must match keys in `defineApplication.serverVariables` below.
clientIdVariable: 'LINEAR_CLIENT_ID',
clientSecretVariable: 'LINEAR_CLIENT_SECRET',
// Optional: defaults to 'json'. Some providers (Linear, Slack) want
// 'form-urlencoded' for the token request.
tokenRequestContentType: 'form-urlencoded',
// Optional: defaults to true. Disable only if the provider rejects PKCE.
usePkce: false,
// Optional: extra query params on the authorize URL.
// authorizationParams: { prompt: 'consent' },
// Optional: provider's RFC 7009 token revocation endpoint, called on disconnect.
// revokeEndpoint: 'https://example.com/oauth/revoke',
},
});
```
```ts src/application.config.ts
import { defineApplication } from 'twenty-sdk/define';
export default defineApplication({
universalIdentifier: '...',
displayName: 'Linear',
description: 'Connect Linear to Twenty.',
defaultRoleUniversalIdentifier: '...',
// OAuth client credentials live on the app registration (one OAuth app per
// Twenty server, configured by the admin) — not per-workspace. Declare them
// as serverVariables so the admin can fill them in once for all installs.
serverVariables: {
LINEAR_CLIENT_ID: {
description: 'OAuth client ID from your Linear OAuth application.',
isSecret: false,
isRequired: true,
},
LINEAR_CLIENT_SECRET: {
description: 'OAuth client secret from your Linear OAuth application.',
isSecret: true,
isRequired: true,
},
},
});
```
Önemli noktalar:
* `name`, `listConnections({ providerName })` içinde kullanılan benzersiz tanımlayıcı dizedir (kebab-case, `^[a-z][a-z0-9-]*$` ile eşleşmelidir).
* `displayName` uygulama başına ayarlar sekmesinde ve Yapay Zeka araç listesinde gösterilir.
* `clientIdVariable` / `clientSecretVariable` değer değil, **isimdir** — `defineApplication.serverVariables` içinde bildirilen anahtarlarla eşleşmelidir. Gerçek `client_id` ve `client_secret`, sunucu yöneticisi tarafından uygulama kayıt arayüzü üzerinden girilir; deponuza asla commit edilmez.
* `serverVariables` kullanın (`applicationVariables` değil) — OAuth kimlik bilgileri sunucu genelidir ve her Twenty sunucusu için bir OAuth uygulaması vardır.
* Her iki `serverVariables` da doldurulana kadar, uygulama başına ayarlar sekmesi "sunucu yöneticisine ihtiyaç var" ipucunu gösterir ve "Bağlantı ekle" düğmesi devre dışı bırakılır.
* `type: 'oauth'` bugün desteklenen tek değerdir. Seçici ileriye dönük uyumludur: gelecekteki türler (`'pat'`, `'api-key'`, ...) `oauth` yanında yeni alt yapılandırma blokları eklenecektir.
Sağlayıcınızın beyaz listeye alması gereken OAuth geri çağrı URL'si şudur:
```
https://<your-twenty-server>/apps/oauth/callback
```
</Accordion>
<Accordion title="listConnections / getConnection" description="Bir mantık işlevinden bağlantıları kullanın">
Bir mantık işlevi işleyicisi içinde, `listConnections({ providerName })`, verilen sağlayıcı için bu uygulamanın `ConnectedAccount` satırlarını, yenilenmiş erişim belirteçleriyle döndürür.
```ts src/logic-functions/handlers/create-linear-issue-handler.ts
import { listConnections } from 'twenty-sdk/logic-function';
export const createLinearIssueHandler = async (input: {
teamId?: string;
title?: string;
}) => {
if (!input.teamId || !input.title) {
return { success: false, error: 'teamId and title are required' };
}
const connections = await listConnections({ providerName: 'linear' });
// Workspace-shared credentials win when present; fall back to the first
// user-visibility one. For HTTP-route triggers you typically pick the
// request user's connection via event.userWorkspaceId instead.
const connection =
connections.find((c) => c.visibility === 'workspace') ?? connections[0];
if (!connection) {
return {
success: false,
error:
'Linear is not connected. Open the app settings and click "Add connection".',
};
}
// Use connection.accessToken to call the third-party API.
const response = await fetch('https://api.linear.app/graphql', {
method: 'POST',
headers: {
Authorization: `Bearer ${connection.accessToken}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: `mutation { issueCreate(input: { teamId: "${input.teamId}", title: "${input.title}" }) { success } }`,
}),
});
return { success: response.ok };
};
```
Her bağlantı şunlara sahiptir:
| Alan | Açıklama |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `id` | Tekil satır kimliği; tek bir tanesini yeniden getirmek için `getConnection(id)` işlevine iletin |
| `visibility` | `'user'` (bir çalışma alanı üyesine özel) veya `'workspace'` (tüm üyelerle paylaşılan) |
| `scopes` | Üst sağlayıcı tarafından verilen OAuth izinleri (`visibility` ile karıştırılmamalıdır — bunlar ilişkili değildir) |
| `userWorkspaceId` | Sahibinin userWorkspace kimliği — HTTP rota tetikleyicilerinde "istek kullanıcısının bağlantısını" seçmek için kullanışlıdır |
| `accessToken` | Yeni OAuth erişim belirteci (süresi dolmuşsa otomatik olarak yenilenir) |
| `name` / `handle` | Bağlantının görünen adı (OAuth geri çağrısında otomatik türetilir, kullanıcı tarafından yeniden adlandırılabilir) |
| `authFailedAt` | En son yenileme başarısız olduğunda ayarlanır; kullanıcı yeniden bağlanmalıdır |
Önemli noktalar:
* Sağlayıcıya göre filtrelemek için `{ providerName }` iletin; bu uygulamanın tüm sağlayıcılardaki tüm bağlantılarını almak için bunu atlayın.
* Sunucu, döndürmeden önce erişim belirtecini şeffaf bir şekilde yeniler. İşleyiciniz her zaman kullanılabilir bir belirteç görür (veya `authFailedAt` ayarlanmıştır).
* `getConnection(id)`, tek satırlık karşılığıdır.
</Accordion>
<Accordion title="Kullanıcıya özel ve çalışma alanı paylaşımlı görünürlük" description="Kullanıcıların özel ve paylaşılan kimlik bilgileri arasında nasıl seçim yaptığı">
Bir kullanıcı "Bağlantı ekle"ye tıkladığında, bir görünürlük seçmesi istenir:
* **Yalnızca benim için** — kimlik bilgisi, bağlanan kullanıcıya özeldir. Adlarına çağrılan herhangi bir mantık işlevi (`isAuthRequired: true` ile HTTP rota tetikleyicisi) bunu görür; cron tetikleyicileri ve veritabanı olayları görmez.
* **Çalışma alanı paylaşımlı** — herhangi bir çalışma alanı üyesi bu kimlik bilgisini kullanabilir. Cron / veritabanı tetikleyicileri de görür, çünkü istek kullanıcısı yoktur.
Her işleyici için doğru olanı kullanın:
```ts
// HTTP-route trigger — prefer the request user's own connection.
const conn =
connections.find((c) => c.userWorkspaceId === event.userWorkspaceId) ??
connections.find((c) => c.visibility === 'workspace');
// Cron trigger — no request user; only shared credentials are sensible.
const conn = connections.find((c) => c.visibility === 'workspace');
```
Kullanıcı ve sağlayıcı başına birden çok bağlantıya izin verilir; böylece aynı kullanıcı "Personal Linear" ve "Work Linear" bağlantılarını yan yana tutabilir.
</Accordion>
<Accordion title="Tek seferlik sağlayıcı kurulumu" description="OAuth uygulamanızı üçüncü taraf hizmete kaydedin">
Her bağlantı sağlayıcısı için, sunucu yöneticisinin önce üçüncü tarafta bir OAuth uygulaması kaydetmesi gerekir.
1. Sağlayıcının geliştirici ayarlarına gidin (örn. https://linear.app/settings/api/applications/new).
2. **Redirect URI**'yi `\<SERVER_URL>/apps/oauth/callback` olarak ayarlayın.
3. Oluşturulan **Client ID** ve **Client Secret**'ı kopyalayın.
4. Yüklü uygulamayı Twenty'de bir sunucu yöneticisi olarak açın → karşılık gelen `serverVariables` üzerinde değerleri ayarlayın.
5. Ardından çalışma alanı üyeleri, uygulama başına **Bağlantılar** bölümünden bağlantılar ekleyebilir.
</Accordion>
</AccordionGroup>
@@ -88,7 +88,7 @@ yarn twenty dev --verbose
```
<Warning>
Geliştirme modu yalnızca geliştirme ortamında (`NODE_ENV=development`) çalışan Twenty örneklerinde kullanılabilir. Üretim örnekleri geliştirme eşitleme isteklerini reddeder. Üretim sunucularına dağıtmak için `yarn twenty deploy` komutunu kullanın — ayrıntılar için [Uygulamaları Yayınlama](/l/tr/developers/extend/apps/publishing) bölümüne bakın.
Geliştirme modu yalnızca geliştirme ortamında (`NODE_ENV=development`) çalışan Twenty örneklerinde kullanılabilir. Üretim örnekleri geliştirme eşitleme isteklerini reddeder. Canlı sunucularda yayımlamak ve yüklemek için önce `yarn twenty deploy`, ardından `yarn twenty install` komutlarını kullanın — `deploy` uygulama kayıt defterine yayımlar, `install` ise bunu belirli bir çalışma alanına yükler. Ayrıntılar için [Uygulamaları Yayımlama](/l/tr/developers/extend/apps/publishing) bölümüne bakın.
</Warning>
<div style={{textAlign: 'center'}}>
@@ -77,6 +77,39 @@ Bir güncelleme yayımlamak için:
{/* TODO: add screenshot of the Upgrade button */}
### Sunucu sürümü uyumluluğu
Uygulamanız belirli bir Twenty sunucu sürümünde sunulan bir özelliği kullanıyorsa (örneğin, v2.3.0'da eklenen OAuth sağlayıcıları), uygulamanızın gerektirdiği en düşük sunucu sürümünü `package.json` içindeki `engines.twenty` alanını kullanarak belirtmelisiniz:
```json filename="package.json"
{
"name": "twenty-my-app",
"version": "1.0.0",
"engines": {
"node": "^24.5.0",
"twenty": ">=2.3.0"
}
}
```
Değer, standart bir [semver aralığı](https://github.com/npm/node-semver#ranges)dır. Yaygın Kalıplar:
| Aralık | Anlam |
| ---------------------------------- | --------------------------------------------------------- |
| `>=2.3.0` | 2.3.0'dan itibaren herhangi bir sunucu |
| `>=2.3.0 \<3.0.0` | 2.3.0 veya sonrası, ancak bir sonraki ana sürümün altında |
| `^2.3.0` | `>=2.3.0 \<3.0.0` ile aynı |
**Dağıtım ve yükleme sırasında ne olur:**
* `engines.twenty` ayarlanmışsa ve hedef sunucunun sürümü aralığı karşılamıyorsa, dağıtım (tarball yüklemesi) veya yükleme, gerekli aralığı ve gerçek sunucu sürümünü belirten bir mesajla birlikte `SERVER_VERSION_INCOMPATIBLE` hatasıyla reddedilir.
* `engines.twenty` **ayarlı değilse**, uygulama herhangi bir sunucu sürümünde kabul edilir (mevcut uygulamalarla geriye dönük uyumludur).
* Sunucuda `APP_VERSION` yapılandırılmamışsa, denetim atlanır.
<Note>
Nihai denetim sunucudadır — hem tarball yüklemesinde hem de çalışma alanı (workspace) kurulumunda `engines.twenty`'yi doğrular. Bir tarball'ı bant dışı dağıtırsanız veya marketplace'ten kurarsanız, sunucu yine de uyumluluğu zorunlu kılar.
</Note>
## Otomatik CI/CD (hazır şablonlu iş akışları)
`create-twenty-app` ile oluşturulan uygulamalar, kutudan çıktığı gibi `.github/workflows/` altında iki GitHub Actions iş akışıyla gelir. Depoyu GitHuba iter itmez çalışmaya hazırdır — CI için ek bir kurulum gerekmez ve CD yalnızca tek bir gizli anahtar gerektirir.
@@ -0,0 +1,193 @@
---
title: 连接
description: Let your app act on a user's behalf in third-party services via OAuth.
icon: plug
---
连接是用户为外部服务(Linear、GitHub、Slack 等)持有的凭据。 你的应用声明**如何**获取这些凭据——即**连接提供程序**——并在运行时使用它们向第三方 API 发起认证调用。
目前仅支持 OAuth 2.0。 将来的凭据类型(个人访问令牌、API 密钥、基本身份验证)将接入相同的接口——已经使用 `defineConnectionProvider({ type: 'oauth', ... })` 的应用将无需迁移。
<AccordionGroup>
<Accordion title="defineConnectionProvider" description="声明你的应用如何获取连接">
连接提供程序描述了你的应用所需的 OAuth 握手流程。 用户在你的应用设置中点击"添加连接",完成提供方的授权同意页面后,会在其工作区中创建一条 `ConnectedAccount` 行。
一个可用的配置需要**两个文件**——连接提供程序,以及在 `defineApplication` 上与之匹配、用于保存 OAuth 客户端凭据的 `serverVariables` 声明。
```ts src/connection-providers/linear-connection.ts
import { defineConnectionProvider } from 'twenty-sdk/define';
export default defineConnectionProvider({
universalIdentifier: '9c7d1f5e-6a0b-4d44-be0c-3f8b5a9d4e6f',
name: 'linear',
displayName: 'Linear',
icon: 'IconBrandLinear',
type: 'oauth',
oauth: {
authorizationEndpoint: 'https://linear.app/oauth/authorize',
tokenEndpoint: 'https://api.linear.app/oauth/token',
scopes: ['read', 'write'],
// These must match keys in `defineApplication.serverVariables` below.
clientIdVariable: 'LINEAR_CLIENT_ID',
clientSecretVariable: 'LINEAR_CLIENT_SECRET',
// Optional: defaults to 'json'. Some providers (Linear, Slack) want
// 'form-urlencoded' for the token request.
tokenRequestContentType: 'form-urlencoded',
// Optional: defaults to true. Disable only if the provider rejects PKCE.
usePkce: false,
// Optional: extra query params on the authorize URL.
// authorizationParams: { prompt: 'consent' },
// Optional: provider's RFC 7009 token revocation endpoint, called on disconnect.
// revokeEndpoint: 'https://example.com/oauth/revoke',
},
});
```
```ts src/application.config.ts
import { defineApplication } from 'twenty-sdk/define';
export default defineApplication({
universalIdentifier: '...',
displayName: 'Linear',
description: 'Connect Linear to Twenty.',
defaultRoleUniversalIdentifier: '...',
// OAuth client credentials live on the app registration (one OAuth app per
// Twenty server, configured by the admin) — not per-workspace. Declare them
// as serverVariables so the admin can fill them in once for all installs.
serverVariables: {
LINEAR_CLIENT_ID: {
description: 'OAuth client ID from your Linear OAuth application.',
isSecret: false,
isRequired: true,
},
LINEAR_CLIENT_SECRET: {
description: 'OAuth client secret from your Linear OAuth application.',
isSecret: true,
isRequired: true,
},
},
});
```
关键点:
* `name` 是在 `listConnections({ providerName })` 中使用的唯一标识符字符串(短横线命名(kebab-case),必须匹配 `^[a-z][a-z0-9-]*$`)。
* `displayName` 会显示在每个应用的设置选项卡以及 AI 工具列表中。
* `clientIdVariable` / `clientSecretVariable` 是**名称**,而不是值——它们必须与 `defineApplication.serverVariables` 中声明的键匹配。 实际的 `client_id` 和 `client_secret` 由服务器管理员通过应用注册 UI 输入,绝不会提交到你的仓库。
* 请使用 `serverVariables`(而非 `applicationVariables`)——OAuth 凭据是服务器范围的,并且每个 Twenty 服务器只配置一个 OAuth 应用。
* 在两个 `serverVariables` 都填写之前,每个应用的设置选项卡会显示"需要服务器管理员"的提示,并且"添加连接"按钮将被禁用。
* `type: 'oauth'` 是目前唯一受支持的取值。 该判别器具备前向兼容性:未来的类型(`'pat'`、`'api-key'` 等) 将会与 `oauth` 并列新增子配置块。
你的提供方需要加入白名单的 OAuth 回调 URL 为:
```
https://<your-twenty-server>/apps/oauth/callback
```
</Accordion>
<Accordion title="listConnections / getConnection" description="在逻辑函数中使用连接">
在逻辑函数处理器内,`listConnections({ providerName })` 会返回此应用针对给定提供方的 `ConnectedAccount` 行,并附带已刷新的访问令牌。
```ts src/logic-functions/handlers/create-linear-issue-handler.ts
import { listConnections } from 'twenty-sdk/logic-function';
export const createLinearIssueHandler = async (input: {
teamId?: string;
title?: string;
}) => {
if (!input.teamId || !input.title) {
return { success: false, error: 'teamId and title are required' };
}
const connections = await listConnections({ providerName: 'linear' });
// Workspace-shared credentials win when present; fall back to the first
// user-visibility one. For HTTP-route triggers you typically pick the
// request user's connection via event.userWorkspaceId instead.
const connection =
connections.find((c) => c.visibility === 'workspace') ?? connections[0];
if (!connection) {
return {
success: false,
error:
'Linear is not connected. Open the app settings and click "Add connection".',
};
}
// Use connection.accessToken to call the third-party API.
const response = await fetch('https://api.linear.app/graphql', {
method: 'POST',
headers: {
Authorization: `Bearer ${connection.accessToken}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: `mutation { issueCreate(input: { teamId: "${input.teamId}", title: "${input.title}" }) { success } }`,
}),
});
return { success: response.ok };
};
```
每个连接包含:
| 字段 | 描述 |
| ----------------- | ---------------------------------------------------- |
| `id` | 唯一的行 id;传给 `getConnection(id)` 以重新获取单个连接 |
| `可见性` | `'user'`(仅对单个工作区成员私有)或 `'workspace'`(与所有成员共享) |
| `范围` | 上游提供方授予的 OAuth 权限(不同于 `visibility`——两者不相关) |
| `userWorkspaceId` | 所有者的 userWorkspace id——在 HTTP 路由触发器中用于选择"请求用户的连接"很有用 |
| `accessToken` | 最新的 OAuth 访问令牌(若已过期会自动刷新) |
| `name` / `handle` | 连接的显示名称(在 OAuth 回调时自动生成,用户可重命名) |
| `authFailedAt` | 当最近一次刷新失败时会设置;用户必须重新连接 |
关键点:
* 传入 `{ providerName }` 以按提供方筛选;省略它则可获取此应用在所有提供方上的全部连接。
* 服务器会在返回前透明地刷新访问令牌。 你的处理器始终会拿到可用的令牌(或已设置 `authFailedAt`)。
* `getConnection(id)` 是获取单行记录的对应方法。
</Accordion>
<Accordion title="按用户与工作区共享的可见性" description="用户如何在私有与共享凭据之间进行选择">
当用户点击"添加连接"时,系统会提示其选择可见性:
* **仅限我**——该凭据仅对连接的用户私有。 代表其调用的任何逻辑函数(带有 `isAuthRequired: true` 的 HTTP 路由触发器)都可以看到它;Cron 触发器和数据库事件则不可。
* **工作区共享**——任何工作区成员都可以使用该凭据。 Cron / 数据库触发器也可以使用它,因为它们没有请求用户。
为每个处理器使用合适的类型:
```ts
// HTTP-route trigger — prefer the request user's own connection.
const conn =
connections.find((c) => c.userWorkspaceId === event.userWorkspaceId) ??
connections.find((c) => c.visibility === 'workspace');
// Cron trigger — no request user; only shared credentials are sensible.
const conn = connections.find((c) => c.visibility === 'workspace');
```
每个(用户、提供方)允许有多个连接,因此同一用户可以同时拥有"个人 Linear"和"工作 Linear"。
</Accordion>
<Accordion title="一次性提供方设置" description="在第三方服务中注册你的 OAuth 应用">
对于每个连接提供方,服务器管理员需要先在第三方注册一个 OAuth 应用。
1. 前往提供方的开发者设置(例如 https://linear.app/settings/api/applications/new)。
2. 将**Redirect URI** 设置为 `\<SERVER_URL>/apps/oauth/callback`。
3. 复制生成的**Client ID**和**Client Secret**。
4. 以服务器管理员身份在 Twenty 中打开已安装的应用 → 在相应的 `serverVariables` 上设置这些值。
5. 之后,工作区成员可以在每个应用的**连接**部分添加连接。
</Accordion>
</AccordionGroup>
@@ -88,7 +88,7 @@ yarn twenty dev --verbose
```
<Warning>
开发模式仅适用于以开发模式运行的 Twenty 实例(`NODE_ENV=development`)。 生产实例会拒绝开发同步请求。 使用 `yarn twenty deploy` 部署到生产服务器——详见[发布应用](/l/zh/developers/extend/apps/publishing)。
开发模式仅适用于以开发模式运行的 Twenty 实例(`NODE_ENV=development`)。 生产实例会拒绝开发同步请求。 使用 `yarn twenty deploy`,然后执行 `yarn twenty install`,即可在生产服务器上发布并安装 — `deploy` 会发布到应用注册表,而 `install` 会在指定的工作区中进行安装。 详情请参见[发布应用](/l/zh/developers/extend/apps/publishing)。
</Warning>
<div style={{textAlign: 'center'}}>
@@ -77,6 +77,39 @@ yarn twenty deploy
{/* TODO: add screenshot of the Upgrade button */}
### 服务器版本兼容性
如果你的应用使用了特定 Twenty 服务器版本中引入的功能(例如在 v2.3.0 中新增的 OAuth 提供方),应当在 `package.json` 的 `engines.twenty` 字段中声明应用所需的最低服务器版本:
```json filename="package.json"
{
"name": "twenty-my-app",
"version": "1.0.0",
"engines": {
"node": "^24.5.0",
"twenty": ">=2.3.0"
}
}
```
该值是标准的 [semver 范围](https://github.com/npm/node-semver#ranges)。 常见模式:
| 范围 | 含义 |
| ---------------------------------- | --------------------------------------- |
| `>=2.3.0` | 任何 2.3.0 及以上的服务器 |
| `>=2.3.0 \<3.0.0` | 2.3.0 或更高,但低于下一个主版本 |
| `^2.3.0` | 与 `>=2.3.0 \<3.0.0` 相同 |
**在部署和安装时会发生什么:**
* 如果已设置 `engines.twenty`,且目标服务器的版本不满足该范围,则部署(tarball 上传)或安装将被拒绝,并返回 `SERVER_VERSION_INCOMPATIBLE` 错误以及一条同时指明所需范围和实际服务器版本的消息。
* 如果 `engines.twenty` **未设置**,则该应用可在任何服务器版本上被接受(与现有应用向后兼容)。
* 如果服务器未配置 `APP_VERSION`,则跳过该检查。
<Note>
服务器是权威校验方——它会在 tarball 上传和工作区安装时验证 `engines.twenty`。 即使你通过带外方式部署 tarball 或从应用市场安装,服务器仍会强制执行兼容性要求。
</Note>
## 自动化 CI/CD(脚手架生成的工作流)
使用 `create-twenty-app` 生成的应用开箱即带有两个 GitHub Actions 工作流,位于 `.github/workflows/`。 当你将仓库推送到 GitHub 后即可运行——CI 无需额外设置,CD 只需要一个机密。
+1
View File
@@ -11,6 +11,7 @@
"dependencies": {
"@lingui/core": "^5.1.2",
"@lingui/react": "^5.1.2",
"@react-email/components": "^0.5.3",
"twenty-shared": "workspace:*"
},
"peerDependencies": {
@@ -31,6 +31,7 @@ const meta: Meta<typeof FrontComponentRenderer> = {
frontComponentId: 'storybook-test',
userId: null,
recordId: null,
selectedRecordIds: [],
},
colorScheme: 'light',
frontComponentHostCommunicationApi: createHostApiMocks(),
@@ -20,6 +20,7 @@ const meta: Meta<typeof FrontComponentRenderer> = {
frontComponentId: 'storybook-test',
userId: null,
recordId: null,
selectedRecordIds: [],
},
},
beforeEach: () => {
@@ -122,6 +123,7 @@ export const SdkContext: Story = {
frontComponentId: 'sdk-context-test',
userId: 'test-user-abc-123',
recordId: null,
selectedRecordIds: [],
},
},
play: async ({ canvasElement }) => {
@@ -20,6 +20,7 @@ const meta: Meta<typeof FrontComponentRenderer> = {
frontComponentId: 'storybook-test',
userId: null,
recordId: null,
selectedRecordIds: [],
},
},
beforeEach: () => {
@@ -1,5 +1,10 @@
export type FrontComponentExecutionContext = {
frontComponentId: string;
userId: string | null;
/**
* @deprecated Use `selectedRecordIds` instead. Derive single record as `selectedRecordIds.length === 1 ? selectedRecordIds[0] : null`.
*/
recordId: string | null;
/** All selected record IDs */
selectedRecordIds: string[];
};
+16 -1
View File
@@ -80,7 +80,9 @@
"apollo-link-rest": "^0.10.0-rc.2",
"apollo-upload-client": "^19.0.0",
"buffer": "^6.0.3",
"country-flag-icons": "^1.5.11",
"cron-parser": "5.1.1",
"d3-shape": "^3.2.0",
"date-fns": "^2.30.0",
"date-fns-tz": "^2.0.0",
"deep-equal": "^2.2.2",
@@ -90,6 +92,7 @@
"graphiql": "^3.1.1",
"graphql": "16.8.1",
"graphql-sse": "^2.5.4",
"graphql-tag": "^2.12.6",
"immer": "^10.1.1",
"input-otp": "^1.4.2",
"jotai": "^2.17.1",
@@ -97,10 +100,18 @@
"json-2-csv": "^5.4.0",
"json-logic-js": "^2.0.5",
"jwt-decode": "^4.0.0",
"libphonenumber-js": "^1.10.26",
"linkify-react": "^4.1.3",
"linkifyjs": "^4.1.3",
"lodash.camelcase": "^4.3.0",
"lodash.groupby": "^4.6.0",
"lodash.isempty": "^4.4.0",
"lodash.omit": "^4.5.0",
"lodash.uniqby": "^4.7.0",
"marked": "^17.0.1",
"microdiff": "^1.3.2",
"papaparse": "^5.4.1",
"pluralize": "^8.0.0",
"qs": "^6.11.2",
"react": "^18.2.0",
"react-data-grid": "7.0.0-beta.13",
@@ -122,15 +133,18 @@
"react-router-dom": "^6.4.4",
"react-textarea-autosize": "^8.4.1",
"remark-gfm": "^4.0.1",
"rxjs": "^7.2.0",
"temporal-polyfill": "^0.3.0",
"transliteration": "^2.3.5",
"ts-key-enum": "^2.0.12",
"twenty-front-component-renderer": "workspace:*",
"twenty-shared": "workspace:*",
"twenty-ui": "workspace:*",
"type-fest": "4.10.1",
"use-debounce": "^10.0.0",
"uuid": "^9.0.0",
"xlsx-ugnis": "^0.19.3"
"xlsx-ugnis": "^0.19.3",
"zod": "^4.1.11"
},
"devDependencies": {
"@babel/core": "^7.14.5",
@@ -180,6 +194,7 @@
"oxlint-tsgolint": "^0.16.0",
"playwright": "^1.56.1",
"prettier": "^3.1.1",
"rollup-plugin-node-polyfills": "^0.2.1",
"rollup-plugin-visualizer": "^5.14.0",
"storybook-addon-mock-date": "2.0.0",
"storybook-addon-pseudo-states": "^10.3.3",
@@ -291,6 +291,21 @@ export enum HealthIndicatorId {
worker = 'worker'
}
export type InstanceAndAllWorkspacesUpgradeStatus = {
__typename?: 'InstanceAndAllWorkspacesUpgradeStatus';
computedAt: Scalars['DateTime'];
instanceUpgradeStatus: InstanceUpgradeStatus;
workspacesBehind: Array<WorkspaceUpgradeRef>;
workspacesFailed: Array<WorkspaceUpgradeRef>;
};
export type InstanceUpgradeStatus = {
__typename?: 'InstanceUpgradeStatus';
health: UpgradeHealth;
inferredVersion?: Maybe<Scalars['String']>;
latestCommand?: Maybe<LatestUpgradeCommand>;
};
export type JobOperationResult = {
__typename?: 'JobOperationResult';
error?: Maybe<Scalars['String']>;
@@ -309,6 +324,15 @@ export enum JobState {
WAITING_CHILDREN = 'WAITING_CHILDREN'
}
export type LatestUpgradeCommand = {
__typename?: 'LatestUpgradeCommand';
createdAt: Scalars['DateTime'];
errorMessage?: Maybe<Scalars['String']>;
executedByVersion: Scalars['String'];
name: Scalars['String'];
status: Scalars['String'];
};
export type MaintenanceMode = {
__typename?: 'MaintenanceMode';
endAt: Scalars['DateTime'];
@@ -353,6 +377,7 @@ export type Mutation = {
createDatabaseConfigVariable: Scalars['Boolean'];
deleteDatabaseConfigVariable: Scalars['Boolean'];
deleteJobs: DeleteJobsResponse;
refreshUpgradeStatus: InstanceAndAllWorkspacesUpgradeStatus;
removeAiProvider: Scalars['Boolean'];
removeModelFromProvider: Scalars['Boolean'];
retryJobs: RetryJobsResponse;
@@ -476,12 +501,14 @@ export type Query = {
getConfigVariablesGrouped: ConfigVariables;
getDatabaseConfigVariable: ConfigVariable;
getIndicatorHealthStatus: AdminPanelHealthServiceData;
getInstanceAndAllWorkspacesUpgradeStatus: InstanceAndAllWorkspacesUpgradeStatus;
getMaintenanceMode?: Maybe<MaintenanceMode>;
getModelsDevProviders: Array<ModelsDevProviderSuggestion>;
getModelsDevSuggestions: Array<ModelsDevModelSuggestion>;
getQueueJobs: QueueJobsResponse;
getQueueMetrics: QueueMetricsData;
getSystemHealthStatus: SystemHealth;
getUpgradeStatus: Array<WorkspaceUpgradeStatus>;
userLookupAdminPanel: UserLookup;
versionInfo: VersionInfo;
workspaceBillingAdminPanel?: Maybe<AdminPanelWorkspaceBilling>;
@@ -549,6 +576,11 @@ export type QueryGetQueueMetricsArgs = {
};
export type QueryGetUpgradeStatusArgs = {
workspaceIds: Array<Scalars['UUID']>;
};
export type QueryUserLookupAdminPanelArgs = {
userIdentifier: Scalars['String'];
};
@@ -659,6 +691,12 @@ export type SystemHealthService = {
status: AdminPanelHealthServiceStatus;
};
export enum UpgradeHealth {
BEHIND = 'BEHIND',
FAILED = 'FAILED',
UP_TO_DATE = 'UP_TO_DATE'
}
export type UsageBreakdownItem = {
__typename?: 'UsageBreakdownItem';
creditsUsed: Scalars['Float'];
@@ -678,7 +716,7 @@ export type UserInfo = {
export type UserLookup = {
__typename?: 'UserLookup';
user: UserInfo;
user?: Maybe<UserInfo>;
workspaces: Array<WorkspaceInfo>;
};
@@ -722,6 +760,21 @@ export type WorkspaceInfo = {
workspaceUrls: WorkspaceUrls;
};
export type WorkspaceUpgradeRef = {
__typename?: 'WorkspaceUpgradeRef';
id: Scalars['UUID'];
name?: Maybe<Scalars['String']>;
};
export type WorkspaceUpgradeStatus = {
__typename?: 'WorkspaceUpgradeStatus';
displayName?: Maybe<Scalars['String']>;
health: UpgradeHealth;
inferredVersion?: Maybe<Scalars['String']>;
latestCommand?: Maybe<LatestUpgradeCommand>;
workspaceId: Scalars['UUID'];
};
export type WorkspaceUrls = {
__typename?: 'WorkspaceUrls';
customUrl?: Maybe<Scalars['String']>;
@@ -915,6 +968,13 @@ export type GetAdminWorkspaceChatThreadsQueryVariables = Exact<{
export type GetAdminWorkspaceChatThreadsQuery = { __typename?: 'Query', getAdminWorkspaceChatThreads: Array<{ __typename?: 'AdminWorkspaceChatThread', id: string, title?: string | null, totalInputTokens: number, totalOutputTokens: number, conversationSize: number, createdAt: string, updatedAt: string }> };
export type GetUpgradeStatusQueryVariables = Exact<{
workspaceIds: Array<Scalars['UUID']> | Scalars['UUID'];
}>;
export type GetUpgradeStatusQuery = { __typename?: 'Query', getUpgradeStatus: Array<{ __typename?: 'WorkspaceUpgradeStatus', workspaceId: string, displayName?: string | null, inferredVersion?: string | null, health: UpgradeHealth, latestCommand?: { __typename?: 'LatestUpgradeCommand', name: string, status: string, executedByVersion: string, errorMessage?: string | null, createdAt: string } | null }> };
export type GetVersionInfoQueryVariables = Exact<{ [key: string]: never; }>;
@@ -932,14 +992,14 @@ export type UserLookupAdminPanelQueryVariables = Exact<{
}>;
export type UserLookupAdminPanelQuery = { __typename?: 'Query', userLookupAdminPanel: { __typename?: 'UserLookup', user: { __typename?: 'UserInfo', id: string, email: string, firstName?: string | null, lastName?: string | null, createdAt: string }, workspaces: Array<{ __typename?: 'WorkspaceInfo', id: string, name: string, logo?: string | null, totalUsers: number, activationStatus: WorkspaceActivationStatus, createdAt: string, allowImpersonation: boolean, workspaceUrls: { __typename?: 'WorkspaceUrls', customUrl?: string | null, subdomainUrl: string }, users: Array<{ __typename?: 'UserInfo', id: string, email: string, firstName?: string | null, lastName?: string | null }>, featureFlags: Array<{ __typename?: 'FeatureFlag', key: FeatureFlagKey, value: boolean }> }> } };
export type UserLookupAdminPanelQuery = { __typename?: 'Query', userLookupAdminPanel: { __typename?: 'UserLookup', user?: { __typename?: 'UserInfo', id: string, email: string, firstName?: string | null, lastName?: string | null, createdAt: string } | null, workspaces: Array<{ __typename?: 'WorkspaceInfo', id: string, name: string, logo?: string | null, totalUsers: number, activationStatus: WorkspaceActivationStatus, createdAt: string, allowImpersonation: boolean, workspaceUrls: { __typename?: 'WorkspaceUrls', customUrl?: string | null, subdomainUrl: string }, users: Array<{ __typename?: 'UserInfo', id: string, email: string, firstName?: string | null, lastName?: string | null }>, featureFlags: Array<{ __typename?: 'FeatureFlag', key: FeatureFlagKey, value: boolean }> }> } };
export type WorkspaceLookupAdminPanelQueryVariables = Exact<{
workspaceId: Scalars['UUID'];
}>;
export type WorkspaceLookupAdminPanelQuery = { __typename?: 'Query', workspaceLookupAdminPanel: { __typename?: 'UserLookup', user: { __typename?: 'UserInfo', id: string, email: string, firstName?: string | null, lastName?: string | null, createdAt: string }, workspaces: Array<{ __typename?: 'WorkspaceInfo', id: string, name: string, allowImpersonation: boolean, logo?: string | null, totalUsers: number, activationStatus: WorkspaceActivationStatus, createdAt: string, workspaceUrls: { __typename?: 'WorkspaceUrls', customUrl?: string | null, subdomainUrl: string }, users: Array<{ __typename?: 'UserInfo', id: string, email: string, firstName?: string | null, lastName?: string | null, avatarUrl?: string | null }>, featureFlags: Array<{ __typename?: 'FeatureFlag', key: FeatureFlagKey, value: boolean }> }> } };
export type WorkspaceLookupAdminPanelQuery = { __typename?: 'Query', workspaceLookupAdminPanel: { __typename?: 'UserLookup', user?: { __typename?: 'UserInfo', id: string, email: string, firstName?: string | null, lastName?: string | null, createdAt: string } | null, workspaces: Array<{ __typename?: 'WorkspaceInfo', id: string, name: string, allowImpersonation: boolean, logo?: string | null, totalUsers: number, activationStatus: WorkspaceActivationStatus, createdAt: string, workspaceUrls: { __typename?: 'WorkspaceUrls', customUrl?: string | null, subdomainUrl: string }, users: Array<{ __typename?: 'UserInfo', id: string, email: string, firstName?: string | null, lastName?: string | null, avatarUrl?: string | null }>, featureFlags: Array<{ __typename?: 'FeatureFlag', key: FeatureFlagKey, value: boolean }> }> } };
export type DeleteJobsMutationVariables = Exact<{
queueName: Scalars['String'];
@@ -949,6 +1009,11 @@ export type DeleteJobsMutationVariables = Exact<{
export type DeleteJobsMutation = { __typename?: 'Mutation', deleteJobs: { __typename?: 'DeleteJobsResponse', deletedCount: number, results: Array<{ __typename?: 'JobOperationResult', jobId: string, success: boolean, error?: string | null }> } };
export type RefreshUpgradeStatusMutationVariables = Exact<{ [key: string]: never; }>;
export type RefreshUpgradeStatusMutation = { __typename?: 'Mutation', refreshUpgradeStatus: { __typename?: 'InstanceAndAllWorkspacesUpgradeStatus', computedAt: string, instanceUpgradeStatus: { __typename?: 'InstanceUpgradeStatus', inferredVersion?: string | null, health: UpgradeHealth, latestCommand?: { __typename?: 'LatestUpgradeCommand', name: string, status: string, executedByVersion: string, errorMessage?: string | null, createdAt: string } | null }, workspacesBehind: Array<{ __typename?: 'WorkspaceUpgradeRef', id: string, name?: string | null }>, workspacesFailed: Array<{ __typename?: 'WorkspaceUpgradeRef', id: string, name?: string | null }> } };
export type RetryJobsMutationVariables = Exact<{
queueName: Scalars['String'];
jobIds: Array<Scalars['String']> | Scalars['String'];
@@ -964,6 +1029,11 @@ export type GetIndicatorHealthStatusQueryVariables = Exact<{
export type GetIndicatorHealthStatusQuery = { __typename?: 'Query', getIndicatorHealthStatus: { __typename?: 'AdminPanelHealthServiceData', id: HealthIndicatorId, label: string, description: string, status: AdminPanelHealthServiceStatus, errorMessage?: string | null, details?: string | null, queues?: Array<{ __typename?: 'AdminPanelWorkerQueueHealth', id: string, queueName: string, status: AdminPanelHealthServiceStatus }> | null } };
export type GetInstanceAndAllWorkspacesUpgradeStatusQueryVariables = Exact<{ [key: string]: never; }>;
export type GetInstanceAndAllWorkspacesUpgradeStatusQuery = { __typename?: 'Query', getInstanceAndAllWorkspacesUpgradeStatus: { __typename?: 'InstanceAndAllWorkspacesUpgradeStatus', computedAt: string, instanceUpgradeStatus: { __typename?: 'InstanceUpgradeStatus', inferredVersion?: string | null, health: UpgradeHealth, latestCommand?: { __typename?: 'LatestUpgradeCommand', name: string, status: string, executedByVersion: string, errorMessage?: string | null, createdAt: string } | null }, workspacesBehind: Array<{ __typename?: 'WorkspaceUpgradeRef', id: string, name?: string | null }>, workspacesFailed: Array<{ __typename?: 'WorkspaceUpgradeRef', id: string, name?: string | null }> } };
export type GetQueueJobsQueryVariables = Exact<{
queueName: Scalars['String'];
state: JobState;
@@ -1036,13 +1106,16 @@ export const AdminPanelTopWorkspacesDocument = {"kind":"Document","definitions":
export const FindOneAdminApplicationRegistrationDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindOneAdminApplicationRegistration"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"id"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findOneAdminApplicationRegistration"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ApplicationRegistrationFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ApplicationRegistrationFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ApplicationRegistration"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"universalIdentifier"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"logoUrl"}},{"kind":"Field","name":{"kind":"Name","value":"oAuthClientId"}},{"kind":"Field","name":{"kind":"Name","value":"oAuthRedirectUris"}},{"kind":"Field","name":{"kind":"Name","value":"oAuthScopes"}},{"kind":"Field","name":{"kind":"Name","value":"sourceType"}},{"kind":"Field","name":{"kind":"Name","value":"sourcePackage"}},{"kind":"Field","name":{"kind":"Name","value":"latestAvailableVersion"}},{"kind":"Field","name":{"kind":"Name","value":"isListed"}},{"kind":"Field","name":{"kind":"Name","value":"isFeatured"}},{"kind":"Field","name":{"kind":"Name","value":"isPreInstalled"}},{"kind":"Field","name":{"kind":"Name","value":"ownerWorkspaceId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode<FindOneAdminApplicationRegistrationQuery, FindOneAdminApplicationRegistrationQueryVariables>;
export const GetAdminChatThreadMessagesDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetAdminChatThreadMessages"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"threadId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getAdminChatThreadMessages"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"threadId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"threadId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"thread"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"totalInputTokens"}},{"kind":"Field","name":{"kind":"Name","value":"totalOutputTokens"}},{"kind":"Field","name":{"kind":"Name","value":"conversationSize"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"messages"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"role"}},{"kind":"Field","name":{"kind":"Name","value":"parts"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"textContent"}},{"kind":"Field","name":{"kind":"Name","value":"toolName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]}}]}}]} as unknown as DocumentNode<GetAdminChatThreadMessagesQuery, GetAdminChatThreadMessagesQueryVariables>;
export const GetAdminWorkspaceChatThreadsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetAdminWorkspaceChatThreads"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"workspaceId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getAdminWorkspaceChatThreads"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"workspaceId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"workspaceId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"totalInputTokens"}},{"kind":"Field","name":{"kind":"Name","value":"totalOutputTokens"}},{"kind":"Field","name":{"kind":"Name","value":"conversationSize"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode<GetAdminWorkspaceChatThreadsQuery, GetAdminWorkspaceChatThreadsQueryVariables>;
export const GetUpgradeStatusDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetUpgradeStatus"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"workspaceIds"}},"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getUpgradeStatus"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"workspaceIds"},"value":{"kind":"Variable","name":{"kind":"Name","value":"workspaceIds"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"workspaceId"}},{"kind":"Field","name":{"kind":"Name","value":"displayName"}},{"kind":"Field","name":{"kind":"Name","value":"inferredVersion"}},{"kind":"Field","name":{"kind":"Name","value":"health"}},{"kind":"Field","name":{"kind":"Name","value":"latestCommand"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"executedByVersion"}},{"kind":"Field","name":{"kind":"Name","value":"errorMessage"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]}}]}}]} as unknown as DocumentNode<GetUpgradeStatusQuery, GetUpgradeStatusQueryVariables>;
export const GetVersionInfoDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetVersionInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"versionInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currentVersion"}},{"kind":"Field","name":{"kind":"Name","value":"latestVersion"}}]}}]}}]} as unknown as DocumentNode<GetVersionInfoQuery, GetVersionInfoQueryVariables>;
export const WorkspaceBillingAdminPanelDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"WorkspaceBillingAdminPanel"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"workspaceId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"workspaceBillingAdminPanel"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"workspaceId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"workspaceId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"stripeCustomerId"}},{"kind":"Field","name":{"kind":"Name","value":"creditBalance"}},{"kind":"Field","name":{"kind":"Name","value":"subscription"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"stripeSubscriptionId"}},{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"interval"}},{"kind":"Field","name":{"kind":"Name","value":"currency"}},{"kind":"Field","name":{"kind":"Name","value":"planKey"}},{"kind":"Field","name":{"kind":"Name","value":"currentPeriodStart"}},{"kind":"Field","name":{"kind":"Name","value":"currentPeriodEnd"}},{"kind":"Field","name":{"kind":"Name","value":"trialStart"}},{"kind":"Field","name":{"kind":"Name","value":"trialEnd"}},{"kind":"Field","name":{"kind":"Name","value":"cancelAt"}},{"kind":"Field","name":{"kind":"Name","value":"canceledAt"}},{"kind":"Field","name":{"kind":"Name","value":"cancelAtPeriodEnd"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"productName"}},{"kind":"Field","name":{"kind":"Name","value":"productKey"}},{"kind":"Field","name":{"kind":"Name","value":"stripePriceId"}},{"kind":"Field","name":{"kind":"Name","value":"quantity"}},{"kind":"Field","name":{"kind":"Name","value":"unitAmount"}},{"kind":"Field","name":{"kind":"Name","value":"includedCredits"}}]}}]}}]}}]}}]} as unknown as DocumentNode<WorkspaceBillingAdminPanelQuery, WorkspaceBillingAdminPanelQueryVariables>;
export const UserLookupAdminPanelDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"UserLookupAdminPanel"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"userIdentifier"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"userLookupAdminPanel"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"userIdentifier"},"value":{"kind":"Variable","name":{"kind":"Name","value":"userIdentifier"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"user"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserInfoFragment"}}]}},{"kind":"Field","name":{"kind":"Name","value":"workspaces"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"logo"}},{"kind":"Field","name":{"kind":"Name","value":"totalUsers"}},{"kind":"Field","name":{"kind":"Name","value":"activationStatus"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"allowImpersonation"}},{"kind":"Field","name":{"kind":"Name","value":"workspaceUrls"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"customUrl"}},{"kind":"Field","name":{"kind":"Name","value":"subdomainUrl"}}]}},{"kind":"Field","name":{"kind":"Name","value":"users"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"featureFlags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserInfoFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"UserInfo"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]} as unknown as DocumentNode<UserLookupAdminPanelQuery, UserLookupAdminPanelQueryVariables>;
export const WorkspaceLookupAdminPanelDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"WorkspaceLookupAdminPanel"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"workspaceId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"workspaceLookupAdminPanel"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"workspaceId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"workspaceId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"user"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserInfoFragment"}}]}},{"kind":"Field","name":{"kind":"Name","value":"workspaces"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"allowImpersonation"}},{"kind":"Field","name":{"kind":"Name","value":"logo"}},{"kind":"Field","name":{"kind":"Name","value":"totalUsers"}},{"kind":"Field","name":{"kind":"Name","value":"activationStatus"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"workspaceUrls"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"customUrl"}},{"kind":"Field","name":{"kind":"Name","value":"subdomainUrl"}}]}},{"kind":"Field","name":{"kind":"Name","value":"users"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}}]}},{"kind":"Field","name":{"kind":"Name","value":"featureFlags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserInfoFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"UserInfo"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]} as unknown as DocumentNode<WorkspaceLookupAdminPanelQuery, WorkspaceLookupAdminPanelQueryVariables>;
export const DeleteJobsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"DeleteJobs"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"queueName"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"jobIds"}},"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"deleteJobs"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"queueName"},"value":{"kind":"Variable","name":{"kind":"Name","value":"queueName"}}},{"kind":"Argument","name":{"kind":"Name","value":"jobIds"},"value":{"kind":"Variable","name":{"kind":"Name","value":"jobIds"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"deletedCount"}},{"kind":"Field","name":{"kind":"Name","value":"results"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"jobId"}},{"kind":"Field","name":{"kind":"Name","value":"success"}},{"kind":"Field","name":{"kind":"Name","value":"error"}}]}}]}}]}}]} as unknown as DocumentNode<DeleteJobsMutation, DeleteJobsMutationVariables>;
export const RefreshUpgradeStatusDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"RefreshUpgradeStatus"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"refreshUpgradeStatus"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"instanceUpgradeStatus"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"inferredVersion"}},{"kind":"Field","name":{"kind":"Name","value":"health"}},{"kind":"Field","name":{"kind":"Name","value":"latestCommand"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"executedByVersion"}},{"kind":"Field","name":{"kind":"Name","value":"errorMessage"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"workspacesBehind"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"workspacesFailed"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"computedAt"}}]}}]}}]} as unknown as DocumentNode<RefreshUpgradeStatusMutation, RefreshUpgradeStatusMutationVariables>;
export const RetryJobsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"RetryJobs"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"queueName"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"jobIds"}},"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"retryJobs"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"queueName"},"value":{"kind":"Variable","name":{"kind":"Name","value":"queueName"}}},{"kind":"Argument","name":{"kind":"Name","value":"jobIds"},"value":{"kind":"Variable","name":{"kind":"Name","value":"jobIds"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"retriedCount"}},{"kind":"Field","name":{"kind":"Name","value":"results"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"jobId"}},{"kind":"Field","name":{"kind":"Name","value":"success"}},{"kind":"Field","name":{"kind":"Name","value":"error"}}]}}]}}]}}]} as unknown as DocumentNode<RetryJobsMutation, RetryJobsMutationVariables>;
export const GetIndicatorHealthStatusDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetIndicatorHealthStatus"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"indicatorId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"HealthIndicatorId"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getIndicatorHealthStatus"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"indicatorId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"indicatorId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"errorMessage"}},{"kind":"Field","name":{"kind":"Name","value":"details"}},{"kind":"Field","name":{"kind":"Name","value":"queues"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"queueName"}},{"kind":"Field","name":{"kind":"Name","value":"status"}}]}}]}}]}}]} as unknown as DocumentNode<GetIndicatorHealthStatusQuery, GetIndicatorHealthStatusQueryVariables>;
export const GetInstanceAndAllWorkspacesUpgradeStatusDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetInstanceAndAllWorkspacesUpgradeStatus"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getInstanceAndAllWorkspacesUpgradeStatus"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"instanceUpgradeStatus"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"inferredVersion"}},{"kind":"Field","name":{"kind":"Name","value":"health"}},{"kind":"Field","name":{"kind":"Name","value":"latestCommand"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"executedByVersion"}},{"kind":"Field","name":{"kind":"Name","value":"errorMessage"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"workspacesBehind"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"workspacesFailed"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"computedAt"}}]}}]}}]} as unknown as DocumentNode<GetInstanceAndAllWorkspacesUpgradeStatusQuery, GetInstanceAndAllWorkspacesUpgradeStatusQueryVariables>;
export const GetQueueJobsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetQueueJobs"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"queueName"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"state"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"JobState"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"limit"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"offset"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getQueueJobs"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"queueName"},"value":{"kind":"Variable","name":{"kind":"Name","value":"queueName"}}},{"kind":"Argument","name":{"kind":"Name","value":"state"},"value":{"kind":"Variable","name":{"kind":"Name","value":"state"}}},{"kind":"Argument","name":{"kind":"Name","value":"limit"},"value":{"kind":"Variable","name":{"kind":"Name","value":"limit"}}},{"kind":"Argument","name":{"kind":"Name","value":"offset"},"value":{"kind":"Variable","name":{"kind":"Name","value":"offset"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"jobs"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"data"}},{"kind":"Field","name":{"kind":"Name","value":"state"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"failedReason"}},{"kind":"Field","name":{"kind":"Name","value":"processedOn"}},{"kind":"Field","name":{"kind":"Name","value":"finishedOn"}},{"kind":"Field","name":{"kind":"Name","value":"attemptsMade"}},{"kind":"Field","name":{"kind":"Name","value":"returnValue"}},{"kind":"Field","name":{"kind":"Name","value":"logs"}},{"kind":"Field","name":{"kind":"Name","value":"stackTrace"}}]}},{"kind":"Field","name":{"kind":"Name","value":"count"}},{"kind":"Field","name":{"kind":"Name","value":"totalCount"}},{"kind":"Field","name":{"kind":"Name","value":"hasMore"}},{"kind":"Field","name":{"kind":"Name","value":"retentionConfig"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"completedMaxAge"}},{"kind":"Field","name":{"kind":"Name","value":"completedMaxCount"}},{"kind":"Field","name":{"kind":"Name","value":"failedMaxAge"}},{"kind":"Field","name":{"kind":"Name","value":"failedMaxCount"}}]}}]}}]}}]} as unknown as DocumentNode<GetQueueJobsQuery, GetQueueJobsQueryVariables>;
export const GetQueueMetricsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetQueueMetrics"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"queueName"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"timeRange"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"QueueMetricsTimeRange"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getQueueMetrics"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"queueName"},"value":{"kind":"Variable","name":{"kind":"Name","value":"queueName"}}},{"kind":"Argument","name":{"kind":"Name","value":"timeRange"},"value":{"kind":"Variable","name":{"kind":"Name","value":"timeRange"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"queueName"}},{"kind":"Field","name":{"kind":"Name","value":"timeRange"}},{"kind":"Field","name":{"kind":"Name","value":"workers"}},{"kind":"Field","name":{"kind":"Name","value":"details"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"failed"}},{"kind":"Field","name":{"kind":"Name","value":"completed"}},{"kind":"Field","name":{"kind":"Name","value":"waiting"}},{"kind":"Field","name":{"kind":"Name","value":"active"}},{"kind":"Field","name":{"kind":"Name","value":"delayed"}},{"kind":"Field","name":{"kind":"Name","value":"failureRate"}}]}},{"kind":"Field","name":{"kind":"Name","value":"data"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"data"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"x"}},{"kind":"Field","name":{"kind":"Name","value":"y"}}]}}]}}]}}]}}]} as unknown as DocumentNode<GetQueueMetricsQuery, GetQueueMetricsQueryVariables>;
export const GetSystemHealthStatusDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetSystemHealthStatus"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getSystemHealthStatus"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"services"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"status"}}]}}]}}]}}]} as unknown as DocumentNode<GetSystemHealthStatusQuery, GetSystemHealthStatusQueryVariables>;
File diff suppressed because one or more lines are too long
+344 -6
View File
@@ -146,6 +146,12 @@ msgstr "{0, plural, one {{years} jaar} other {{years} jaar}}"
msgid "{0, plural, one {# Object} other {# Objects}}"
msgstr "{0, plural, one {# Voorwerp} other {# Voorwerpe}}"
#. js-lingui-id: 8ob0vY
#. placeholder {0}: failedCount + behindCount
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{0, plural, one {# workspace failed or behind} other {# workspaces failed or behind}}"
msgstr ""
#. js-lingui-id: WTc9VY
#. placeholder {0}: restriction.fieldNames.length
#: src/modules/page-layout/widgets/components/PageLayoutWidgetForbiddenDisplay.tsx
@@ -204,6 +210,12 @@ msgstr ""
msgid "{0} widgets"
msgstr ""
#. js-lingui-id: xTgz1F
#. placeholder {1}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "{1} OAuth is not yet set up by your server administrator. They need to fill in the OAuth client ID and secret on the application registration before you can add a connection."
msgstr ""
#. js-lingui-id: qdQhzv
#: src/modules/views/advanced-filter-chip/components/AdvancedFilterChip.tsx
msgid "{advancedFilterCount, plural, one {{advancedFilterCount} advanced rule} other {{advancedFilterCount} advanced rules}}"
@@ -229,6 +241,12 @@ msgstr "{aggregateLabel} van {fieldLabel}"
msgid "{appName} wants to access your account"
msgstr "{appName} wil toegang tot jou rekening hê"
#. js-lingui-id: y9covz
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{behindCount, plural, one {# workspace behind} other {# workspaces behind}}"
msgstr ""
#. js-lingui-id: SU5Crx
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "{cachedPercent}% cached"
@@ -291,6 +309,12 @@ msgstr "{duration} dae proeflopie"
msgid "{eventAction} a related {eventObject}"
msgstr "{eventAction} 'n verwante {eventObject}"
#. js-lingui-id: nRKZKb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{failedCount, plural, one {# workspace failed} other {# workspaces failed}}"
msgstr ""
#. js-lingui-id: POhzPf
#: src/modules/ai/hooks/useAiChatFileUpload.ts
msgid "{failedCount} file(s) failed to upload"
@@ -443,6 +467,11 @@ msgstr "{roleLabel} kan nie {humanReadableAction} {objectLabel} rekords nie"
msgid "{roleTargetName} will be assigned to the \"{newRoleName}\" role."
msgstr "{roleTargetName} sal aan die rol \"{newRoleName}\" toegewys word."
#. js-lingui-id: UsskHt
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "{scopeCount} scopes"
msgstr ""
#. js-lingui-id: kvVMdH
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
msgid "{selectedCount, plural, one {Delete {selectedCount} Job} other {Delete {selectedCount} Jobs}}"
@@ -548,6 +577,11 @@ msgstr "0 */1 * * *"
msgid "1 day"
msgstr "1 dag"
#. js-lingui-id: Mkh9C8
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 scope"
msgstr ""
#. js-lingui-id: W/OU4i
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 tab"
@@ -992,6 +1026,11 @@ msgstr "Voeg Blokkie By"
msgid "Add CC"
msgstr "Voeg CC by"
#. js-lingui-id: Rop0cs
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Add connection"
msgstr ""
#. js-lingui-id: RVp8im
#: src/modules/settings/admin-panel/ai/components/SettingsAdminAI.tsx
msgid "Add custom endpoints, private gateways, or additional regions."
@@ -1334,7 +1373,10 @@ msgid "Admin Panel - General"
msgstr ""
#. js-lingui-id: v/zjIb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
msgid "Admin Panel - Health"
msgstr ""
@@ -1938,6 +1980,11 @@ msgstr ""
msgid "Any field"
msgstr "Enige veld"
#. js-lingui-id: SI4CMD
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Anyone in this workspace can use this credential."
msgstr ""
#. js-lingui-id: xJR+Wq
#: src/pages/settings/domains/SettingsDomains.tsx
msgid "Anyone with an email address at these domains is allowed to sign up for this workspace."
@@ -2128,6 +2175,7 @@ msgstr "Toepassing suksesvol opgegradeer."
#: src/pages/settings/applications/SettingsApplications.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Applications"
@@ -2531,6 +2579,7 @@ msgid "Automation, AI, and access this app provides"
msgstr ""
#. js-lingui-id: lXkUEV
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Availability"
msgstr "Beskikbaarheid"
@@ -2631,6 +2680,12 @@ msgstr "Omdat hierdie werkvloei nie 'n handmatige sneller gebruik nie, sal die v
msgid "Before"
msgstr "Voor"
#. js-lingui-id: +MqoSu
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Behind"
msgstr ""
#. js-lingui-id: KYr9vA
#: src/pages/settings/ai/components/SettingsAiModelsTab.tsx
msgid "Best"
@@ -2926,6 +2981,7 @@ msgid "Can't scan? Copy the"
msgstr "Kan nie skandeer nie? Kopieer die"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDangerZone.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
@@ -3473,6 +3529,18 @@ msgstr "Opdragkieslys"
msgid "command menu item"
msgstr "opdragkieslysitem"
#. js-lingui-id: h5/VA5
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Command menu item"
msgstr ""
#. js-lingui-id: yVBJNs
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Command menu items"
msgstr ""
#. js-lingui-id: 9HKBNN
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "commands"
@@ -3515,7 +3583,9 @@ msgid "completed"
msgstr "voltooi"
#. js-lingui-id: qqWcBV
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Completed"
msgstr "Voltooi"
@@ -3530,6 +3600,16 @@ msgstr "Voltooide werke behou vir {completedDuration}, mislukte werke behou vir
msgid "Component name"
msgstr ""
#. js-lingui-id: BglnOD
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Computed at"
msgstr ""
#. js-lingui-id: PLbVix
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Conditional availability"
msgstr ""
#. js-lingui-id: 0CuAor
#: src/modules/workflow/workflow-steps/workflow-actions/if-else-action/components/WorkflowEditActionIfElseBody.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/filter-action/components/WorkflowEditActionFilterBody.tsx
@@ -3561,6 +3641,11 @@ msgstr "Konfig Veranderlikes"
msgid "Configuration"
msgstr "Konfigurasie"
#. js-lingui-id: ais8E1
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Configuration of this command menu item"
msgstr ""
#. js-lingui-id: iAL9tI
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Configure"
@@ -3688,6 +3773,11 @@ msgstr "Bevestig rolopdatering"
msgid "Confirm upgrade"
msgstr "Bevestig opgradering"
#. js-lingui-id: mFiwDA
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Connect {providerDisplayName}"
msgstr ""
#. js-lingui-id: D8ATlr
#: src/modules/settings/accounts/components/SettingsNewAccountSection.tsx
msgid "Connect a new account to your workspace"
@@ -3713,6 +3803,16 @@ msgstr "Verbind met Microsoft"
msgid "Connected accounts"
msgstr "Verbonde rekeninge"
#. js-lingui-id: 54WNJ6
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
msgid "connection provider"
msgstr ""
#. js-lingui-id: sbBqyy
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Connection providers"
msgstr ""
#. js-lingui-id: W4Kgwq
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
msgid "Connection settings"
@@ -3794,6 +3894,7 @@ msgid "Context window"
msgstr "Konteksvenster"
#. js-lingui-id: xGVfLh
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
@@ -4196,6 +4297,7 @@ msgstr "Skep, wysig en verwyder werkruimte-uitsigte"
#. js-lingui-id: d+F6q9
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
@@ -4894,6 +4996,7 @@ msgstr "verwyder"
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -5201,14 +5304,25 @@ msgstr "Vernietig rekords op alle voorwerpe"
msgid "Detach"
msgstr "Ontkoppel"
#. js-lingui-id: crxufE
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Detail per workspace"
msgstr ""
#. js-lingui-id: URmyfc
#: src/pages/settings/security/event-logs/utils/getColumnsForEventLogTable.ts
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/ai/components/RoutingDebugDisplay.tsx
msgid "Details"
msgstr "Besonderhede"
#. js-lingui-id: /RlqQE
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Detected application version running on this instance"
msgstr ""
#. js-lingui-id: 7aDnUb
#: src/pages/settings/applications/SettingsApplications.tsx
msgid "Developer"
@@ -6650,6 +6764,16 @@ msgstr "Voer uit ({percentageValue}%)"
msgid "Export CSV"
msgstr "Voer CSV uit"
#. js-lingui-id: leUV74
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
msgid "Exposes the function as a step in the workflow builder"
msgstr ""
#. js-lingui-id: Kh6fBo
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Exposes the function as a tool that AI agents can call"
msgstr ""
#. js-lingui-id: 1JBTZV
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerCronForm.tsx
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionCronTriggerSection.tsx
@@ -6663,7 +6787,11 @@ msgstr "Ekstra Krediete Gebruik"
#. js-lingui-id: 7Bj3x9
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Failed"
msgstr "Misluk"
@@ -6773,6 +6901,13 @@ msgstr "Kon nie rekords saamvoeg nie. Probeer asseblief weer."
msgid "Failed to parse context: {contextValue}"
msgstr "Kon nie konteks ontleed nie: {contextValue}"
#. js-lingui-id: 3m7+J/
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Failed to refresh upgrade status"
msgstr ""
#. js-lingui-id: 3YA1cX
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Failed to remove model"
@@ -7344,6 +7479,7 @@ msgstr "front-end-komponent"
#. js-lingui-id: 7skoga
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Front component"
msgstr ""
@@ -7652,6 +7788,11 @@ msgstr ""
msgid "Health"
msgstr "Gesondheid"
#. js-lingui-id: HyaXse
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
msgid "Health of the latest instance command"
msgstr ""
#. js-lingui-id: I1IOmb
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Health Status"
@@ -7875,6 +8016,7 @@ msgstr ""
#. js-lingui-id: wwu18a
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Icon"
msgstr "Ikoon"
@@ -8107,6 +8249,15 @@ msgstr "Indeks"
msgid "Indexes"
msgstr "Indekse"
#. js-lingui-id: hG711D
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Inferred version"
msgstr ""
#. js-lingui-id: CE+M2e
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -8202,6 +8353,13 @@ msgstr ""
msgid "Installing..."
msgstr "Installeer..."
#. js-lingui-id: x8uKc7
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Instance status"
msgstr ""
#. js-lingui-id: AwUsnG
#: src/pages/settings/data-model/constants/SettingsObjectTableMetadata.ts
msgid "Instances"
@@ -8575,6 +8733,17 @@ msgstr "Sluit aan by {workspaceName} span"
msgid "JSON"
msgstr ""
#. js-lingui-id: UpNpMK
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Just for me"
msgstr ""
#. js-lingui-id: JJOCq/
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Just me"
msgstr ""
#. js-lingui-id: OGXtL8
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
@@ -8603,6 +8772,7 @@ msgid "Korean"
msgstr "Koreaans"
#. js-lingui-id: 87a/t/
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsText.tsx
@@ -8711,6 +8881,24 @@ msgstr "Laaste 90 dae"
msgid "Last activity"
msgstr ""
#. js-lingui-id: IpCCj8
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command"
msgstr ""
#. js-lingui-id: cdB4EG
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command result"
msgstr ""
#. js-lingui-id: wW6NCp
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last error"
msgstr ""
#. js-lingui-id: c5zxSg
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "Last message"
@@ -8749,6 +8937,12 @@ msgstr "Laaste betaling het misluk. Kontak asseblief u admin."
msgid "Last payment failed. Please update your billing details."
msgstr "Laaste betaling het misluk. Werk asseblief u faktureringsbesonderhede by."
#. js-lingui-id: C3yOz3
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last updated"
msgstr ""
#. js-lingui-id: wL3cK8
#: src/modules/settings/applications/components/SettingsApplicationAboutSidebar.tsx
#: src/modules/object-record/record-board/record-board-column/utils/getAggregateOperationShortLabel.ts
@@ -9192,6 +9386,12 @@ msgstr "Bestuur rekening en intekeninge"
msgid "Manage billing information"
msgstr "Bestuur faktuurinligting"
#. js-lingui-id: GDz4fg
#. placeholder {0}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Manage connections used by this app to call {0}."
msgstr ""
#. js-lingui-id: U8dG4j
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
@@ -9720,6 +9920,15 @@ msgstr "My ongemerkte uitsigte"
msgid "mySkill"
msgstr "mySkill"
#. js-lingui-id: fj5byd
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "N/A"
msgstr ""
#. js-lingui-id: 6YtxFj
#: src/testing/mock-data/tableData.ts
#: src/pages/settings/SettingsWorkspace.tsx
@@ -10027,6 +10236,7 @@ msgstr "Negende"
#. js-lingui-id: 1UzENP
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelUpdateFieldsValueForObject.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelSeeFieldsValueForObject.tsx
@@ -10597,7 +10807,6 @@ msgid "No variables found"
msgstr "Geen veranderlikes gevind nie"
#. js-lingui-id: OCektF
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
msgid "No variables to set for this application"
msgstr ""
@@ -10612,6 +10821,16 @@ msgstr "Geen werkstroomlopies tot nou toe"
msgid "No workflow versions yet"
msgstr "Geen werkstroom weergawes tot nou toe"
#. js-lingui-id: Q4dFjT
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace behind"
msgstr ""
#. js-lingui-id: apOMfI
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace failed"
msgstr ""
#. js-lingui-id: rPAZRd
#: src/modules/settings/lab/hooks/useLabPublicFeatureFlags.ts
msgid "No workspace selected"
@@ -10629,12 +10848,14 @@ msgstr "Node"
#. js-lingui-id: EdQY6l
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/BodyInput.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionEmailBase.tsx
#: src/modules/side-panel/pages/page-layout/utils/getDateGranularityLabel.ts
#: src/modules/side-panel/pages/page-layout/utils/getChartAxisNameDisplayOptions.ts
#: src/modules/side-panel/pages/page-layout/components/dropdown-content/ChartGroupByFieldSelectionDropdownContentBase.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectIdentifiersForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/accounts/components/SettingsAccountsMessageAutoCreationCard.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterMenuContent.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterAggregateOperationMenuItems.tsx
@@ -10680,6 +10901,11 @@ msgstr "Nie Gevind Nie"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationConfigTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Not set"
msgstr "Nie ingestel nie"
@@ -10700,6 +10926,11 @@ msgstr "Nie gedeel deur {notSharedByFullName} nie"
msgid "Not synced"
msgstr "Nie gesinkroniseer nie"
#. js-lingui-id: VngD1z
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
msgid "Nothing to configure for this application"
msgstr ""
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
@@ -10777,6 +11008,11 @@ msgstr ""
msgid "OAuth"
msgstr "OAuth"
#. js-lingui-id: IxKj9Y
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "OAuth 2.0"
msgstr ""
#. js-lingui-id: pNEViR
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
@@ -11020,6 +11256,11 @@ msgstr "Slegs die onderwerp word gedeel"
msgid "Only the timestamp & participants will be shared with your team."
msgstr "Slegs die tydstempel en deelnemers sal met jou span gedeel word."
#. js-lingui-id: Lp+2YF
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Only you can use this credential."
msgstr ""
#. js-lingui-id: 1TNIig
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
@@ -11159,10 +11400,13 @@ msgstr "Rangskik"
#. js-lingui-id: /IX/7x
#: src/pages/settings/updates/SettingsUpdates.tsx
#: src/pages/settings/security/SettingsSecurity.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceChatThread.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
@@ -11534,6 +11778,7 @@ msgid "Pink"
msgstr "Pienk"
#. js-lingui-id: kNiQp6
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
#: src/modules/command-menu-item/display/components/SidePanelCommandMenuItemDisplayPage.tsx
msgid "Pinned"
@@ -11838,6 +12083,7 @@ msgstr "Eienskappe"
#. js-lingui-id: 8B+pY5
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Property"
msgstr ""
@@ -12077,12 +12323,18 @@ msgid "Recommended Models"
msgstr "Aanbevole Modelle"
#. js-lingui-id: gcoiFh
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountInsufficientPermissions.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountEmailAliases.tsx
msgid "Reconnect"
msgstr "Herlaai"
#. js-lingui-id: XsIxsL
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Reconnect needed"
msgstr ""
#. js-lingui-id: hVS0gK
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsRecordPicker.tsx
msgid "record"
@@ -12195,6 +12447,13 @@ msgstr "Herleidings URI"
msgid "Refresh"
msgstr "Verfris"
#. js-lingui-id: pTGa/J
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Refresh status"
msgstr ""
#. js-lingui-id: vpZcGd
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
@@ -13648,6 +13907,11 @@ msgstr ""
msgid "Short"
msgstr "Kort"
#. js-lingui-id: 2rtIq8
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Short label"
msgstr ""
#. js-lingui-id: gWk8gY
#: src/modules/settings/data-model/fields/forms/components/SettingsDataModelFieldIconLabelForm.tsx
msgid "Should changing a field's label also change the API name?"
@@ -14068,9 +14332,11 @@ msgstr "Staat"
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
#: src/modules/settings/accounts/components/SettingsConnectedAccountsTableHeader.tsx
#: src/modules/ai/components/AiChatThreadFilterDropdownStatusMenu.tsx
@@ -15289,11 +15555,6 @@ msgstr "Sneller die funksie gereeld"
msgid "Triggers the function when a record changes"
msgstr ""
#. js-lingui-id: OIRkpM
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Triggers the function when called by an AI agent or workflow"
msgstr ""
#. js-lingui-id: YdQqyX
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionHttpTriggerSection.tsx
msgid "Triggers the function with an HTTP request"
@@ -15546,12 +15807,17 @@ msgstr "Universele ID"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/layout/SettingsLayoutPageLayoutDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Universal identifier"
msgstr ""
#. js-lingui-id: Ef7StM
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusRightContainer.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminVersionContainer.tsx
msgid "Unknown"
msgstr "Onbekend"
@@ -15584,6 +15850,11 @@ msgstr "Onbekende lêer"
msgid "Unknown object"
msgstr "Onbekende objek"
#. js-lingui-id: m/o1+r
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesByHealthAccordion.tsx
msgid "Unknown workspace"
msgstr ""
#. js-lingui-id: GQCXQS
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
@@ -15675,6 +15946,11 @@ msgstr "Ongenoemde Werkvloei"
msgid "Unused credits from the previous period. Expired at the end of the period."
msgstr ""
#. js-lingui-id: j5CWO4
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
msgid "Up to date"
msgstr ""
#. js-lingui-id: hmc//6
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Upcoming execution time ({timeZone})"
@@ -15737,6 +16013,7 @@ msgstr "opgedateer"
#. js-lingui-id: +b7T3G
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
msgid "Updated"
@@ -15763,11 +16040,39 @@ msgstr "Opdaterings"
msgid "Upgrade"
msgstr "Opgradering"
#. js-lingui-id: IEtN5Y
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Upgrade health"
msgstr ""
#. js-lingui-id: 88ZkNH
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Upgrade health across all workspaces"
msgstr ""
#. js-lingui-id: +awaFr
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Upgrade health across instance and workspaces"
msgstr ""
#. js-lingui-id: 7aHRdp
#: src/modules/ai/components/AiChatCreditsExhaustedMessage.tsx
msgid "Upgrade Plan"
msgstr "Gradeer plan op"
#. js-lingui-id: 5UfQvA
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Upgrade Status"
msgstr ""
#. js-lingui-id: /l59TO
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Upgrade status refreshed"
msgstr ""
#. js-lingui-id: pKCx2F
#: src/pages/settings/applications/tabs/SettingsApplicationDetailAboutTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
@@ -16055,6 +16360,7 @@ msgstr "Geldigheidstoken is suksesvol herlaai"
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/KeyValuePairInput.tsx
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/settings/logic-functions/components/tabs/SettingsLogicFunctionTabEnvironmentVariableTableRow.tsx
@@ -16597,6 +16903,12 @@ msgstr "Sonder kredietkaart"
msgid "Worker"
msgstr "Werker"
#. js-lingui-id: eQ/LA/
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
#: src/modules/logic-functions/utils/getLogicFunctionTriggerLabel.ts
msgid "Workflow action"
msgstr ""
#. js-lingui-id: Kqs5vQ
#: src/pages/settings/ai/components/SettingsAiAgentsTable.tsx
msgid "Workflow agents"
@@ -16655,6 +16967,8 @@ msgstr "Werksvloeie"
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationConfigVariableDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -16719,6 +17033,11 @@ msgstr "Werkruimte-inligting"
msgid "Workspace Instructions"
msgstr "Werkruimte-instruksies"
#. js-lingui-id: Ce7yfm
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Workspace lists by upgrade status"
msgstr ""
#. js-lingui-id: Y0Fj4S
#: src/pages/onboarding/CreateWorkspace.tsx
msgid "Workspace logo"
@@ -16739,6 +17058,17 @@ msgstr ""
msgid "Workspace name"
msgstr "Werkruimte naam"
#. js-lingui-id: PHF7zj
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Workspace shared"
msgstr ""
#. js-lingui-id: Smg70n
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Workspace upgrade health"
msgstr ""
#. js-lingui-id: QZi0YX
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownVisibilityContent.tsx
msgid "Workspace views require manage views permission"
@@ -16749,6 +17079,13 @@ msgstr "Werkruimte-uitsigte vereis bestuur-uitsigte mag"
msgid "Workspaces"
msgstr "Werkruimtes"
#. js-lingui-id: 33fb3H
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Workspaces status"
msgstr ""
#. js-lingui-id: QPsQMb
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
msgid "Would you like to remove {recordIndexRecordGroupSort} group sorting?"
@@ -16844,6 +17181,7 @@ msgstr "ja"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/pages/settings/ai/components/SettingsToolParameterTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
+344 -6
View File
@@ -146,6 +146,12 @@ msgstr "{0, plural, zero {{years} سنة} one {{years} سنة} two {{years} سن
msgid "{0, plural, one {# Object} other {# Objects}}"
msgstr "{0, plural, zero {# أشياء} one {# شيء} two {# شيئان} few {# أشياء} many {# أشياء} other {# أشياء}}"
#. js-lingui-id: 8ob0vY
#. placeholder {0}: failedCount + behindCount
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{0, plural, one {# workspace failed or behind} other {# workspaces failed or behind}}"
msgstr ""
#. js-lingui-id: WTc9VY
#. placeholder {0}: restriction.fieldNames.length
#: src/modules/page-layout/widgets/components/PageLayoutWidgetForbiddenDisplay.tsx
@@ -204,6 +210,12 @@ msgstr ""
msgid "{0} widgets"
msgstr ""
#. js-lingui-id: xTgz1F
#. placeholder {1}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "{1} OAuth is not yet set up by your server administrator. They need to fill in the OAuth client ID and secret on the application registration before you can add a connection."
msgstr ""
#. js-lingui-id: qdQhzv
#: src/modules/views/advanced-filter-chip/components/AdvancedFilterChip.tsx
msgid "{advancedFilterCount, plural, one {{advancedFilterCount} advanced rule} other {{advancedFilterCount} advanced rules}}"
@@ -229,6 +241,12 @@ msgstr "{aggregateLabel} من {fieldLabel}"
msgid "{appName} wants to access your account"
msgstr "{appName} يريد الوصول إلى حسابك"
#. js-lingui-id: y9covz
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{behindCount, plural, one {# workspace behind} other {# workspaces behind}}"
msgstr ""
#. js-lingui-id: SU5Crx
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "{cachedPercent}% cached"
@@ -291,6 +309,12 @@ msgstr "{duration, plural, zero {تجربة لمدة 0 يوم} one {تجربة
msgid "{eventAction} a related {eventObject}"
msgstr "{eventAction} {eventObject} ذي صلة"
#. js-lingui-id: nRKZKb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{failedCount, plural, one {# workspace failed} other {# workspaces failed}}"
msgstr ""
#. js-lingui-id: POhzPf
#: src/modules/ai/hooks/useAiChatFileUpload.ts
msgid "{failedCount} file(s) failed to upload"
@@ -443,6 +467,11 @@ msgstr "{roleLabel} لا يمكنه {humanReadableAction} سجلات {objectLabe
msgid "{roleTargetName} will be assigned to the \"{newRoleName}\" role."
msgstr "سيتم تعيين {roleTargetName} إلى الدور \"{newRoleName}\"."
#. js-lingui-id: UsskHt
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "{scopeCount} scopes"
msgstr ""
#. js-lingui-id: kvVMdH
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
msgid "{selectedCount, plural, one {Delete {selectedCount} Job} other {Delete {selectedCount} Jobs}}"
@@ -548,6 +577,11 @@ msgstr "0 */1 * * *"
msgid "1 day"
msgstr "يوم واحد"
#. js-lingui-id: Mkh9C8
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 scope"
msgstr ""
#. js-lingui-id: W/OU4i
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 tab"
@@ -992,6 +1026,11 @@ msgstr "إضافة بلوك"
msgid "Add CC"
msgstr "إضافة نسخة كربونية"
#. js-lingui-id: Rop0cs
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Add connection"
msgstr ""
#. js-lingui-id: RVp8im
#: src/modules/settings/admin-panel/ai/components/SettingsAdminAI.tsx
msgid "Add custom endpoints, private gateways, or additional regions."
@@ -1334,7 +1373,10 @@ msgid "Admin Panel - General"
msgstr ""
#. js-lingui-id: v/zjIb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
msgid "Admin Panel - Health"
msgstr ""
@@ -1938,6 +1980,11 @@ msgstr ""
msgid "Any field"
msgstr "أي حقل"
#. js-lingui-id: SI4CMD
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Anyone in this workspace can use this credential."
msgstr ""
#. js-lingui-id: xJR+Wq
#: src/pages/settings/domains/SettingsDomains.tsx
msgid "Anyone with an email address at these domains is allowed to sign up for this workspace."
@@ -2128,6 +2175,7 @@ msgstr "تمت ترقية التطبيق بنجاح."
#: src/pages/settings/applications/SettingsApplications.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Applications"
@@ -2531,6 +2579,7 @@ msgid "Automation, AI, and access this app provides"
msgstr ""
#. js-lingui-id: lXkUEV
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Availability"
msgstr "التوفر"
@@ -2631,6 +2680,12 @@ msgstr "نظرًا لأن سير العمل هذا لا يستخدم مشغّل
msgid "Before"
msgstr "قبل"
#. js-lingui-id: +MqoSu
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Behind"
msgstr ""
#. js-lingui-id: KYr9vA
#: src/pages/settings/ai/components/SettingsAiModelsTab.tsx
msgid "Best"
@@ -2926,6 +2981,7 @@ msgid "Can't scan? Copy the"
msgstr "هل لا يمكنك المسح؟ انسخ الـ"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDangerZone.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
@@ -3473,6 +3529,18 @@ msgstr "قائمة الأوامر"
msgid "command menu item"
msgstr "عنصر قائمة الأوامر"
#. js-lingui-id: h5/VA5
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Command menu item"
msgstr ""
#. js-lingui-id: yVBJNs
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Command menu items"
msgstr ""
#. js-lingui-id: 9HKBNN
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "commands"
@@ -3515,7 +3583,9 @@ msgid "completed"
msgstr "مكتمل"
#. js-lingui-id: qqWcBV
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Completed"
msgstr "مكتمل"
@@ -3530,6 +3600,16 @@ msgstr "تم الاحتفاظ بالوظائف المكتملة لمدة {comple
msgid "Component name"
msgstr ""
#. js-lingui-id: BglnOD
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Computed at"
msgstr ""
#. js-lingui-id: PLbVix
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Conditional availability"
msgstr ""
#. js-lingui-id: 0CuAor
#: src/modules/workflow/workflow-steps/workflow-actions/if-else-action/components/WorkflowEditActionIfElseBody.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/filter-action/components/WorkflowEditActionFilterBody.tsx
@@ -3561,6 +3641,11 @@ msgstr "متغيرات التكوين"
msgid "Configuration"
msgstr "التكوين"
#. js-lingui-id: ais8E1
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Configuration of this command menu item"
msgstr ""
#. js-lingui-id: iAL9tI
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Configure"
@@ -3688,6 +3773,11 @@ msgstr "تأكيد تحديث الدور"
msgid "Confirm upgrade"
msgstr "تأكيد التحديث"
#. js-lingui-id: mFiwDA
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Connect {providerDisplayName}"
msgstr ""
#. js-lingui-id: D8ATlr
#: src/modules/settings/accounts/components/SettingsNewAccountSection.tsx
msgid "Connect a new account to your workspace"
@@ -3713,6 +3803,16 @@ msgstr "الاتصال بـ Microsoft"
msgid "Connected accounts"
msgstr "الحسابات المتصلة"
#. js-lingui-id: 54WNJ6
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
msgid "connection provider"
msgstr ""
#. js-lingui-id: sbBqyy
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Connection providers"
msgstr ""
#. js-lingui-id: W4Kgwq
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
msgid "Connection settings"
@@ -3794,6 +3894,7 @@ msgid "Context window"
msgstr "نافذة السياق"
#. js-lingui-id: xGVfLh
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
@@ -4196,6 +4297,7 @@ msgstr "إنشاء وتحرير وحذف عروض مساحة العمل"
#. js-lingui-id: d+F6q9
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
@@ -4894,6 +4996,7 @@ msgstr "حذف"
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -5201,14 +5304,25 @@ msgstr "إتلاف السجلات في جميع العناصر"
msgid "Detach"
msgstr "فصل"
#. js-lingui-id: crxufE
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Detail per workspace"
msgstr ""
#. js-lingui-id: URmyfc
#: src/pages/settings/security/event-logs/utils/getColumnsForEventLogTable.ts
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/ai/components/RoutingDebugDisplay.tsx
msgid "Details"
msgstr "تفاصيل"
#. js-lingui-id: /RlqQE
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Detected application version running on this instance"
msgstr ""
#. js-lingui-id: 7aDnUb
#: src/pages/settings/applications/SettingsApplications.tsx
msgid "Developer"
@@ -6650,6 +6764,16 @@ msgstr "تصدير ({percentageValue}%)"
msgid "Export CSV"
msgstr "تصدير CSV"
#. js-lingui-id: leUV74
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
msgid "Exposes the function as a step in the workflow builder"
msgstr ""
#. js-lingui-id: Kh6fBo
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Exposes the function as a tool that AI agents can call"
msgstr ""
#. js-lingui-id: 1JBTZV
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerCronForm.tsx
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionCronTriggerSection.tsx
@@ -6663,7 +6787,11 @@ msgstr "الإعتمادات الإضافية المستخدمة"
#. js-lingui-id: 7Bj3x9
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Failed"
msgstr "فشل"
@@ -6773,6 +6901,13 @@ msgstr "فشل دمج السجلات. يُرجى المحاولة مرة أخر
msgid "Failed to parse context: {contextValue}"
msgstr "فشل في تحليل السياق: {contextValue}"
#. js-lingui-id: 3m7+J/
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Failed to refresh upgrade status"
msgstr ""
#. js-lingui-id: 3YA1cX
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Failed to remove model"
@@ -7344,6 +7479,7 @@ msgstr "المكوّن الأمامي"
#. js-lingui-id: 7skoga
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Front component"
msgstr ""
@@ -7652,6 +7788,11 @@ msgstr ""
msgid "Health"
msgstr "الصحة"
#. js-lingui-id: HyaXse
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
msgid "Health of the latest instance command"
msgstr ""
#. js-lingui-id: I1IOmb
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Health Status"
@@ -7875,6 +8016,7 @@ msgstr ""
#. js-lingui-id: wwu18a
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Icon"
msgstr "أيقونة"
@@ -8107,6 +8249,15 @@ msgstr "الفهرس"
msgid "Indexes"
msgstr "الفهرسات"
#. js-lingui-id: hG711D
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Inferred version"
msgstr ""
#. js-lingui-id: CE+M2e
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -8202,6 +8353,13 @@ msgstr ""
msgid "Installing..."
msgstr "جاري التثبيت..."
#. js-lingui-id: x8uKc7
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Instance status"
msgstr ""
#. js-lingui-id: AwUsnG
#: src/pages/settings/data-model/constants/SettingsObjectTableMetadata.ts
msgid "Instances"
@@ -8575,6 +8733,17 @@ msgstr "انضم إلى فريق {workspaceName}"
msgid "JSON"
msgstr ""
#. js-lingui-id: UpNpMK
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Just for me"
msgstr ""
#. js-lingui-id: JJOCq/
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Just me"
msgstr ""
#. js-lingui-id: OGXtL8
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
@@ -8603,6 +8772,7 @@ msgid "Korean"
msgstr "الكورية"
#. js-lingui-id: 87a/t/
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsText.tsx
@@ -8711,6 +8881,24 @@ msgstr "آخر 90 يومًا"
msgid "Last activity"
msgstr ""
#. js-lingui-id: IpCCj8
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command"
msgstr ""
#. js-lingui-id: cdB4EG
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command result"
msgstr ""
#. js-lingui-id: wW6NCp
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last error"
msgstr ""
#. js-lingui-id: c5zxSg
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "Last message"
@@ -8749,6 +8937,12 @@ msgstr "فشلت الدفع الأخيرة. يرجى الاتصال بالمسؤ
msgid "Last payment failed. Please update your billing details."
msgstr "فشلت الدفع الأخيرة. يرجى تحديث تفاصيل الفوترة الخاصة بك."
#. js-lingui-id: C3yOz3
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last updated"
msgstr ""
#. js-lingui-id: wL3cK8
#: src/modules/settings/applications/components/SettingsApplicationAboutSidebar.tsx
#: src/modules/object-record/record-board/record-board-column/utils/getAggregateOperationShortLabel.ts
@@ -9192,6 +9386,12 @@ msgstr "إدارة الفوترة والاشتراكات"
msgid "Manage billing information"
msgstr "إدارة معلومات الفوترة"
#. js-lingui-id: GDz4fg
#. placeholder {0}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Manage connections used by this app to call {0}."
msgstr ""
#. js-lingui-id: U8dG4j
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
@@ -9720,6 +9920,15 @@ msgstr "عروضي غير المدرجة"
msgid "mySkill"
msgstr "mySkill"
#. js-lingui-id: fj5byd
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "N/A"
msgstr ""
#. js-lingui-id: 6YtxFj
#: src/testing/mock-data/tableData.ts
#: src/pages/settings/SettingsWorkspace.tsx
@@ -10027,6 +10236,7 @@ msgstr "تاسع"
#. js-lingui-id: 1UzENP
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelUpdateFieldsValueForObject.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelSeeFieldsValueForObject.tsx
@@ -10597,7 +10807,6 @@ msgid "No variables found"
msgstr "لم يتم العثور على متغيرات"
#. js-lingui-id: OCektF
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
msgid "No variables to set for this application"
msgstr ""
@@ -10612,6 +10821,16 @@ msgstr "لا يوجد تشغيلات لعمليات العمل بعد"
msgid "No workflow versions yet"
msgstr "لا توجد نسخ لعمليات العمل بعد"
#. js-lingui-id: Q4dFjT
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace behind"
msgstr ""
#. js-lingui-id: apOMfI
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace failed"
msgstr ""
#. js-lingui-id: rPAZRd
#: src/modules/settings/lab/hooks/useLabPublicFeatureFlags.ts
msgid "No workspace selected"
@@ -10629,12 +10848,14 @@ msgstr "عقدة"
#. js-lingui-id: EdQY6l
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/BodyInput.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionEmailBase.tsx
#: src/modules/side-panel/pages/page-layout/utils/getDateGranularityLabel.ts
#: src/modules/side-panel/pages/page-layout/utils/getChartAxisNameDisplayOptions.ts
#: src/modules/side-panel/pages/page-layout/components/dropdown-content/ChartGroupByFieldSelectionDropdownContentBase.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectIdentifiersForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/accounts/components/SettingsAccountsMessageAutoCreationCard.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterMenuContent.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterAggregateOperationMenuItems.tsx
@@ -10680,6 +10901,11 @@ msgstr "غير موجود"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationConfigTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Not set"
msgstr "غير محدد"
@@ -10700,6 +10926,11 @@ msgstr "لم تتم المشاركة من قِبَل {notSharedByFullName}"
msgid "Not synced"
msgstr "غير متزامن"
#. js-lingui-id: VngD1z
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
msgid "Nothing to configure for this application"
msgstr ""
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
@@ -10777,6 +11008,11 @@ msgstr ""
msgid "OAuth"
msgstr "OAuth"
#. js-lingui-id: IxKj9Y
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "OAuth 2.0"
msgstr ""
#. js-lingui-id: pNEViR
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
@@ -11020,6 +11256,11 @@ msgstr "يتم مشاركة الموضوع فقط"
msgid "Only the timestamp & participants will be shared with your team."
msgstr "سيتم مشاركة الطابع الزمني والمشاركين فقط مع فريقك."
#. js-lingui-id: Lp+2YF
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Only you can use this credential."
msgstr ""
#. js-lingui-id: 1TNIig
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
@@ -11159,10 +11400,13 @@ msgstr "تنظيم"
#. js-lingui-id: /IX/7x
#: src/pages/settings/updates/SettingsUpdates.tsx
#: src/pages/settings/security/SettingsSecurity.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceChatThread.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
@@ -11534,6 +11778,7 @@ msgid "Pink"
msgstr "وردي"
#. js-lingui-id: kNiQp6
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
#: src/modules/command-menu-item/display/components/SidePanelCommandMenuItemDisplayPage.tsx
msgid "Pinned"
@@ -11838,6 +12083,7 @@ msgstr "الخصائص"
#. js-lingui-id: 8B+pY5
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Property"
msgstr ""
@@ -12077,12 +12323,18 @@ msgid "Recommended Models"
msgstr "النماذج الموصى بها"
#. js-lingui-id: gcoiFh
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountInsufficientPermissions.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountEmailAliases.tsx
msgid "Reconnect"
msgstr "إعادة الاتصال"
#. js-lingui-id: XsIxsL
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Reconnect needed"
msgstr ""
#. js-lingui-id: hVS0gK
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsRecordPicker.tsx
msgid "record"
@@ -12195,6 +12447,13 @@ msgstr "عنوان وموقع إعادة التوجيه"
msgid "Refresh"
msgstr "تحديث"
#. js-lingui-id: pTGa/J
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Refresh status"
msgstr ""
#. js-lingui-id: vpZcGd
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
@@ -13648,6 +13907,11 @@ msgstr ""
msgid "Short"
msgstr "قصير"
#. js-lingui-id: 2rtIq8
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Short label"
msgstr ""
#. js-lingui-id: gWk8gY
#: src/modules/settings/data-model/fields/forms/components/SettingsDataModelFieldIconLabelForm.tsx
msgid "Should changing a field's label also change the API name?"
@@ -14068,9 +14332,11 @@ msgstr "الولاية"
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
#: src/modules/settings/accounts/components/SettingsConnectedAccountsTableHeader.tsx
#: src/modules/ai/components/AiChatThreadFilterDropdownStatusMenu.tsx
@@ -15289,11 +15555,6 @@ msgstr "تؤدي الوظيفة على فترات منتظمة"
msgid "Triggers the function when a record changes"
msgstr ""
#. js-lingui-id: OIRkpM
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Triggers the function when called by an AI agent or workflow"
msgstr ""
#. js-lingui-id: YdQqyX
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionHttpTriggerSection.tsx
msgid "Triggers the function with an HTTP request"
@@ -15546,12 +15807,17 @@ msgstr "المعرّف الشامل"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/layout/SettingsLayoutPageLayoutDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Universal identifier"
msgstr ""
#. js-lingui-id: Ef7StM
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusRightContainer.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminVersionContainer.tsx
msgid "Unknown"
msgstr "غير معروف"
@@ -15584,6 +15850,11 @@ msgstr "ملف غير معروف"
msgid "Unknown object"
msgstr "كائن غير معروف"
#. js-lingui-id: m/o1+r
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesByHealthAccordion.tsx
msgid "Unknown workspace"
msgstr ""
#. js-lingui-id: GQCXQS
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
@@ -15675,6 +15946,11 @@ msgstr "تدفق عمل بدون عنوان"
msgid "Unused credits from the previous period. Expired at the end of the period."
msgstr ""
#. js-lingui-id: j5CWO4
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
msgid "Up to date"
msgstr ""
#. js-lingui-id: hmc//6
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Upcoming execution time ({timeZone})"
@@ -15737,6 +16013,7 @@ msgstr "تم التحديث"
#. js-lingui-id: +b7T3G
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
msgid "Updated"
@@ -15763,11 +16040,39 @@ msgstr "التحديثات"
msgid "Upgrade"
msgstr "تحديث"
#. js-lingui-id: IEtN5Y
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Upgrade health"
msgstr ""
#. js-lingui-id: 88ZkNH
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Upgrade health across all workspaces"
msgstr ""
#. js-lingui-id: +awaFr
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Upgrade health across instance and workspaces"
msgstr ""
#. js-lingui-id: 7aHRdp
#: src/modules/ai/components/AiChatCreditsExhaustedMessage.tsx
msgid "Upgrade Plan"
msgstr "ترقية الخطة"
#. js-lingui-id: 5UfQvA
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Upgrade Status"
msgstr ""
#. js-lingui-id: /l59TO
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Upgrade status refreshed"
msgstr ""
#. js-lingui-id: pKCx2F
#: src/pages/settings/applications/tabs/SettingsApplicationDetailAboutTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
@@ -16055,6 +16360,7 @@ msgstr "تم تحديث رمز الصلاحية بنجاح"
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/KeyValuePairInput.tsx
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/settings/logic-functions/components/tabs/SettingsLogicFunctionTabEnvironmentVariableTableRow.tsx
@@ -16595,6 +16901,12 @@ msgstr "بدون بطاقة ائتمان"
msgid "Worker"
msgstr "العامل"
#. js-lingui-id: eQ/LA/
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
#: src/modules/logic-functions/utils/getLogicFunctionTriggerLabel.ts
msgid "Workflow action"
msgstr ""
#. js-lingui-id: Kqs5vQ
#: src/pages/settings/ai/components/SettingsAiAgentsTable.tsx
msgid "Workflow agents"
@@ -16653,6 +16965,8 @@ msgstr "سير العمل"
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationConfigVariableDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -16717,6 +17031,11 @@ msgstr "معلومات مساحة العمل"
msgid "Workspace Instructions"
msgstr "تعليمات مساحة العمل"
#. js-lingui-id: Ce7yfm
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Workspace lists by upgrade status"
msgstr ""
#. js-lingui-id: Y0Fj4S
#: src/pages/onboarding/CreateWorkspace.tsx
msgid "Workspace logo"
@@ -16737,6 +17056,17 @@ msgstr ""
msgid "Workspace name"
msgstr "اسم مساحة العمل"
#. js-lingui-id: PHF7zj
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Workspace shared"
msgstr ""
#. js-lingui-id: Smg70n
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Workspace upgrade health"
msgstr ""
#. js-lingui-id: QZi0YX
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownVisibilityContent.tsx
msgid "Workspace views require manage views permission"
@@ -16747,6 +17077,13 @@ msgstr "تتطلب عروض مساحة العمل أذونات لإدارة ال
msgid "Workspaces"
msgstr "مساحات العمل"
#. js-lingui-id: 33fb3H
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Workspaces status"
msgstr ""
#. js-lingui-id: QPsQMb
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
msgid "Would you like to remove {recordIndexRecordGroupSort} group sorting?"
@@ -16842,6 +17179,7 @@ msgstr "نعم"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/pages/settings/ai/components/SettingsToolParameterTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
+344 -6
View File
@@ -146,6 +146,12 @@ msgstr "{0, plural, one {{years} any} other {{years} anys}}"
msgid "{0, plural, one {# Object} other {# Objects}}"
msgstr "{0, plural, one {# Objecte} other {# Objectes}}"
#. js-lingui-id: 8ob0vY
#. placeholder {0}: failedCount + behindCount
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{0, plural, one {# workspace failed or behind} other {# workspaces failed or behind}}"
msgstr ""
#. js-lingui-id: WTc9VY
#. placeholder {0}: restriction.fieldNames.length
#: src/modules/page-layout/widgets/components/PageLayoutWidgetForbiddenDisplay.tsx
@@ -204,6 +210,12 @@ msgstr ""
msgid "{0} widgets"
msgstr ""
#. js-lingui-id: xTgz1F
#. placeholder {1}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "{1} OAuth is not yet set up by your server administrator. They need to fill in the OAuth client ID and secret on the application registration before you can add a connection."
msgstr ""
#. js-lingui-id: qdQhzv
#: src/modules/views/advanced-filter-chip/components/AdvancedFilterChip.tsx
msgid "{advancedFilterCount, plural, one {{advancedFilterCount} advanced rule} other {{advancedFilterCount} advanced rules}}"
@@ -229,6 +241,12 @@ msgstr "{aggregateLabel} de {fieldLabel}"
msgid "{appName} wants to access your account"
msgstr "{appName} vol accedir al teu compte"
#. js-lingui-id: y9covz
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{behindCount, plural, one {# workspace behind} other {# workspaces behind}}"
msgstr ""
#. js-lingui-id: SU5Crx
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "{cachedPercent}% cached"
@@ -291,6 +309,12 @@ msgstr "Prova de {duration} dies"
msgid "{eventAction} a related {eventObject}"
msgstr "{eventAction} un {eventObject} relacionat"
#. js-lingui-id: nRKZKb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{failedCount, plural, one {# workspace failed} other {# workspaces failed}}"
msgstr ""
#. js-lingui-id: POhzPf
#: src/modules/ai/hooks/useAiChatFileUpload.ts
msgid "{failedCount} file(s) failed to upload"
@@ -443,6 +467,11 @@ msgstr "{roleLabel} no pot {humanReadableAction} registres de {objectLabel}"
msgid "{roleTargetName} will be assigned to the \"{newRoleName}\" role."
msgstr "{roleTargetName} s'assignarà al rol \"{newRoleName}\"."
#. js-lingui-id: UsskHt
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "{scopeCount} scopes"
msgstr ""
#. js-lingui-id: kvVMdH
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
msgid "{selectedCount, plural, one {Delete {selectedCount} Job} other {Delete {selectedCount} Jobs}}"
@@ -548,6 +577,11 @@ msgstr "0 */1 * * *"
msgid "1 day"
msgstr "1 dia"
#. js-lingui-id: Mkh9C8
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 scope"
msgstr ""
#. js-lingui-id: W/OU4i
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 tab"
@@ -992,6 +1026,11 @@ msgstr "Afegeix Bloc"
msgid "Add CC"
msgstr "Afegeix CC"
#. js-lingui-id: Rop0cs
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Add connection"
msgstr ""
#. js-lingui-id: RVp8im
#: src/modules/settings/admin-panel/ai/components/SettingsAdminAI.tsx
msgid "Add custom endpoints, private gateways, or additional regions."
@@ -1334,7 +1373,10 @@ msgid "Admin Panel - General"
msgstr ""
#. js-lingui-id: v/zjIb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
msgid "Admin Panel - Health"
msgstr ""
@@ -1938,6 +1980,11 @@ msgstr ""
msgid "Any field"
msgstr "Qualsevol camp"
#. js-lingui-id: SI4CMD
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Anyone in this workspace can use this credential."
msgstr ""
#. js-lingui-id: xJR+Wq
#: src/pages/settings/domains/SettingsDomains.tsx
msgid "Anyone with an email address at these domains is allowed to sign up for this workspace."
@@ -2128,6 +2175,7 @@ msgstr "Aplicació actualitzada correctament."
#: src/pages/settings/applications/SettingsApplications.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Applications"
@@ -2531,6 +2579,7 @@ msgid "Automation, AI, and access this app provides"
msgstr ""
#. js-lingui-id: lXkUEV
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Availability"
msgstr "Disponibilitat"
@@ -2631,6 +2680,12 @@ msgstr "Com que aquest flux de treball no utilitza un activador manual, el formu
msgid "Before"
msgstr "Abans"
#. js-lingui-id: +MqoSu
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Behind"
msgstr ""
#. js-lingui-id: KYr9vA
#: src/pages/settings/ai/components/SettingsAiModelsTab.tsx
msgid "Best"
@@ -2926,6 +2981,7 @@ msgid "Can't scan? Copy the"
msgstr "No pots escanejar? Copia la"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDangerZone.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
@@ -3473,6 +3529,18 @@ msgstr "Menú de comandes"
msgid "command menu item"
msgstr "element del menú de comandaments"
#. js-lingui-id: h5/VA5
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Command menu item"
msgstr ""
#. js-lingui-id: yVBJNs
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Command menu items"
msgstr ""
#. js-lingui-id: 9HKBNN
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "commands"
@@ -3515,7 +3583,9 @@ msgid "completed"
msgstr "completat"
#. js-lingui-id: qqWcBV
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Completed"
msgstr "Completat"
@@ -3530,6 +3600,16 @@ msgstr "Feines completades guardades per {completedDuration}, feines fallades gu
msgid "Component name"
msgstr ""
#. js-lingui-id: BglnOD
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Computed at"
msgstr ""
#. js-lingui-id: PLbVix
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Conditional availability"
msgstr ""
#. js-lingui-id: 0CuAor
#: src/modules/workflow/workflow-steps/workflow-actions/if-else-action/components/WorkflowEditActionIfElseBody.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/filter-action/components/WorkflowEditActionFilterBody.tsx
@@ -3561,6 +3641,11 @@ msgstr "Variables de Configuració"
msgid "Configuration"
msgstr "Configuració"
#. js-lingui-id: ais8E1
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Configuration of this command menu item"
msgstr ""
#. js-lingui-id: iAL9tI
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Configure"
@@ -3688,6 +3773,11 @@ msgstr "Confirmeu l'actualització del rol"
msgid "Confirm upgrade"
msgstr "Confirmar la millora"
#. js-lingui-id: mFiwDA
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Connect {providerDisplayName}"
msgstr ""
#. js-lingui-id: D8ATlr
#: src/modules/settings/accounts/components/SettingsNewAccountSection.tsx
msgid "Connect a new account to your workspace"
@@ -3713,6 +3803,16 @@ msgstr "Connecta amb Microsoft"
msgid "Connected accounts"
msgstr "Comptes connectats"
#. js-lingui-id: 54WNJ6
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
msgid "connection provider"
msgstr ""
#. js-lingui-id: sbBqyy
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Connection providers"
msgstr ""
#. js-lingui-id: W4Kgwq
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
msgid "Connection settings"
@@ -3794,6 +3894,7 @@ msgid "Context window"
msgstr "Finestra de context"
#. js-lingui-id: xGVfLh
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
@@ -4196,6 +4297,7 @@ msgstr "Crea, edita i elimina vistes d'espai de treball"
#. js-lingui-id: d+F6q9
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
@@ -4894,6 +4996,7 @@ msgstr "elimina"
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -5201,14 +5304,25 @@ msgstr "Destruir registres de tots els objectes"
msgid "Detach"
msgstr "Desvincula"
#. js-lingui-id: crxufE
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Detail per workspace"
msgstr ""
#. js-lingui-id: URmyfc
#: src/pages/settings/security/event-logs/utils/getColumnsForEventLogTable.ts
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/ai/components/RoutingDebugDisplay.tsx
msgid "Details"
msgstr "Detalls"
#. js-lingui-id: /RlqQE
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Detected application version running on this instance"
msgstr ""
#. js-lingui-id: 7aDnUb
#: src/pages/settings/applications/SettingsApplications.tsx
msgid "Developer"
@@ -6650,6 +6764,16 @@ msgstr "Exporta ({percentageValue}%)"
msgid "Export CSV"
msgstr "Exporta CSV"
#. js-lingui-id: leUV74
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
msgid "Exposes the function as a step in the workflow builder"
msgstr ""
#. js-lingui-id: Kh6fBo
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Exposes the function as a tool that AI agents can call"
msgstr ""
#. js-lingui-id: 1JBTZV
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerCronForm.tsx
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionCronTriggerSection.tsx
@@ -6663,7 +6787,11 @@ msgstr "Crèdits extres utilitzats"
#. js-lingui-id: 7Bj3x9
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Failed"
msgstr "Error"
@@ -6773,6 +6901,13 @@ msgstr "No s'ha pogut fusionar els registres. Torna-ho a provar."
msgid "Failed to parse context: {contextValue}"
msgstr "No s'ha pogut analitzar el context: {contextValue}"
#. js-lingui-id: 3m7+J/
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Failed to refresh upgrade status"
msgstr ""
#. js-lingui-id: 3YA1cX
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Failed to remove model"
@@ -7344,6 +7479,7 @@ msgstr "component frontal"
#. js-lingui-id: 7skoga
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Front component"
msgstr ""
@@ -7652,6 +7788,11 @@ msgstr ""
msgid "Health"
msgstr "Salut"
#. js-lingui-id: HyaXse
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
msgid "Health of the latest instance command"
msgstr ""
#. js-lingui-id: I1IOmb
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Health Status"
@@ -7875,6 +8016,7 @@ msgstr ""
#. js-lingui-id: wwu18a
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Icon"
msgstr "Icona"
@@ -8107,6 +8249,15 @@ msgstr "Índex"
msgid "Indexes"
msgstr "Índexs"
#. js-lingui-id: hG711D
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Inferred version"
msgstr ""
#. js-lingui-id: CE+M2e
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -8202,6 +8353,13 @@ msgstr ""
msgid "Installing..."
msgstr "Instal·lant..."
#. js-lingui-id: x8uKc7
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Instance status"
msgstr ""
#. js-lingui-id: AwUsnG
#: src/pages/settings/data-model/constants/SettingsObjectTableMetadata.ts
msgid "Instances"
@@ -8575,6 +8733,17 @@ msgstr "Uneix-te a l'equip de {workspaceName}"
msgid "JSON"
msgstr ""
#. js-lingui-id: UpNpMK
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Just for me"
msgstr ""
#. js-lingui-id: JJOCq/
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Just me"
msgstr ""
#. js-lingui-id: OGXtL8
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
@@ -8603,6 +8772,7 @@ msgid "Korean"
msgstr "Coreà"
#. js-lingui-id: 87a/t/
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsText.tsx
@@ -8711,6 +8881,24 @@ msgstr "Últims 90 dies"
msgid "Last activity"
msgstr ""
#. js-lingui-id: IpCCj8
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command"
msgstr ""
#. js-lingui-id: cdB4EG
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command result"
msgstr ""
#. js-lingui-id: wW6NCp
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last error"
msgstr ""
#. js-lingui-id: c5zxSg
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "Last message"
@@ -8749,6 +8937,12 @@ msgstr "L'últim pagament va fallar. Si us plau, contacta amb el teu administrad
msgid "Last payment failed. Please update your billing details."
msgstr "L'últim pagament va fallar. Si us plau, actualitza les teves dades de facturació."
#. js-lingui-id: C3yOz3
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last updated"
msgstr ""
#. js-lingui-id: wL3cK8
#: src/modules/settings/applications/components/SettingsApplicationAboutSidebar.tsx
#: src/modules/object-record/record-board/record-board-column/utils/getAggregateOperationShortLabel.ts
@@ -9192,6 +9386,12 @@ msgstr "Gestionar facturació i subscripcions"
msgid "Manage billing information"
msgstr "Gestiona la informació de facturació"
#. js-lingui-id: GDz4fg
#. placeholder {0}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Manage connections used by this app to call {0}."
msgstr ""
#. js-lingui-id: U8dG4j
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
@@ -9720,6 +9920,15 @@ msgstr "Les meves vistes no llistades"
msgid "mySkill"
msgstr "mySkill"
#. js-lingui-id: fj5byd
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "N/A"
msgstr ""
#. js-lingui-id: 6YtxFj
#: src/testing/mock-data/tableData.ts
#: src/pages/settings/SettingsWorkspace.tsx
@@ -10027,6 +10236,7 @@ msgstr "Novè"
#. js-lingui-id: 1UzENP
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelUpdateFieldsValueForObject.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelSeeFieldsValueForObject.tsx
@@ -10597,7 +10807,6 @@ msgid "No variables found"
msgstr "No s'han trobat variables"
#. js-lingui-id: OCektF
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
msgid "No variables to set for this application"
msgstr ""
@@ -10612,6 +10821,16 @@ msgstr "Encara no hi ha execucions de workflows"
msgid "No workflow versions yet"
msgstr "Encara no hi ha versions de workflows"
#. js-lingui-id: Q4dFjT
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace behind"
msgstr ""
#. js-lingui-id: apOMfI
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace failed"
msgstr ""
#. js-lingui-id: rPAZRd
#: src/modules/settings/lab/hooks/useLabPublicFeatureFlags.ts
msgid "No workspace selected"
@@ -10629,12 +10848,14 @@ msgstr "Node"
#. js-lingui-id: EdQY6l
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/BodyInput.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionEmailBase.tsx
#: src/modules/side-panel/pages/page-layout/utils/getDateGranularityLabel.ts
#: src/modules/side-panel/pages/page-layout/utils/getChartAxisNameDisplayOptions.ts
#: src/modules/side-panel/pages/page-layout/components/dropdown-content/ChartGroupByFieldSelectionDropdownContentBase.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectIdentifiersForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/accounts/components/SettingsAccountsMessageAutoCreationCard.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterMenuContent.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterAggregateOperationMenuItems.tsx
@@ -10680,6 +10901,11 @@ msgstr "No Trobat"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationConfigTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Not set"
msgstr "No establert"
@@ -10700,6 +10926,11 @@ msgstr "No compartit per {notSharedByFullName}"
msgid "Not synced"
msgstr "No sincronitzat"
#. js-lingui-id: VngD1z
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
msgid "Nothing to configure for this application"
msgstr ""
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
@@ -10777,6 +11008,11 @@ msgstr ""
msgid "OAuth"
msgstr "OAuth"
#. js-lingui-id: IxKj9Y
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "OAuth 2.0"
msgstr ""
#. js-lingui-id: pNEViR
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
@@ -11020,6 +11256,11 @@ msgstr "Només es comparteix l'assumpte"
msgid "Only the timestamp & participants will be shared with your team."
msgstr "Només la marca de temps i els participants seran compartits amb el teu equip."
#. js-lingui-id: Lp+2YF
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Only you can use this credential."
msgstr ""
#. js-lingui-id: 1TNIig
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
@@ -11159,10 +11400,13 @@ msgstr "Organitza"
#. js-lingui-id: /IX/7x
#: src/pages/settings/updates/SettingsUpdates.tsx
#: src/pages/settings/security/SettingsSecurity.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceChatThread.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
@@ -11534,6 +11778,7 @@ msgid "Pink"
msgstr "Rosa"
#. js-lingui-id: kNiQp6
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
#: src/modules/command-menu-item/display/components/SidePanelCommandMenuItemDisplayPage.tsx
msgid "Pinned"
@@ -11838,6 +12083,7 @@ msgstr "Propietats"
#. js-lingui-id: 8B+pY5
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Property"
msgstr ""
@@ -12077,12 +12323,18 @@ msgid "Recommended Models"
msgstr "Models recomanats"
#. js-lingui-id: gcoiFh
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountInsufficientPermissions.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountEmailAliases.tsx
msgid "Reconnect"
msgstr "Reconnecta"
#. js-lingui-id: XsIxsL
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Reconnect needed"
msgstr ""
#. js-lingui-id: hVS0gK
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsRecordPicker.tsx
msgid "record"
@@ -12195,6 +12447,13 @@ msgstr "URI de redirecció"
msgid "Refresh"
msgstr "Actualitza"
#. js-lingui-id: pTGa/J
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Refresh status"
msgstr ""
#. js-lingui-id: vpZcGd
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
@@ -13648,6 +13907,11 @@ msgstr ""
msgid "Short"
msgstr "Curt"
#. js-lingui-id: 2rtIq8
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Short label"
msgstr ""
#. js-lingui-id: gWk8gY
#: src/modules/settings/data-model/fields/forms/components/SettingsDataModelFieldIconLabelForm.tsx
msgid "Should changing a field's label also change the API name?"
@@ -14068,9 +14332,11 @@ msgstr "Estat"
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
#: src/modules/settings/accounts/components/SettingsConnectedAccountsTableHeader.tsx
#: src/modules/ai/components/AiChatThreadFilterDropdownStatusMenu.tsx
@@ -15289,11 +15555,6 @@ msgstr "Desencadena la funció a intervals regulars"
msgid "Triggers the function when a record changes"
msgstr ""
#. js-lingui-id: OIRkpM
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Triggers the function when called by an AI agent or workflow"
msgstr ""
#. js-lingui-id: YdQqyX
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionHttpTriggerSection.tsx
msgid "Triggers the function with an HTTP request"
@@ -15546,12 +15807,17 @@ msgstr "ID universal"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/layout/SettingsLayoutPageLayoutDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Universal identifier"
msgstr ""
#. js-lingui-id: Ef7StM
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusRightContainer.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminVersionContainer.tsx
msgid "Unknown"
msgstr "Desconegut"
@@ -15584,6 +15850,11 @@ msgstr "Fitxer desconegut"
msgid "Unknown object"
msgstr "Objecte desconegut"
#. js-lingui-id: m/o1+r
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesByHealthAccordion.tsx
msgid "Unknown workspace"
msgstr ""
#. js-lingui-id: GQCXQS
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
@@ -15675,6 +15946,11 @@ msgstr "Flux de treball sense títol"
msgid "Unused credits from the previous period. Expired at the end of the period."
msgstr ""
#. js-lingui-id: j5CWO4
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
msgid "Up to date"
msgstr ""
#. js-lingui-id: hmc//6
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Upcoming execution time ({timeZone})"
@@ -15737,6 +16013,7 @@ msgstr "actualitzat"
#. js-lingui-id: +b7T3G
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
msgid "Updated"
@@ -15763,11 +16040,39 @@ msgstr "Actualitzacions"
msgid "Upgrade"
msgstr "Actualitzar"
#. js-lingui-id: IEtN5Y
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Upgrade health"
msgstr ""
#. js-lingui-id: 88ZkNH
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Upgrade health across all workspaces"
msgstr ""
#. js-lingui-id: +awaFr
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Upgrade health across instance and workspaces"
msgstr ""
#. js-lingui-id: 7aHRdp
#: src/modules/ai/components/AiChatCreditsExhaustedMessage.tsx
msgid "Upgrade Plan"
msgstr "Actualitza el pla"
#. js-lingui-id: 5UfQvA
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Upgrade Status"
msgstr ""
#. js-lingui-id: /l59TO
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Upgrade status refreshed"
msgstr ""
#. js-lingui-id: pKCx2F
#: src/pages/settings/applications/tabs/SettingsApplicationDetailAboutTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
@@ -16055,6 +16360,7 @@ msgstr "El testimoni de validesa s'ha actualitzat correctament"
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/KeyValuePairInput.tsx
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/settings/logic-functions/components/tabs/SettingsLogicFunctionTabEnvironmentVariableTableRow.tsx
@@ -16597,6 +16903,12 @@ msgstr "Sense targeta de crèdit"
msgid "Worker"
msgstr "Treballador"
#. js-lingui-id: eQ/LA/
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
#: src/modules/logic-functions/utils/getLogicFunctionTriggerLabel.ts
msgid "Workflow action"
msgstr ""
#. js-lingui-id: Kqs5vQ
#: src/pages/settings/ai/components/SettingsAiAgentsTable.tsx
msgid "Workflow agents"
@@ -16655,6 +16967,8 @@ msgstr "Fluxos de treball"
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationConfigVariableDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -16719,6 +17033,11 @@ msgstr "Informació de l'espai de treball"
msgid "Workspace Instructions"
msgstr "Instruccions de l'espai de treball"
#. js-lingui-id: Ce7yfm
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Workspace lists by upgrade status"
msgstr ""
#. js-lingui-id: Y0Fj4S
#: src/pages/onboarding/CreateWorkspace.tsx
msgid "Workspace logo"
@@ -16739,6 +17058,17 @@ msgstr ""
msgid "Workspace name"
msgstr "Nom de l'espai de treball"
#. js-lingui-id: PHF7zj
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Workspace shared"
msgstr ""
#. js-lingui-id: Smg70n
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Workspace upgrade health"
msgstr ""
#. js-lingui-id: QZi0YX
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownVisibilityContent.tsx
msgid "Workspace views require manage views permission"
@@ -16749,6 +17079,13 @@ msgstr "Les vistes d'espai de treball requereixen permís per gestionar vistes"
msgid "Workspaces"
msgstr "Espais de treball"
#. js-lingui-id: 33fb3H
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Workspaces status"
msgstr ""
#. js-lingui-id: QPsQMb
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
msgid "Would you like to remove {recordIndexRecordGroupSort} group sorting?"
@@ -16844,6 +17181,7 @@ msgstr "sí"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/pages/settings/ai/components/SettingsToolParameterTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
+344 -6
View File
@@ -146,6 +146,12 @@ msgstr "{0, plural, one {{years} rok} few {{years} roky} many {{years} let} othe
msgid "{0, plural, one {# Object} other {# Objects}}"
msgstr "{0, plural, one {# Objekt} few {# Objekty} many {# Objektů} other {# Objektů}}"
#. js-lingui-id: 8ob0vY
#. placeholder {0}: failedCount + behindCount
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{0, plural, one {# workspace failed or behind} other {# workspaces failed or behind}}"
msgstr ""
#. js-lingui-id: WTc9VY
#. placeholder {0}: restriction.fieldNames.length
#: src/modules/page-layout/widgets/components/PageLayoutWidgetForbiddenDisplay.tsx
@@ -204,6 +210,12 @@ msgstr ""
msgid "{0} widgets"
msgstr ""
#. js-lingui-id: xTgz1F
#. placeholder {1}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "{1} OAuth is not yet set up by your server administrator. They need to fill in the OAuth client ID and secret on the application registration before you can add a connection."
msgstr ""
#. js-lingui-id: qdQhzv
#: src/modules/views/advanced-filter-chip/components/AdvancedFilterChip.tsx
msgid "{advancedFilterCount, plural, one {{advancedFilterCount} advanced rule} other {{advancedFilterCount} advanced rules}}"
@@ -229,6 +241,12 @@ msgstr "{aggregateLabel} z {fieldLabel}"
msgid "{appName} wants to access your account"
msgstr "{appName} chce získat přístup k vašemu účtu"
#. js-lingui-id: y9covz
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{behindCount, plural, one {# workspace behind} other {# workspaces behind}}"
msgstr ""
#. js-lingui-id: SU5Crx
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "{cachedPercent}% cached"
@@ -291,6 +309,12 @@ msgstr "Zkušební verze na {duration} dní"
msgid "{eventAction} a related {eventObject}"
msgstr "{eventAction} související {eventObject}"
#. js-lingui-id: nRKZKb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{failedCount, plural, one {# workspace failed} other {# workspaces failed}}"
msgstr ""
#. js-lingui-id: POhzPf
#: src/modules/ai/hooks/useAiChatFileUpload.ts
msgid "{failedCount} file(s) failed to upload"
@@ -443,6 +467,11 @@ msgstr "{roleLabel} nemůže {humanReadableAction} záznamy {objectLabel}"
msgid "{roleTargetName} will be assigned to the \"{newRoleName}\" role."
msgstr "{roleTargetName} bude přiřazen k roli \"{newRoleName}\"."
#. js-lingui-id: UsskHt
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "{scopeCount} scopes"
msgstr ""
#. js-lingui-id: kvVMdH
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
msgid "{selectedCount, plural, one {Delete {selectedCount} Job} other {Delete {selectedCount} Jobs}}"
@@ -548,6 +577,11 @@ msgstr "0 */1 * * *"
msgid "1 day"
msgstr "1 den"
#. js-lingui-id: Mkh9C8
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 scope"
msgstr ""
#. js-lingui-id: W/OU4i
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 tab"
@@ -992,6 +1026,11 @@ msgstr "Přidat blok"
msgid "Add CC"
msgstr "Přidat CC"
#. js-lingui-id: Rop0cs
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Add connection"
msgstr ""
#. js-lingui-id: RVp8im
#: src/modules/settings/admin-panel/ai/components/SettingsAdminAI.tsx
msgid "Add custom endpoints, private gateways, or additional regions."
@@ -1334,7 +1373,10 @@ msgid "Admin Panel - General"
msgstr ""
#. js-lingui-id: v/zjIb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
msgid "Admin Panel - Health"
msgstr ""
@@ -1938,6 +1980,11 @@ msgstr ""
msgid "Any field"
msgstr "Jakékoliv pole"
#. js-lingui-id: SI4CMD
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Anyone in this workspace can use this credential."
msgstr ""
#. js-lingui-id: xJR+Wq
#: src/pages/settings/domains/SettingsDomains.tsx
msgid "Anyone with an email address at these domains is allowed to sign up for this workspace."
@@ -2128,6 +2175,7 @@ msgstr "Aplikace byla úspěšně aktualizována."
#: src/pages/settings/applications/SettingsApplications.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Applications"
@@ -2531,6 +2579,7 @@ msgid "Automation, AI, and access this app provides"
msgstr ""
#. js-lingui-id: lXkUEV
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Availability"
msgstr "Dostupnost"
@@ -2631,6 +2680,12 @@ msgstr "Protože tento pracovní postup není spouštěn ručně, formulář se
msgid "Before"
msgstr "Před"
#. js-lingui-id: +MqoSu
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Behind"
msgstr ""
#. js-lingui-id: KYr9vA
#: src/pages/settings/ai/components/SettingsAiModelsTab.tsx
msgid "Best"
@@ -2926,6 +2981,7 @@ msgid "Can't scan? Copy the"
msgstr "Nemůžete skenovat? Zkopírujte"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDangerZone.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
@@ -3473,6 +3529,18 @@ msgstr "Nabídka příkazů"
msgid "command menu item"
msgstr "položka menu příkazů"
#. js-lingui-id: h5/VA5
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Command menu item"
msgstr ""
#. js-lingui-id: yVBJNs
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Command menu items"
msgstr ""
#. js-lingui-id: 9HKBNN
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "commands"
@@ -3515,7 +3583,9 @@ msgid "completed"
msgstr "dokončeno"
#. js-lingui-id: qqWcBV
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Completed"
msgstr "Dokončeno"
@@ -3530,6 +3600,16 @@ msgstr "Dokončené úlohy uchovány po dobu {completedDuration}, neúspěšné
msgid "Component name"
msgstr ""
#. js-lingui-id: BglnOD
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Computed at"
msgstr ""
#. js-lingui-id: PLbVix
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Conditional availability"
msgstr ""
#. js-lingui-id: 0CuAor
#: src/modules/workflow/workflow-steps/workflow-actions/if-else-action/components/WorkflowEditActionIfElseBody.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/filter-action/components/WorkflowEditActionFilterBody.tsx
@@ -3561,6 +3641,11 @@ msgstr "Konfigurační proměnné"
msgid "Configuration"
msgstr "Konfigurace"
#. js-lingui-id: ais8E1
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Configuration of this command menu item"
msgstr ""
#. js-lingui-id: iAL9tI
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Configure"
@@ -3688,6 +3773,11 @@ msgstr "Potvrdit aktualizaci role"
msgid "Confirm upgrade"
msgstr "Potvrďte upgrade"
#. js-lingui-id: mFiwDA
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Connect {providerDisplayName}"
msgstr ""
#. js-lingui-id: D8ATlr
#: src/modules/settings/accounts/components/SettingsNewAccountSection.tsx
msgid "Connect a new account to your workspace"
@@ -3713,6 +3803,16 @@ msgstr "Připojit s Microsoft"
msgid "Connected accounts"
msgstr "Připojené účty"
#. js-lingui-id: 54WNJ6
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
msgid "connection provider"
msgstr ""
#. js-lingui-id: sbBqyy
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Connection providers"
msgstr ""
#. js-lingui-id: W4Kgwq
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
msgid "Connection settings"
@@ -3794,6 +3894,7 @@ msgid "Context window"
msgstr "Kontextové okno"
#. js-lingui-id: xGVfLh
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
@@ -4196,6 +4297,7 @@ msgstr "Vytvářet, upravovat a mazat zobrazení pracoviště"
#. js-lingui-id: d+F6q9
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
@@ -4894,6 +4996,7 @@ msgstr "smazat"
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -5201,14 +5304,25 @@ msgstr "Zničit záznamy na všech objektech"
msgid "Detach"
msgstr "Odpojit"
#. js-lingui-id: crxufE
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Detail per workspace"
msgstr ""
#. js-lingui-id: URmyfc
#: src/pages/settings/security/event-logs/utils/getColumnsForEventLogTable.ts
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/ai/components/RoutingDebugDisplay.tsx
msgid "Details"
msgstr "Podrobnosti"
#. js-lingui-id: /RlqQE
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Detected application version running on this instance"
msgstr ""
#. js-lingui-id: 7aDnUb
#: src/pages/settings/applications/SettingsApplications.tsx
msgid "Developer"
@@ -6650,6 +6764,16 @@ msgstr "Export ({percentageValue}%)"
msgid "Export CSV"
msgstr "Exportovat CSV"
#. js-lingui-id: leUV74
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
msgid "Exposes the function as a step in the workflow builder"
msgstr ""
#. js-lingui-id: Kh6fBo
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Exposes the function as a tool that AI agents can call"
msgstr ""
#. js-lingui-id: 1JBTZV
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerCronForm.tsx
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionCronTriggerSection.tsx
@@ -6663,7 +6787,11 @@ msgstr "Použité extra kredity"
#. js-lingui-id: 7Bj3x9
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Failed"
msgstr "Selhalo"
@@ -6773,6 +6901,13 @@ msgstr "Nepodařilo se sloučit záznamy. Zkuste to prosím znovu."
msgid "Failed to parse context: {contextValue}"
msgstr "Nepodařilo se zpracovat kontext: {contextValue}"
#. js-lingui-id: 3m7+J/
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Failed to refresh upgrade status"
msgstr ""
#. js-lingui-id: 3YA1cX
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Failed to remove model"
@@ -7344,6 +7479,7 @@ msgstr "frontendová komponenta"
#. js-lingui-id: 7skoga
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Front component"
msgstr ""
@@ -7652,6 +7788,11 @@ msgstr ""
msgid "Health"
msgstr "Zdraví"
#. js-lingui-id: HyaXse
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
msgid "Health of the latest instance command"
msgstr ""
#. js-lingui-id: I1IOmb
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Health Status"
@@ -7875,6 +8016,7 @@ msgstr ""
#. js-lingui-id: wwu18a
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Icon"
msgstr "Ikona"
@@ -8107,6 +8249,15 @@ msgstr "Index"
msgid "Indexes"
msgstr "Indexy"
#. js-lingui-id: hG711D
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Inferred version"
msgstr ""
#. js-lingui-id: CE+M2e
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -8202,6 +8353,13 @@ msgstr ""
msgid "Installing..."
msgstr "Instaluje se..."
#. js-lingui-id: x8uKc7
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Instance status"
msgstr ""
#. js-lingui-id: AwUsnG
#: src/pages/settings/data-model/constants/SettingsObjectTableMetadata.ts
msgid "Instances"
@@ -8575,6 +8733,17 @@ msgstr "Připojit se k týmu {workspaceName}"
msgid "JSON"
msgstr ""
#. js-lingui-id: UpNpMK
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Just for me"
msgstr ""
#. js-lingui-id: JJOCq/
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Just me"
msgstr ""
#. js-lingui-id: OGXtL8
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
@@ -8603,6 +8772,7 @@ msgid "Korean"
msgstr "Korejština"
#. js-lingui-id: 87a/t/
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsText.tsx
@@ -8711,6 +8881,24 @@ msgstr "Posledních 90 dní"
msgid "Last activity"
msgstr ""
#. js-lingui-id: IpCCj8
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command"
msgstr ""
#. js-lingui-id: cdB4EG
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command result"
msgstr ""
#. js-lingui-id: wW6NCp
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last error"
msgstr ""
#. js-lingui-id: c5zxSg
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "Last message"
@@ -8749,6 +8937,12 @@ msgstr "Poslední platba selhala. Prosím, kontaktujte svého správce."
msgid "Last payment failed. Please update your billing details."
msgstr "Poslední platba selhala. Prosím, aktualizujte své fakturační údaje."
#. js-lingui-id: C3yOz3
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last updated"
msgstr ""
#. js-lingui-id: wL3cK8
#: src/modules/settings/applications/components/SettingsApplicationAboutSidebar.tsx
#: src/modules/object-record/record-board/record-board-column/utils/getAggregateOperationShortLabel.ts
@@ -9192,6 +9386,12 @@ msgstr "Správa fakturace a předplatného"
msgid "Manage billing information"
msgstr "Správa fakturačních údajů"
#. js-lingui-id: GDz4fg
#. placeholder {0}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Manage connections used by this app to call {0}."
msgstr ""
#. js-lingui-id: U8dG4j
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
@@ -9720,6 +9920,15 @@ msgstr "Moje neveřejná zobrazení"
msgid "mySkill"
msgstr "mySkill"
#. js-lingui-id: fj5byd
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "N/A"
msgstr ""
#. js-lingui-id: 6YtxFj
#: src/testing/mock-data/tableData.ts
#: src/pages/settings/SettingsWorkspace.tsx
@@ -10027,6 +10236,7 @@ msgstr "Devátý"
#. js-lingui-id: 1UzENP
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelUpdateFieldsValueForObject.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelSeeFieldsValueForObject.tsx
@@ -10597,7 +10807,6 @@ msgid "No variables found"
msgstr "Žádné proměnné nenalezeny"
#. js-lingui-id: OCektF
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
msgid "No variables to set for this application"
msgstr ""
@@ -10612,6 +10821,16 @@ msgstr "Zatím žádné běhy workflow"
msgid "No workflow versions yet"
msgstr "Zatím žádné verze workflow"
#. js-lingui-id: Q4dFjT
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace behind"
msgstr ""
#. js-lingui-id: apOMfI
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace failed"
msgstr ""
#. js-lingui-id: rPAZRd
#: src/modules/settings/lab/hooks/useLabPublicFeatureFlags.ts
msgid "No workspace selected"
@@ -10629,12 +10848,14 @@ msgstr "Uzel"
#. js-lingui-id: EdQY6l
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/BodyInput.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionEmailBase.tsx
#: src/modules/side-panel/pages/page-layout/utils/getDateGranularityLabel.ts
#: src/modules/side-panel/pages/page-layout/utils/getChartAxisNameDisplayOptions.ts
#: src/modules/side-panel/pages/page-layout/components/dropdown-content/ChartGroupByFieldSelectionDropdownContentBase.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectIdentifiersForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/accounts/components/SettingsAccountsMessageAutoCreationCard.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterMenuContent.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterAggregateOperationMenuItems.tsx
@@ -10680,6 +10901,11 @@ msgstr "Nenalezeno"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationConfigTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Not set"
msgstr "Nenastaveno"
@@ -10700,6 +10926,11 @@ msgstr "Nesdíleno uživatelem {notSharedByFullName}"
msgid "Not synced"
msgstr "Nesynchronizováno"
#. js-lingui-id: VngD1z
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
msgid "Nothing to configure for this application"
msgstr ""
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
@@ -10777,6 +11008,11 @@ msgstr ""
msgid "OAuth"
msgstr "OAuth"
#. js-lingui-id: IxKj9Y
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "OAuth 2.0"
msgstr ""
#. js-lingui-id: pNEViR
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
@@ -11020,6 +11256,11 @@ msgstr "Sdílen je pouze předmět"
msgid "Only the timestamp & participants will be shared with your team."
msgstr "Pouze časová značka a účastníci budou sdíleni s vaším týmem."
#. js-lingui-id: Lp+2YF
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Only you can use this credential."
msgstr ""
#. js-lingui-id: 1TNIig
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
@@ -11159,10 +11400,13 @@ msgstr "Uspořádat"
#. js-lingui-id: /IX/7x
#: src/pages/settings/updates/SettingsUpdates.tsx
#: src/pages/settings/security/SettingsSecurity.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceChatThread.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
@@ -11534,6 +11778,7 @@ msgid "Pink"
msgstr "Růžová"
#. js-lingui-id: kNiQp6
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
#: src/modules/command-menu-item/display/components/SidePanelCommandMenuItemDisplayPage.tsx
msgid "Pinned"
@@ -11838,6 +12083,7 @@ msgstr "Vlastnosti"
#. js-lingui-id: 8B+pY5
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Property"
msgstr ""
@@ -12077,12 +12323,18 @@ msgid "Recommended Models"
msgstr "Doporučené modely"
#. js-lingui-id: gcoiFh
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountInsufficientPermissions.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountEmailAliases.tsx
msgid "Reconnect"
msgstr "Znovu připojit"
#. js-lingui-id: XsIxsL
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Reconnect needed"
msgstr ""
#. js-lingui-id: hVS0gK
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsRecordPicker.tsx
msgid "record"
@@ -12195,6 +12447,13 @@ msgstr "URI přesměrování"
msgid "Refresh"
msgstr "Obnovit"
#. js-lingui-id: pTGa/J
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Refresh status"
msgstr ""
#. js-lingui-id: vpZcGd
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
@@ -13648,6 +13907,11 @@ msgstr ""
msgid "Short"
msgstr "Krátký"
#. js-lingui-id: 2rtIq8
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Short label"
msgstr ""
#. js-lingui-id: gWk8gY
#: src/modules/settings/data-model/fields/forms/components/SettingsDataModelFieldIconLabelForm.tsx
msgid "Should changing a field's label also change the API name?"
@@ -14068,9 +14332,11 @@ msgstr "Stav"
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
#: src/modules/settings/accounts/components/SettingsConnectedAccountsTableHeader.tsx
#: src/modules/ai/components/AiChatThreadFilterDropdownStatusMenu.tsx
@@ -15289,11 +15555,6 @@ msgstr "Spouští funkci v pravidelných intervalech"
msgid "Triggers the function when a record changes"
msgstr ""
#. js-lingui-id: OIRkpM
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Triggers the function when called by an AI agent or workflow"
msgstr ""
#. js-lingui-id: YdQqyX
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionHttpTriggerSection.tsx
msgid "Triggers the function with an HTTP request"
@@ -15546,12 +15807,17 @@ msgstr "Univerzální ID"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/layout/SettingsLayoutPageLayoutDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Universal identifier"
msgstr ""
#. js-lingui-id: Ef7StM
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusRightContainer.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminVersionContainer.tsx
msgid "Unknown"
msgstr "Neznámý"
@@ -15584,6 +15850,11 @@ msgstr "Neznámý soubor"
msgid "Unknown object"
msgstr "Neznámý objekt"
#. js-lingui-id: m/o1+r
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesByHealthAccordion.tsx
msgid "Unknown workspace"
msgstr ""
#. js-lingui-id: GQCXQS
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
@@ -15675,6 +15946,11 @@ msgstr "Nepojmenovaný Workflow"
msgid "Unused credits from the previous period. Expired at the end of the period."
msgstr ""
#. js-lingui-id: j5CWO4
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
msgid "Up to date"
msgstr ""
#. js-lingui-id: hmc//6
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Upcoming execution time ({timeZone})"
@@ -15737,6 +16013,7 @@ msgstr "aktualizováno"
#. js-lingui-id: +b7T3G
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
msgid "Updated"
@@ -15763,11 +16040,39 @@ msgstr "Aktualizace"
msgid "Upgrade"
msgstr "Upgrade"
#. js-lingui-id: IEtN5Y
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Upgrade health"
msgstr ""
#. js-lingui-id: 88ZkNH
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Upgrade health across all workspaces"
msgstr ""
#. js-lingui-id: +awaFr
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Upgrade health across instance and workspaces"
msgstr ""
#. js-lingui-id: 7aHRdp
#: src/modules/ai/components/AiChatCreditsExhaustedMessage.tsx
msgid "Upgrade Plan"
msgstr "Upgradovat plán"
#. js-lingui-id: 5UfQvA
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Upgrade Status"
msgstr ""
#. js-lingui-id: /l59TO
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Upgrade status refreshed"
msgstr ""
#. js-lingui-id: pKCx2F
#: src/pages/settings/applications/tabs/SettingsApplicationDetailAboutTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
@@ -16055,6 +16360,7 @@ msgstr "Token platnosti byl úspěšně obnoven"
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/KeyValuePairInput.tsx
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/settings/logic-functions/components/tabs/SettingsLogicFunctionTabEnvironmentVariableTableRow.tsx
@@ -16597,6 +16903,12 @@ msgstr "Bez kreditní karty"
msgid "Worker"
msgstr "Pracovník"
#. js-lingui-id: eQ/LA/
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
#: src/modules/logic-functions/utils/getLogicFunctionTriggerLabel.ts
msgid "Workflow action"
msgstr ""
#. js-lingui-id: Kqs5vQ
#: src/pages/settings/ai/components/SettingsAiAgentsTable.tsx
msgid "Workflow agents"
@@ -16655,6 +16967,8 @@ msgstr "Pracovní postupy"
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationConfigVariableDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -16719,6 +17033,11 @@ msgstr "Informace o pracovním prostoru"
msgid "Workspace Instructions"
msgstr "Pokyny pro pracovní prostor"
#. js-lingui-id: Ce7yfm
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Workspace lists by upgrade status"
msgstr ""
#. js-lingui-id: Y0Fj4S
#: src/pages/onboarding/CreateWorkspace.tsx
msgid "Workspace logo"
@@ -16739,6 +17058,17 @@ msgstr ""
msgid "Workspace name"
msgstr "Název pracovního prostoru"
#. js-lingui-id: PHF7zj
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Workspace shared"
msgstr ""
#. js-lingui-id: Smg70n
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Workspace upgrade health"
msgstr ""
#. js-lingui-id: QZi0YX
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownVisibilityContent.tsx
msgid "Workspace views require manage views permission"
@@ -16749,6 +17079,13 @@ msgstr "Pro zobrazení pracovního prostoru je třeba povolení ke správě zobr
msgid "Workspaces"
msgstr "Pracovní prostory"
#. js-lingui-id: 33fb3H
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Workspaces status"
msgstr ""
#. js-lingui-id: QPsQMb
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
msgid "Would you like to remove {recordIndexRecordGroupSort} group sorting?"
@@ -16844,6 +17181,7 @@ msgstr "ano"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/pages/settings/ai/components/SettingsToolParameterTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
+344 -6
View File
@@ -146,6 +146,12 @@ msgstr "{0, plural, one {{years} år} other {{years} år}}"
msgid "{0, plural, one {# Object} other {# Objects}}"
msgstr "{0, plural, one {# objekt} other {# objekter}}"
#. js-lingui-id: 8ob0vY
#. placeholder {0}: failedCount + behindCount
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{0, plural, one {# workspace failed or behind} other {# workspaces failed or behind}}"
msgstr ""
#. js-lingui-id: WTc9VY
#. placeholder {0}: restriction.fieldNames.length
#: src/modules/page-layout/widgets/components/PageLayoutWidgetForbiddenDisplay.tsx
@@ -204,6 +210,12 @@ msgstr ""
msgid "{0} widgets"
msgstr ""
#. js-lingui-id: xTgz1F
#. placeholder {1}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "{1} OAuth is not yet set up by your server administrator. They need to fill in the OAuth client ID and secret on the application registration before you can add a connection."
msgstr ""
#. js-lingui-id: qdQhzv
#: src/modules/views/advanced-filter-chip/components/AdvancedFilterChip.tsx
msgid "{advancedFilterCount, plural, one {{advancedFilterCount} advanced rule} other {{advancedFilterCount} advanced rules}}"
@@ -229,6 +241,12 @@ msgstr "{aggregateLabel} af {fieldLabel}"
msgid "{appName} wants to access your account"
msgstr "{appName} ønsker at få adgang til din konto"
#. js-lingui-id: y9covz
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{behindCount, plural, one {# workspace behind} other {# workspaces behind}}"
msgstr ""
#. js-lingui-id: SU5Crx
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "{cachedPercent}% cached"
@@ -291,6 +309,12 @@ msgstr "{duration} dages prøveperiode"
msgid "{eventAction} a related {eventObject}"
msgstr "{eventAction} en relateret {eventObject}"
#. js-lingui-id: nRKZKb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{failedCount, plural, one {# workspace failed} other {# workspaces failed}}"
msgstr ""
#. js-lingui-id: POhzPf
#: src/modules/ai/hooks/useAiChatFileUpload.ts
msgid "{failedCount} file(s) failed to upload"
@@ -443,6 +467,11 @@ msgstr "{roleLabel} kan ikke {humanReadableAction} {objectLabel} poster"
msgid "{roleTargetName} will be assigned to the \"{newRoleName}\" role."
msgstr "{roleTargetName} vil blive tildelt \"{newRoleName}\" rollen."
#. js-lingui-id: UsskHt
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "{scopeCount} scopes"
msgstr ""
#. js-lingui-id: kvVMdH
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
msgid "{selectedCount, plural, one {Delete {selectedCount} Job} other {Delete {selectedCount} Jobs}}"
@@ -548,6 +577,11 @@ msgstr "0 */1 * * *"
msgid "1 day"
msgstr "1 dag"
#. js-lingui-id: Mkh9C8
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 scope"
msgstr ""
#. js-lingui-id: W/OU4i
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 tab"
@@ -992,6 +1026,11 @@ msgstr "Tilføj blok"
msgid "Add CC"
msgstr "Tilføj CC"
#. js-lingui-id: Rop0cs
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Add connection"
msgstr ""
#. js-lingui-id: RVp8im
#: src/modules/settings/admin-panel/ai/components/SettingsAdminAI.tsx
msgid "Add custom endpoints, private gateways, or additional regions."
@@ -1334,7 +1373,10 @@ msgid "Admin Panel - General"
msgstr ""
#. js-lingui-id: v/zjIb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
msgid "Admin Panel - Health"
msgstr ""
@@ -1938,6 +1980,11 @@ msgstr ""
msgid "Any field"
msgstr "Ethvert felt"
#. js-lingui-id: SI4CMD
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Anyone in this workspace can use this credential."
msgstr ""
#. js-lingui-id: xJR+Wq
#: src/pages/settings/domains/SettingsDomains.tsx
msgid "Anyone with an email address at these domains is allowed to sign up for this workspace."
@@ -2128,6 +2175,7 @@ msgstr "Applikationen blev opgraderet med succes."
#: src/pages/settings/applications/SettingsApplications.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Applications"
@@ -2531,6 +2579,7 @@ msgid "Automation, AI, and access this app provides"
msgstr ""
#. js-lingui-id: lXkUEV
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Availability"
msgstr "Tilgængelighed"
@@ -2631,6 +2680,12 @@ msgstr "Da dette workflow ikke bruger en manuel udløser, åbnes formularen ikke
msgid "Before"
msgstr "Før"
#. js-lingui-id: +MqoSu
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Behind"
msgstr ""
#. js-lingui-id: KYr9vA
#: src/pages/settings/ai/components/SettingsAiModelsTab.tsx
msgid "Best"
@@ -2926,6 +2981,7 @@ msgid "Can't scan? Copy the"
msgstr "Kan ikke scanne? Kopier"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDangerZone.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
@@ -3473,6 +3529,18 @@ msgstr "Kommandomenu"
msgid "command menu item"
msgstr "kommando-menu menupunkt"
#. js-lingui-id: h5/VA5
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Command menu item"
msgstr ""
#. js-lingui-id: yVBJNs
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Command menu items"
msgstr ""
#. js-lingui-id: 9HKBNN
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "commands"
@@ -3515,7 +3583,9 @@ msgid "completed"
msgstr "fuldført"
#. js-lingui-id: qqWcBV
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Completed"
msgstr "Fuldført"
@@ -3530,6 +3600,16 @@ msgstr "Fuldførte jobs opbevares i {completedDuration}, mislykkede jobs opbevar
msgid "Component name"
msgstr ""
#. js-lingui-id: BglnOD
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Computed at"
msgstr ""
#. js-lingui-id: PLbVix
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Conditional availability"
msgstr ""
#. js-lingui-id: 0CuAor
#: src/modules/workflow/workflow-steps/workflow-actions/if-else-action/components/WorkflowEditActionIfElseBody.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/filter-action/components/WorkflowEditActionFilterBody.tsx
@@ -3561,6 +3641,11 @@ msgstr "Konfigurationsvariabler"
msgid "Configuration"
msgstr "Konfiguration"
#. js-lingui-id: ais8E1
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Configuration of this command menu item"
msgstr ""
#. js-lingui-id: iAL9tI
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Configure"
@@ -3688,6 +3773,11 @@ msgstr "Bekræft rolleændring"
msgid "Confirm upgrade"
msgstr "Bekræft opgradering"
#. js-lingui-id: mFiwDA
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Connect {providerDisplayName}"
msgstr ""
#. js-lingui-id: D8ATlr
#: src/modules/settings/accounts/components/SettingsNewAccountSection.tsx
msgid "Connect a new account to your workspace"
@@ -3713,6 +3803,16 @@ msgstr "Forbind med Microsoft"
msgid "Connected accounts"
msgstr "Forbundne konti"
#. js-lingui-id: 54WNJ6
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
msgid "connection provider"
msgstr ""
#. js-lingui-id: sbBqyy
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Connection providers"
msgstr ""
#. js-lingui-id: W4Kgwq
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
msgid "Connection settings"
@@ -3794,6 +3894,7 @@ msgid "Context window"
msgstr "Kontekstvindue"
#. js-lingui-id: xGVfLh
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
@@ -4196,6 +4297,7 @@ msgstr "Opret, rediger og slet arbejdsområdevisninger"
#. js-lingui-id: d+F6q9
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
@@ -4894,6 +4996,7 @@ msgstr "slet"
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -5201,14 +5304,25 @@ msgstr "Ødelæg poster på alle objekter"
msgid "Detach"
msgstr "Fjern tilknytning"
#. js-lingui-id: crxufE
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Detail per workspace"
msgstr ""
#. js-lingui-id: URmyfc
#: src/pages/settings/security/event-logs/utils/getColumnsForEventLogTable.ts
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/ai/components/RoutingDebugDisplay.tsx
msgid "Details"
msgstr "Detaljer"
#. js-lingui-id: /RlqQE
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Detected application version running on this instance"
msgstr ""
#. js-lingui-id: 7aDnUb
#: src/pages/settings/applications/SettingsApplications.tsx
msgid "Developer"
@@ -6650,6 +6764,16 @@ msgstr "Eksportér ({percentageValue}%)"
msgid "Export CSV"
msgstr "Eksportér CSV"
#. js-lingui-id: leUV74
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
msgid "Exposes the function as a step in the workflow builder"
msgstr ""
#. js-lingui-id: Kh6fBo
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Exposes the function as a tool that AI agents can call"
msgstr ""
#. js-lingui-id: 1JBTZV
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerCronForm.tsx
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionCronTriggerSection.tsx
@@ -6663,7 +6787,11 @@ msgstr "Ekstra kreditter forbrugt"
#. js-lingui-id: 7Bj3x9
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Failed"
msgstr "Mislykkedes"
@@ -6773,6 +6901,13 @@ msgstr "Kunne ikke flette poster. Prøv venligst igen."
msgid "Failed to parse context: {contextValue}"
msgstr "Kunne ikke fortolke kontekst: {contextValue}"
#. js-lingui-id: 3m7+J/
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Failed to refresh upgrade status"
msgstr ""
#. js-lingui-id: 3YA1cX
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Failed to remove model"
@@ -7344,6 +7479,7 @@ msgstr "frontkomponent"
#. js-lingui-id: 7skoga
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Front component"
msgstr ""
@@ -7652,6 +7788,11 @@ msgstr ""
msgid "Health"
msgstr "Sundhed"
#. js-lingui-id: HyaXse
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
msgid "Health of the latest instance command"
msgstr ""
#. js-lingui-id: I1IOmb
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Health Status"
@@ -7875,6 +8016,7 @@ msgstr ""
#. js-lingui-id: wwu18a
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Icon"
msgstr "Ikon"
@@ -8107,6 +8249,15 @@ msgstr "Indeks"
msgid "Indexes"
msgstr "Indekser"
#. js-lingui-id: hG711D
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Inferred version"
msgstr ""
#. js-lingui-id: CE+M2e
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -8202,6 +8353,13 @@ msgstr ""
msgid "Installing..."
msgstr "Installerer..."
#. js-lingui-id: x8uKc7
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Instance status"
msgstr ""
#. js-lingui-id: AwUsnG
#: src/pages/settings/data-model/constants/SettingsObjectTableMetadata.ts
msgid "Instances"
@@ -8575,6 +8733,17 @@ msgstr "Deltag i {workspaceName}-team"
msgid "JSON"
msgstr ""
#. js-lingui-id: UpNpMK
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Just for me"
msgstr ""
#. js-lingui-id: JJOCq/
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Just me"
msgstr ""
#. js-lingui-id: OGXtL8
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
@@ -8603,6 +8772,7 @@ msgid "Korean"
msgstr "Koreansk"
#. js-lingui-id: 87a/t/
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsText.tsx
@@ -8711,6 +8881,24 @@ msgstr "Sidste 90 dage"
msgid "Last activity"
msgstr ""
#. js-lingui-id: IpCCj8
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command"
msgstr ""
#. js-lingui-id: cdB4EG
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command result"
msgstr ""
#. js-lingui-id: wW6NCp
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last error"
msgstr ""
#. js-lingui-id: c5zxSg
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "Last message"
@@ -8749,6 +8937,12 @@ msgstr "Sidste betaling mislykkedes. Kontakt venligst din administrator."
msgid "Last payment failed. Please update your billing details."
msgstr "Sidste betaling mislykkedes. Opdater venligst dine faktureringsoplysninger."
#. js-lingui-id: C3yOz3
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last updated"
msgstr ""
#. js-lingui-id: wL3cK8
#: src/modules/settings/applications/components/SettingsApplicationAboutSidebar.tsx
#: src/modules/object-record/record-board/record-board-column/utils/getAggregateOperationShortLabel.ts
@@ -9192,6 +9386,12 @@ msgstr "Administrer fakturering og abonnementer"
msgid "Manage billing information"
msgstr "Administrer faktureringsoplysninger"
#. js-lingui-id: GDz4fg
#. placeholder {0}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Manage connections used by this app to call {0}."
msgstr ""
#. js-lingui-id: U8dG4j
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
@@ -9720,6 +9920,15 @@ msgstr "Mine ikke-listede visninger"
msgid "mySkill"
msgstr "mySkill"
#. js-lingui-id: fj5byd
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "N/A"
msgstr ""
#. js-lingui-id: 6YtxFj
#: src/testing/mock-data/tableData.ts
#: src/pages/settings/SettingsWorkspace.tsx
@@ -10027,6 +10236,7 @@ msgstr "Niende"
#. js-lingui-id: 1UzENP
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelUpdateFieldsValueForObject.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelSeeFieldsValueForObject.tsx
@@ -10597,7 +10807,6 @@ msgid "No variables found"
msgstr "Ingen variabler fundet"
#. js-lingui-id: OCektF
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
msgid "No variables to set for this application"
msgstr ""
@@ -10612,6 +10821,16 @@ msgstr "Ingen workflow kørsler endnu"
msgid "No workflow versions yet"
msgstr "Ingen workflow versioner endnu"
#. js-lingui-id: Q4dFjT
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace behind"
msgstr ""
#. js-lingui-id: apOMfI
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace failed"
msgstr ""
#. js-lingui-id: rPAZRd
#: src/modules/settings/lab/hooks/useLabPublicFeatureFlags.ts
msgid "No workspace selected"
@@ -10629,12 +10848,14 @@ msgstr "Node"
#. js-lingui-id: EdQY6l
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/BodyInput.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionEmailBase.tsx
#: src/modules/side-panel/pages/page-layout/utils/getDateGranularityLabel.ts
#: src/modules/side-panel/pages/page-layout/utils/getChartAxisNameDisplayOptions.ts
#: src/modules/side-panel/pages/page-layout/components/dropdown-content/ChartGroupByFieldSelectionDropdownContentBase.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectIdentifiersForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/accounts/components/SettingsAccountsMessageAutoCreationCard.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterMenuContent.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterAggregateOperationMenuItems.tsx
@@ -10680,6 +10901,11 @@ msgstr "Ikke fundet"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationConfigTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Not set"
msgstr "Ikke indstillet"
@@ -10700,6 +10926,11 @@ msgstr "Ikke delt af {notSharedByFullName}"
msgid "Not synced"
msgstr "Ikke synkroniseret"
#. js-lingui-id: VngD1z
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
msgid "Nothing to configure for this application"
msgstr ""
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
@@ -10777,6 +11008,11 @@ msgstr ""
msgid "OAuth"
msgstr "OAuth"
#. js-lingui-id: IxKj9Y
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "OAuth 2.0"
msgstr ""
#. js-lingui-id: pNEViR
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
@@ -11020,6 +11256,11 @@ msgstr "Kun emnet deles"
msgid "Only the timestamp & participants will be shared with your team."
msgstr "Kun tidsstempel og deltagere vil blive delt med dit team."
#. js-lingui-id: Lp+2YF
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Only you can use this credential."
msgstr ""
#. js-lingui-id: 1TNIig
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
@@ -11159,10 +11400,13 @@ msgstr "Organiser"
#. js-lingui-id: /IX/7x
#: src/pages/settings/updates/SettingsUpdates.tsx
#: src/pages/settings/security/SettingsSecurity.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceChatThread.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
@@ -11534,6 +11778,7 @@ msgid "Pink"
msgstr "Pink"
#. js-lingui-id: kNiQp6
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
#: src/modules/command-menu-item/display/components/SidePanelCommandMenuItemDisplayPage.tsx
msgid "Pinned"
@@ -11838,6 +12083,7 @@ msgstr "Egenskaber"
#. js-lingui-id: 8B+pY5
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Property"
msgstr ""
@@ -12077,12 +12323,18 @@ msgid "Recommended Models"
msgstr "Anbefalede modeller"
#. js-lingui-id: gcoiFh
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountInsufficientPermissions.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountEmailAliases.tsx
msgid "Reconnect"
msgstr "Genopret forbindelsen"
#. js-lingui-id: XsIxsL
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Reconnect needed"
msgstr ""
#. js-lingui-id: hVS0gK
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsRecordPicker.tsx
msgid "record"
@@ -12195,6 +12447,13 @@ msgstr "Omdirigerings-URI"
msgid "Refresh"
msgstr "Opdater"
#. js-lingui-id: pTGa/J
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Refresh status"
msgstr ""
#. js-lingui-id: vpZcGd
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
@@ -13648,6 +13907,11 @@ msgstr ""
msgid "Short"
msgstr "Kort"
#. js-lingui-id: 2rtIq8
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Short label"
msgstr ""
#. js-lingui-id: gWk8gY
#: src/modules/settings/data-model/fields/forms/components/SettingsDataModelFieldIconLabelForm.tsx
msgid "Should changing a field's label also change the API name?"
@@ -14068,9 +14332,11 @@ msgstr "Tilstand"
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
#: src/modules/settings/accounts/components/SettingsConnectedAccountsTableHeader.tsx
#: src/modules/ai/components/AiChatThreadFilterDropdownStatusMenu.tsx
@@ -15291,11 +15557,6 @@ msgstr "Udløser funktionen med regelmæssige intervaller"
msgid "Triggers the function when a record changes"
msgstr ""
#. js-lingui-id: OIRkpM
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Triggers the function when called by an AI agent or workflow"
msgstr ""
#. js-lingui-id: YdQqyX
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionHttpTriggerSection.tsx
msgid "Triggers the function with an HTTP request"
@@ -15548,12 +15809,17 @@ msgstr "Universelt ID"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/layout/SettingsLayoutPageLayoutDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Universal identifier"
msgstr ""
#. js-lingui-id: Ef7StM
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusRightContainer.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminVersionContainer.tsx
msgid "Unknown"
msgstr "Ukendt"
@@ -15586,6 +15852,11 @@ msgstr "Ukendt fil"
msgid "Unknown object"
msgstr "Ukendt objekt"
#. js-lingui-id: m/o1+r
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesByHealthAccordion.tsx
msgid "Unknown workspace"
msgstr ""
#. js-lingui-id: GQCXQS
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
@@ -15677,6 +15948,11 @@ msgstr "Uden titel workflow"
msgid "Unused credits from the previous period. Expired at the end of the period."
msgstr ""
#. js-lingui-id: j5CWO4
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
msgid "Up to date"
msgstr ""
#. js-lingui-id: hmc//6
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Upcoming execution time ({timeZone})"
@@ -15739,6 +16015,7 @@ msgstr "opdateret"
#. js-lingui-id: +b7T3G
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
msgid "Updated"
@@ -15765,11 +16042,39 @@ msgstr "Opdateringer"
msgid "Upgrade"
msgstr "Opgrader"
#. js-lingui-id: IEtN5Y
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Upgrade health"
msgstr ""
#. js-lingui-id: 88ZkNH
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Upgrade health across all workspaces"
msgstr ""
#. js-lingui-id: +awaFr
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Upgrade health across instance and workspaces"
msgstr ""
#. js-lingui-id: 7aHRdp
#: src/modules/ai/components/AiChatCreditsExhaustedMessage.tsx
msgid "Upgrade Plan"
msgstr "Opgrader planen"
#. js-lingui-id: 5UfQvA
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Upgrade Status"
msgstr ""
#. js-lingui-id: /l59TO
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Upgrade status refreshed"
msgstr ""
#. js-lingui-id: pKCx2F
#: src/pages/settings/applications/tabs/SettingsApplicationDetailAboutTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
@@ -16057,6 +16362,7 @@ msgstr "Gyldighedstoken blev opdateret"
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/KeyValuePairInput.tsx
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/settings/logic-functions/components/tabs/SettingsLogicFunctionTabEnvironmentVariableTableRow.tsx
@@ -16599,6 +16905,12 @@ msgstr "Uden kreditkort"
msgid "Worker"
msgstr "Arbejder"
#. js-lingui-id: eQ/LA/
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
#: src/modules/logic-functions/utils/getLogicFunctionTriggerLabel.ts
msgid "Workflow action"
msgstr ""
#. js-lingui-id: Kqs5vQ
#: src/pages/settings/ai/components/SettingsAiAgentsTable.tsx
msgid "Workflow agents"
@@ -16657,6 +16969,8 @@ msgstr "Arbejdsgange"
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationConfigVariableDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -16721,6 +17035,11 @@ msgstr "Arbejdsområde Info"
msgid "Workspace Instructions"
msgstr "Instruktioner for arbejdsområdet"
#. js-lingui-id: Ce7yfm
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Workspace lists by upgrade status"
msgstr ""
#. js-lingui-id: Y0Fj4S
#: src/pages/onboarding/CreateWorkspace.tsx
msgid "Workspace logo"
@@ -16741,6 +17060,17 @@ msgstr ""
msgid "Workspace name"
msgstr "Arbejdsområdets navn"
#. js-lingui-id: PHF7zj
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Workspace shared"
msgstr ""
#. js-lingui-id: Smg70n
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Workspace upgrade health"
msgstr ""
#. js-lingui-id: QZi0YX
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownVisibilityContent.tsx
msgid "Workspace views require manage views permission"
@@ -16751,6 +17081,13 @@ msgstr "Arbejdsområdevisninger kræver tilladelse til at administrere visninger
msgid "Workspaces"
msgstr "Arbejdsområder"
#. js-lingui-id: 33fb3H
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Workspaces status"
msgstr ""
#. js-lingui-id: QPsQMb
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
msgid "Would you like to remove {recordIndexRecordGroupSort} group sorting?"
@@ -16846,6 +17183,7 @@ msgstr "ja"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/pages/settings/ai/components/SettingsToolParameterTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
+344 -6
View File
@@ -146,6 +146,12 @@ msgstr "{0, plural, one {{years} Jahr} other {{years} Jahre}}"
msgid "{0, plural, one {# Object} other {# Objects}}"
msgstr "{0, plural, one {# Objekt} other {# Objekte}}"
#. js-lingui-id: 8ob0vY
#. placeholder {0}: failedCount + behindCount
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{0, plural, one {# workspace failed or behind} other {# workspaces failed or behind}}"
msgstr ""
#. js-lingui-id: WTc9VY
#. placeholder {0}: restriction.fieldNames.length
#: src/modules/page-layout/widgets/components/PageLayoutWidgetForbiddenDisplay.tsx
@@ -204,6 +210,12 @@ msgstr ""
msgid "{0} widgets"
msgstr ""
#. js-lingui-id: xTgz1F
#. placeholder {1}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "{1} OAuth is not yet set up by your server administrator. They need to fill in the OAuth client ID and secret on the application registration before you can add a connection."
msgstr ""
#. js-lingui-id: qdQhzv
#: src/modules/views/advanced-filter-chip/components/AdvancedFilterChip.tsx
msgid "{advancedFilterCount, plural, one {{advancedFilterCount} advanced rule} other {{advancedFilterCount} advanced rules}}"
@@ -229,6 +241,12 @@ msgstr "{aggregateLabel} von {fieldLabel}"
msgid "{appName} wants to access your account"
msgstr "{appName} möchte auf Ihr Konto zugreifen"
#. js-lingui-id: y9covz
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{behindCount, plural, one {# workspace behind} other {# workspaces behind}}"
msgstr ""
#. js-lingui-id: SU5Crx
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "{cachedPercent}% cached"
@@ -291,6 +309,12 @@ msgstr "Testversion für {duration} Tage"
msgid "{eventAction} a related {eventObject}"
msgstr "{eventAction} ein zugehöriges {eventObject}"
#. js-lingui-id: nRKZKb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{failedCount, plural, one {# workspace failed} other {# workspaces failed}}"
msgstr ""
#. js-lingui-id: POhzPf
#: src/modules/ai/hooks/useAiChatFileUpload.ts
msgid "{failedCount} file(s) failed to upload"
@@ -443,6 +467,11 @@ msgstr "{roleLabel} kann {humanReadableAction} {objectLabel} Datensätze nicht"
msgid "{roleTargetName} will be assigned to the \"{newRoleName}\" role."
msgstr "{roleTargetName} wird die Rolle \"{newRoleName}\" zugewiesen."
#. js-lingui-id: UsskHt
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "{scopeCount} scopes"
msgstr ""
#. js-lingui-id: kvVMdH
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
msgid "{selectedCount, plural, one {Delete {selectedCount} Job} other {Delete {selectedCount} Jobs}}"
@@ -548,6 +577,11 @@ msgstr "0 */1 * * *"
msgid "1 day"
msgstr "1 Tag"
#. js-lingui-id: Mkh9C8
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 scope"
msgstr ""
#. js-lingui-id: W/OU4i
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 tab"
@@ -992,6 +1026,11 @@ msgstr "Block hinzufügen"
msgid "Add CC"
msgstr "CC hinzufügen"
#. js-lingui-id: Rop0cs
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Add connection"
msgstr ""
#. js-lingui-id: RVp8im
#: src/modules/settings/admin-panel/ai/components/SettingsAdminAI.tsx
msgid "Add custom endpoints, private gateways, or additional regions."
@@ -1334,7 +1373,10 @@ msgid "Admin Panel - General"
msgstr ""
#. js-lingui-id: v/zjIb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
msgid "Admin Panel - Health"
msgstr ""
@@ -1938,6 +1980,11 @@ msgstr ""
msgid "Any field"
msgstr "Jedes Feld"
#. js-lingui-id: SI4CMD
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Anyone in this workspace can use this credential."
msgstr ""
#. js-lingui-id: xJR+Wq
#: src/pages/settings/domains/SettingsDomains.tsx
msgid "Anyone with an email address at these domains is allowed to sign up for this workspace."
@@ -2128,6 +2175,7 @@ msgstr "Anwendung erfolgreich aktualisiert."
#: src/pages/settings/applications/SettingsApplications.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Applications"
@@ -2531,6 +2579,7 @@ msgid "Automation, AI, and access this app provides"
msgstr ""
#. js-lingui-id: lXkUEV
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Availability"
msgstr "Verfügbarkeit"
@@ -2631,6 +2680,12 @@ msgstr "Da dieser Workflow keinen manuellen Auslöser verwendet, wird das Formul
msgid "Before"
msgstr "Vor"
#. js-lingui-id: +MqoSu
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Behind"
msgstr ""
#. js-lingui-id: KYr9vA
#: src/pages/settings/ai/components/SettingsAiModelsTab.tsx
msgid "Best"
@@ -2926,6 +2981,7 @@ msgid "Can't scan? Copy the"
msgstr "Kann nicht gescannt werden? Kopieren Sie das"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDangerZone.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
@@ -3473,6 +3529,18 @@ msgstr "Befehlsmenü"
msgid "command menu item"
msgstr "Befehlsmenü-Eintrag"
#. js-lingui-id: h5/VA5
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Command menu item"
msgstr ""
#. js-lingui-id: yVBJNs
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Command menu items"
msgstr ""
#. js-lingui-id: 9HKBNN
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "commands"
@@ -3515,7 +3583,9 @@ msgid "completed"
msgstr "abgeschlossen"
#. js-lingui-id: qqWcBV
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Completed"
msgstr "Abgeschlossen"
@@ -3530,6 +3600,16 @@ msgstr "Abgeschlossene Aufgaben werden für {completedDuration} aufbewahrt, fehl
msgid "Component name"
msgstr ""
#. js-lingui-id: BglnOD
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Computed at"
msgstr ""
#. js-lingui-id: PLbVix
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Conditional availability"
msgstr ""
#. js-lingui-id: 0CuAor
#: src/modules/workflow/workflow-steps/workflow-actions/if-else-action/components/WorkflowEditActionIfElseBody.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/filter-action/components/WorkflowEditActionFilterBody.tsx
@@ -3561,6 +3641,11 @@ msgstr "Konfigurationsvariablen"
msgid "Configuration"
msgstr "Konfiguration"
#. js-lingui-id: ais8E1
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Configuration of this command menu item"
msgstr ""
#. js-lingui-id: iAL9tI
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Configure"
@@ -3688,6 +3773,11 @@ msgstr "Rollenaktualisierung bestätigen"
msgid "Confirm upgrade"
msgstr "Upgrade bestätigen"
#. js-lingui-id: mFiwDA
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Connect {providerDisplayName}"
msgstr ""
#. js-lingui-id: D8ATlr
#: src/modules/settings/accounts/components/SettingsNewAccountSection.tsx
msgid "Connect a new account to your workspace"
@@ -3713,6 +3803,16 @@ msgstr "Mit Microsoft verbinden"
msgid "Connected accounts"
msgstr "Verbundene Konten"
#. js-lingui-id: 54WNJ6
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
msgid "connection provider"
msgstr ""
#. js-lingui-id: sbBqyy
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Connection providers"
msgstr ""
#. js-lingui-id: W4Kgwq
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
msgid "Connection settings"
@@ -3794,6 +3894,7 @@ msgid "Context window"
msgstr "Kontextfenster"
#. js-lingui-id: xGVfLh
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
@@ -4196,6 +4297,7 @@ msgstr "Arbeitsplatzansichten erstellen, bearbeiten und löschen"
#. js-lingui-id: d+F6q9
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
@@ -4894,6 +4996,7 @@ msgstr "löschen"
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -5201,14 +5304,25 @@ msgstr "Datensätze auf allen Objekten zerstören"
msgid "Detach"
msgstr "Trennen"
#. js-lingui-id: crxufE
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Detail per workspace"
msgstr ""
#. js-lingui-id: URmyfc
#: src/pages/settings/security/event-logs/utils/getColumnsForEventLogTable.ts
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/ai/components/RoutingDebugDisplay.tsx
msgid "Details"
msgstr "Details"
#. js-lingui-id: /RlqQE
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Detected application version running on this instance"
msgstr ""
#. js-lingui-id: 7aDnUb
#: src/pages/settings/applications/SettingsApplications.tsx
msgid "Developer"
@@ -6650,6 +6764,16 @@ msgstr "Exportieren ({percentageValue}%)"
msgid "Export CSV"
msgstr "CSV exportieren"
#. js-lingui-id: leUV74
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
msgid "Exposes the function as a step in the workflow builder"
msgstr ""
#. js-lingui-id: Kh6fBo
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Exposes the function as a tool that AI agents can call"
msgstr ""
#. js-lingui-id: 1JBTZV
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerCronForm.tsx
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionCronTriggerSection.tsx
@@ -6663,7 +6787,11 @@ msgstr "Verwendete zusätzliche Credits"
#. js-lingui-id: 7Bj3x9
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Failed"
msgstr "Fehlgeschlagen"
@@ -6773,6 +6901,13 @@ msgstr "Zusammenführen der Datensätze fehlgeschlagen. Bitte versuchen Sie es e
msgid "Failed to parse context: {contextValue}"
msgstr "Kontext konnte nicht geparst werden: {contextValue}"
#. js-lingui-id: 3m7+J/
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Failed to refresh upgrade status"
msgstr ""
#. js-lingui-id: 3YA1cX
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Failed to remove model"
@@ -7344,6 +7479,7 @@ msgstr "Frontend-Komponente"
#. js-lingui-id: 7skoga
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Front component"
msgstr ""
@@ -7652,6 +7788,11 @@ msgstr ""
msgid "Health"
msgstr "Systemzustand"
#. js-lingui-id: HyaXse
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
msgid "Health of the latest instance command"
msgstr ""
#. js-lingui-id: I1IOmb
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Health Status"
@@ -7875,6 +8016,7 @@ msgstr ""
#. js-lingui-id: wwu18a
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Icon"
msgstr "Symbol"
@@ -8107,6 +8249,15 @@ msgstr "Indizes"
msgid "Indexes"
msgstr "Indizes"
#. js-lingui-id: hG711D
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Inferred version"
msgstr ""
#. js-lingui-id: CE+M2e
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -8202,6 +8353,13 @@ msgstr ""
msgid "Installing..."
msgstr "Wird installiert..."
#. js-lingui-id: x8uKc7
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Instance status"
msgstr ""
#. js-lingui-id: AwUsnG
#: src/pages/settings/data-model/constants/SettingsObjectTableMetadata.ts
msgid "Instances"
@@ -8575,6 +8733,17 @@ msgstr "Dem {workspaceName} Team beitreten"
msgid "JSON"
msgstr ""
#. js-lingui-id: UpNpMK
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Just for me"
msgstr ""
#. js-lingui-id: JJOCq/
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Just me"
msgstr ""
#. js-lingui-id: OGXtL8
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
@@ -8603,6 +8772,7 @@ msgid "Korean"
msgstr "Koreanisch"
#. js-lingui-id: 87a/t/
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsText.tsx
@@ -8711,6 +8881,24 @@ msgstr "Letzte 90 Tage"
msgid "Last activity"
msgstr ""
#. js-lingui-id: IpCCj8
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command"
msgstr ""
#. js-lingui-id: cdB4EG
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command result"
msgstr ""
#. js-lingui-id: wW6NCp
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last error"
msgstr ""
#. js-lingui-id: c5zxSg
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "Last message"
@@ -8749,6 +8937,12 @@ msgstr "Letzte Zahlung fehlgeschlagen. Bitte kontaktieren Sie Ihren Administrato
msgid "Last payment failed. Please update your billing details."
msgstr "Letzte Zahlung fehlgeschlagen. Bitte aktualisieren Sie Ihre Rechnungsdaten."
#. js-lingui-id: C3yOz3
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last updated"
msgstr ""
#. js-lingui-id: wL3cK8
#: src/modules/settings/applications/components/SettingsApplicationAboutSidebar.tsx
#: src/modules/object-record/record-board/record-board-column/utils/getAggregateOperationShortLabel.ts
@@ -9192,6 +9386,12 @@ msgstr "Abrechnung und Abonnements verwalten"
msgid "Manage billing information"
msgstr "Verwalten Sie die Rechnungsdaten"
#. js-lingui-id: GDz4fg
#. placeholder {0}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Manage connections used by this app to call {0}."
msgstr ""
#. js-lingui-id: U8dG4j
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
@@ -9720,6 +9920,15 @@ msgstr "Meine nicht gelisteten Ansichten"
msgid "mySkill"
msgstr "mySkill"
#. js-lingui-id: fj5byd
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "N/A"
msgstr ""
#. js-lingui-id: 6YtxFj
#: src/testing/mock-data/tableData.ts
#: src/pages/settings/SettingsWorkspace.tsx
@@ -10027,6 +10236,7 @@ msgstr "Neunte"
#. js-lingui-id: 1UzENP
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelUpdateFieldsValueForObject.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelSeeFieldsValueForObject.tsx
@@ -10597,7 +10807,6 @@ msgid "No variables found"
msgstr "Keine Variablen gefunden"
#. js-lingui-id: OCektF
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
msgid "No variables to set for this application"
msgstr ""
@@ -10612,6 +10821,16 @@ msgstr "Noch keine Workflow-Ausführungen"
msgid "No workflow versions yet"
msgstr "Noch keine Workflow-Versionen"
#. js-lingui-id: Q4dFjT
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace behind"
msgstr ""
#. js-lingui-id: apOMfI
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace failed"
msgstr ""
#. js-lingui-id: rPAZRd
#: src/modules/settings/lab/hooks/useLabPublicFeatureFlags.ts
msgid "No workspace selected"
@@ -10629,12 +10848,14 @@ msgstr "Knoten"
#. js-lingui-id: EdQY6l
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/BodyInput.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionEmailBase.tsx
#: src/modules/side-panel/pages/page-layout/utils/getDateGranularityLabel.ts
#: src/modules/side-panel/pages/page-layout/utils/getChartAxisNameDisplayOptions.ts
#: src/modules/side-panel/pages/page-layout/components/dropdown-content/ChartGroupByFieldSelectionDropdownContentBase.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectIdentifiersForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/accounts/components/SettingsAccountsMessageAutoCreationCard.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterMenuContent.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterAggregateOperationMenuItems.tsx
@@ -10680,6 +10901,11 @@ msgstr "Nicht gefunden"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationConfigTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Not set"
msgstr "Nicht gesetzt"
@@ -10700,6 +10926,11 @@ msgstr "Nicht geteilt von {notSharedByFullName}"
msgid "Not synced"
msgstr "Nicht synchronisiert"
#. js-lingui-id: VngD1z
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
msgid "Nothing to configure for this application"
msgstr ""
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
@@ -10777,6 +11008,11 @@ msgstr ""
msgid "OAuth"
msgstr "OAuth"
#. js-lingui-id: IxKj9Y
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "OAuth 2.0"
msgstr ""
#. js-lingui-id: pNEViR
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
@@ -11020,6 +11256,11 @@ msgstr "Nur der Betreff wird geteilt"
msgid "Only the timestamp & participants will be shared with your team."
msgstr "Nur der Zeitstempel & Teilnehmer werden mit Ihrem Team geteilt."
#. js-lingui-id: Lp+2YF
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Only you can use this credential."
msgstr ""
#. js-lingui-id: 1TNIig
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
@@ -11159,10 +11400,13 @@ msgstr "Organisieren"
#. js-lingui-id: /IX/7x
#: src/pages/settings/updates/SettingsUpdates.tsx
#: src/pages/settings/security/SettingsSecurity.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceChatThread.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
@@ -11534,6 +11778,7 @@ msgid "Pink"
msgstr "Pink"
#. js-lingui-id: kNiQp6
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
#: src/modules/command-menu-item/display/components/SidePanelCommandMenuItemDisplayPage.tsx
msgid "Pinned"
@@ -11838,6 +12083,7 @@ msgstr "Eigenschaften"
#. js-lingui-id: 8B+pY5
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Property"
msgstr ""
@@ -12077,12 +12323,18 @@ msgid "Recommended Models"
msgstr "Empfohlene Modelle"
#. js-lingui-id: gcoiFh
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountInsufficientPermissions.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountEmailAliases.tsx
msgid "Reconnect"
msgstr "Erneut verbinden"
#. js-lingui-id: XsIxsL
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Reconnect needed"
msgstr ""
#. js-lingui-id: hVS0gK
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsRecordPicker.tsx
msgid "record"
@@ -12195,6 +12447,13 @@ msgstr "Umleitungs-URI"
msgid "Refresh"
msgstr "Aktualisieren"
#. js-lingui-id: pTGa/J
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Refresh status"
msgstr ""
#. js-lingui-id: vpZcGd
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
@@ -13648,6 +13907,11 @@ msgstr ""
msgid "Short"
msgstr "Kurz"
#. js-lingui-id: 2rtIq8
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Short label"
msgstr ""
#. js-lingui-id: gWk8gY
#: src/modules/settings/data-model/fields/forms/components/SettingsDataModelFieldIconLabelForm.tsx
msgid "Should changing a field's label also change the API name?"
@@ -14068,9 +14332,11 @@ msgstr "Zustand"
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
#: src/modules/settings/accounts/components/SettingsConnectedAccountsTableHeader.tsx
#: src/modules/ai/components/AiChatThreadFilterDropdownStatusMenu.tsx
@@ -15289,11 +15555,6 @@ msgstr "Löst die Funktion in regelmäßigen Abständen aus"
msgid "Triggers the function when a record changes"
msgstr ""
#. js-lingui-id: OIRkpM
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Triggers the function when called by an AI agent or workflow"
msgstr ""
#. js-lingui-id: YdQqyX
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionHttpTriggerSection.tsx
msgid "Triggers the function with an HTTP request"
@@ -15546,12 +15807,17 @@ msgstr "Universelle ID"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/layout/SettingsLayoutPageLayoutDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Universal identifier"
msgstr ""
#. js-lingui-id: Ef7StM
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusRightContainer.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminVersionContainer.tsx
msgid "Unknown"
msgstr "Unbekannt"
@@ -15584,6 +15850,11 @@ msgstr "Unbekannte Datei"
msgid "Unknown object"
msgstr "Unbekanntes Objekt"
#. js-lingui-id: m/o1+r
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesByHealthAccordion.tsx
msgid "Unknown workspace"
msgstr ""
#. js-lingui-id: GQCXQS
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
@@ -15675,6 +15946,11 @@ msgstr "Unbenannter Workflow"
msgid "Unused credits from the previous period. Expired at the end of the period."
msgstr ""
#. js-lingui-id: j5CWO4
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
msgid "Up to date"
msgstr ""
#. js-lingui-id: hmc//6
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Upcoming execution time ({timeZone})"
@@ -15737,6 +16013,7 @@ msgstr "aktualisiert"
#. js-lingui-id: +b7T3G
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
msgid "Updated"
@@ -15763,11 +16040,39 @@ msgstr "Aktualisierungen"
msgid "Upgrade"
msgstr "Upgrade"
#. js-lingui-id: IEtN5Y
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Upgrade health"
msgstr ""
#. js-lingui-id: 88ZkNH
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Upgrade health across all workspaces"
msgstr ""
#. js-lingui-id: +awaFr
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Upgrade health across instance and workspaces"
msgstr ""
#. js-lingui-id: 7aHRdp
#: src/modules/ai/components/AiChatCreditsExhaustedMessage.tsx
msgid "Upgrade Plan"
msgstr "Tarif upgraden"
#. js-lingui-id: 5UfQvA
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Upgrade Status"
msgstr ""
#. js-lingui-id: /l59TO
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Upgrade status refreshed"
msgstr ""
#. js-lingui-id: pKCx2F
#: src/pages/settings/applications/tabs/SettingsApplicationDetailAboutTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
@@ -16055,6 +16360,7 @@ msgstr "Gültigkeitstoken erfolgreich aktualisiert"
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/KeyValuePairInput.tsx
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/settings/logic-functions/components/tabs/SettingsLogicFunctionTabEnvironmentVariableTableRow.tsx
@@ -16597,6 +16903,12 @@ msgstr "Ohne Kreditkarte"
msgid "Worker"
msgstr "Arbeiter"
#. js-lingui-id: eQ/LA/
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
#: src/modules/logic-functions/utils/getLogicFunctionTriggerLabel.ts
msgid "Workflow action"
msgstr ""
#. js-lingui-id: Kqs5vQ
#: src/pages/settings/ai/components/SettingsAiAgentsTable.tsx
msgid "Workflow agents"
@@ -16655,6 +16967,8 @@ msgstr "Workflows"
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationConfigVariableDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -16719,6 +17033,11 @@ msgstr "Arbeitsbereichsinfo"
msgid "Workspace Instructions"
msgstr "Arbeitsbereichsanweisungen"
#. js-lingui-id: Ce7yfm
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Workspace lists by upgrade status"
msgstr ""
#. js-lingui-id: Y0Fj4S
#: src/pages/onboarding/CreateWorkspace.tsx
msgid "Workspace logo"
@@ -16739,6 +17058,17 @@ msgstr ""
msgid "Workspace name"
msgstr "Arbeitsbereichsname"
#. js-lingui-id: PHF7zj
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Workspace shared"
msgstr ""
#. js-lingui-id: Smg70n
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Workspace upgrade health"
msgstr ""
#. js-lingui-id: QZi0YX
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownVisibilityContent.tsx
msgid "Workspace views require manage views permission"
@@ -16749,6 +17079,13 @@ msgstr "Arbeitsplatzansichten erfordern das Verwaltensrecht von Ansichten"
msgid "Workspaces"
msgstr "Arbeitsbereiche"
#. js-lingui-id: 33fb3H
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Workspaces status"
msgstr ""
#. js-lingui-id: QPsQMb
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
msgid "Would you like to remove {recordIndexRecordGroupSort} group sorting?"
@@ -16844,6 +17181,7 @@ msgstr "ja"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/pages/settings/ai/components/SettingsToolParameterTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
+344 -6
View File
@@ -146,6 +146,12 @@ msgstr "{0, plural, one {{years} έτος} other {{years} έτη}}"
msgid "{0, plural, one {# Object} other {# Objects}}"
msgstr "{0, plural, one {# Αντικείμενο} other {# Αντικείμενα}}"
#. js-lingui-id: 8ob0vY
#. placeholder {0}: failedCount + behindCount
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{0, plural, one {# workspace failed or behind} other {# workspaces failed or behind}}"
msgstr ""
#. js-lingui-id: WTc9VY
#. placeholder {0}: restriction.fieldNames.length
#: src/modules/page-layout/widgets/components/PageLayoutWidgetForbiddenDisplay.tsx
@@ -204,6 +210,12 @@ msgstr ""
msgid "{0} widgets"
msgstr ""
#. js-lingui-id: xTgz1F
#. placeholder {1}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "{1} OAuth is not yet set up by your server administrator. They need to fill in the OAuth client ID and secret on the application registration before you can add a connection."
msgstr ""
#. js-lingui-id: qdQhzv
#: src/modules/views/advanced-filter-chip/components/AdvancedFilterChip.tsx
msgid "{advancedFilterCount, plural, one {{advancedFilterCount} advanced rule} other {{advancedFilterCount} advanced rules}}"
@@ -229,6 +241,12 @@ msgstr "{aggregateLabel} του {fieldLabel}"
msgid "{appName} wants to access your account"
msgstr "Το {appName} θέλει να αποκτήσει πρόσβαση στον λογαριασμό σας"
#. js-lingui-id: y9covz
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{behindCount, plural, one {# workspace behind} other {# workspaces behind}}"
msgstr ""
#. js-lingui-id: SU5Crx
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "{cachedPercent}% cached"
@@ -291,6 +309,12 @@ msgstr "Δοκιμή {duration} ημερών"
msgid "{eventAction} a related {eventObject}"
msgstr "{eventAction} ένα σχετικό {eventObject}"
#. js-lingui-id: nRKZKb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{failedCount, plural, one {# workspace failed} other {# workspaces failed}}"
msgstr ""
#. js-lingui-id: POhzPf
#: src/modules/ai/hooks/useAiChatFileUpload.ts
msgid "{failedCount} file(s) failed to upload"
@@ -443,6 +467,11 @@ msgstr "{roleLabel} δεν μπορεί να {humanReadableAction} αρχεία
msgid "{roleTargetName} will be assigned to the \"{newRoleName}\" role."
msgstr "Ο χρήστης {roleTargetName} θα εκχωρηθεί στο ρόλο \"{newRoleName}\"."
#. js-lingui-id: UsskHt
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "{scopeCount} scopes"
msgstr ""
#. js-lingui-id: kvVMdH
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
msgid "{selectedCount, plural, one {Delete {selectedCount} Job} other {Delete {selectedCount} Jobs}}"
@@ -548,6 +577,11 @@ msgstr "0 */1 * * *"
msgid "1 day"
msgstr "1 ημέρα"
#. js-lingui-id: Mkh9C8
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 scope"
msgstr ""
#. js-lingui-id: W/OU4i
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 tab"
@@ -992,6 +1026,11 @@ msgstr "Προσθήκη Μπλοκ"
msgid "Add CC"
msgstr "Προσθήκη κοινοποίησης"
#. js-lingui-id: Rop0cs
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Add connection"
msgstr ""
#. js-lingui-id: RVp8im
#: src/modules/settings/admin-panel/ai/components/SettingsAdminAI.tsx
msgid "Add custom endpoints, private gateways, or additional regions."
@@ -1334,7 +1373,10 @@ msgid "Admin Panel - General"
msgstr ""
#. js-lingui-id: v/zjIb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
msgid "Admin Panel - Health"
msgstr ""
@@ -1938,6 +1980,11 @@ msgstr ""
msgid "Any field"
msgstr "Οποιοδήποτε πεδίο"
#. js-lingui-id: SI4CMD
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Anyone in this workspace can use this credential."
msgstr ""
#. js-lingui-id: xJR+Wq
#: src/pages/settings/domains/SettingsDomains.tsx
msgid "Anyone with an email address at these domains is allowed to sign up for this workspace."
@@ -2128,6 +2175,7 @@ msgstr "Η εφαρμογή αναβαθμίστηκε με επιτυχία."
#: src/pages/settings/applications/SettingsApplications.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Applications"
@@ -2531,6 +2579,7 @@ msgid "Automation, AI, and access this app provides"
msgstr ""
#. js-lingui-id: lXkUEV
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Availability"
msgstr "Διαθεσιμότητα"
@@ -2631,6 +2680,12 @@ msgstr "Επειδή αυτή η ροή εργασίας δεν χρησιμοπ
msgid "Before"
msgstr "Πριν"
#. js-lingui-id: +MqoSu
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Behind"
msgstr ""
#. js-lingui-id: KYr9vA
#: src/pages/settings/ai/components/SettingsAiModelsTab.tsx
msgid "Best"
@@ -2926,6 +2981,7 @@ msgid "Can't scan? Copy the"
msgstr "Δεν μπορείτε να σαρώσετε; Αντιγράψτε το"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDangerZone.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
@@ -3473,6 +3529,18 @@ msgstr "Μενού Εντολών"
msgid "command menu item"
msgstr "στοιχείο μενού εντολών"
#. js-lingui-id: h5/VA5
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Command menu item"
msgstr ""
#. js-lingui-id: yVBJNs
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Command menu items"
msgstr ""
#. js-lingui-id: 9HKBNN
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "commands"
@@ -3515,7 +3583,9 @@ msgid "completed"
msgstr "ολοκληρωμένο"
#. js-lingui-id: qqWcBV
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Completed"
msgstr "Αποπερατωμένες"
@@ -3530,6 +3600,16 @@ msgstr "Οι ολοκληρωμένες εργασίες διατηρούντα
msgid "Component name"
msgstr ""
#. js-lingui-id: BglnOD
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Computed at"
msgstr ""
#. js-lingui-id: PLbVix
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Conditional availability"
msgstr ""
#. js-lingui-id: 0CuAor
#: src/modules/workflow/workflow-steps/workflow-actions/if-else-action/components/WorkflowEditActionIfElseBody.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/filter-action/components/WorkflowEditActionFilterBody.tsx
@@ -3561,6 +3641,11 @@ msgstr "Μεταβλητές Διαμόρφωσης"
msgid "Configuration"
msgstr "Διαμόρφωση"
#. js-lingui-id: ais8E1
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Configuration of this command menu item"
msgstr ""
#. js-lingui-id: iAL9tI
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Configure"
@@ -3688,6 +3773,11 @@ msgstr "Επιβεβαίωση ενημέρωσης ρόλου"
msgid "Confirm upgrade"
msgstr "Επιβεβαίωση αναβάθμισης"
#. js-lingui-id: mFiwDA
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Connect {providerDisplayName}"
msgstr ""
#. js-lingui-id: D8ATlr
#: src/modules/settings/accounts/components/SettingsNewAccountSection.tsx
msgid "Connect a new account to your workspace"
@@ -3713,6 +3803,16 @@ msgstr "Συνδέστε με τη Microsoft"
msgid "Connected accounts"
msgstr "Συνδεδεμένοι λογαριασμοί"
#. js-lingui-id: 54WNJ6
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
msgid "connection provider"
msgstr ""
#. js-lingui-id: sbBqyy
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Connection providers"
msgstr ""
#. js-lingui-id: W4Kgwq
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
msgid "Connection settings"
@@ -3794,6 +3894,7 @@ msgid "Context window"
msgstr "Παράθυρο πλαισίου"
#. js-lingui-id: xGVfLh
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
@@ -4196,6 +4297,7 @@ msgstr "Δημιουργία, επεξεργασία και διαγραφή π
#. js-lingui-id: d+F6q9
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
@@ -4894,6 +4996,7 @@ msgstr "διαγραφή"
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -5201,14 +5304,25 @@ msgstr "Καταστροφή εγγραφών σε όλα τα αντικείμ
msgid "Detach"
msgstr "Αποσύνδεση"
#. js-lingui-id: crxufE
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Detail per workspace"
msgstr ""
#. js-lingui-id: URmyfc
#: src/pages/settings/security/event-logs/utils/getColumnsForEventLogTable.ts
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/ai/components/RoutingDebugDisplay.tsx
msgid "Details"
msgstr "Λεπτομέρειες"
#. js-lingui-id: /RlqQE
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Detected application version running on this instance"
msgstr ""
#. js-lingui-id: 7aDnUb
#: src/pages/settings/applications/SettingsApplications.tsx
msgid "Developer"
@@ -6650,6 +6764,16 @@ msgstr "Εξαγωγή ({percentageValue}%)"
msgid "Export CSV"
msgstr "Εξαγωγή CSV"
#. js-lingui-id: leUV74
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
msgid "Exposes the function as a step in the workflow builder"
msgstr ""
#. js-lingui-id: Kh6fBo
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Exposes the function as a tool that AI agents can call"
msgstr ""
#. js-lingui-id: 1JBTZV
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerCronForm.tsx
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionCronTriggerSection.tsx
@@ -6663,7 +6787,11 @@ msgstr "Πρόσθετες μονάδες χρησιμοποιήθηκαν"
#. js-lingui-id: 7Bj3x9
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Failed"
msgstr "Απέτυχε"
@@ -6773,6 +6901,13 @@ msgstr "Αποτυχία συγχώνευσης εγγραφών. Παρακαλ
msgid "Failed to parse context: {contextValue}"
msgstr "Αποτυχία ανάλυσης πλαισίου: {contextValue}"
#. js-lingui-id: 3m7+J/
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Failed to refresh upgrade status"
msgstr ""
#. js-lingui-id: 3YA1cX
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Failed to remove model"
@@ -7344,6 +7479,7 @@ msgstr "στοιχείο διεπαφής χρήστη"
#. js-lingui-id: 7skoga
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Front component"
msgstr ""
@@ -7652,6 +7788,11 @@ msgstr ""
msgid "Health"
msgstr "Κατάσταση"
#. js-lingui-id: HyaXse
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
msgid "Health of the latest instance command"
msgstr ""
#. js-lingui-id: I1IOmb
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Health Status"
@@ -7875,6 +8016,7 @@ msgstr ""
#. js-lingui-id: wwu18a
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Icon"
msgstr "Εικονίδιο"
@@ -8107,6 +8249,15 @@ msgstr "Ευρετήριο"
msgid "Indexes"
msgstr "Ευρετήρια"
#. js-lingui-id: hG711D
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Inferred version"
msgstr ""
#. js-lingui-id: CE+M2e
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -8202,6 +8353,13 @@ msgstr ""
msgid "Installing..."
msgstr "Γίνεται εγκατάσταση..."
#. js-lingui-id: x8uKc7
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Instance status"
msgstr ""
#. js-lingui-id: AwUsnG
#: src/pages/settings/data-model/constants/SettingsObjectTableMetadata.ts
msgid "Instances"
@@ -8575,6 +8733,17 @@ msgstr "Συμμετοχή στην ομάδα {workspaceName}"
msgid "JSON"
msgstr ""
#. js-lingui-id: UpNpMK
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Just for me"
msgstr ""
#. js-lingui-id: JJOCq/
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Just me"
msgstr ""
#. js-lingui-id: OGXtL8
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
@@ -8603,6 +8772,7 @@ msgid "Korean"
msgstr "Κορεατικά"
#. js-lingui-id: 87a/t/
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsText.tsx
@@ -8711,6 +8881,24 @@ msgstr "Τελευταίες 90 ημέρες"
msgid "Last activity"
msgstr ""
#. js-lingui-id: IpCCj8
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command"
msgstr ""
#. js-lingui-id: cdB4EG
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command result"
msgstr ""
#. js-lingui-id: wW6NCp
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last error"
msgstr ""
#. js-lingui-id: c5zxSg
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "Last message"
@@ -8749,6 +8937,12 @@ msgstr "Η τελευταία πληρωμή απέτυχε. Παρακαλώ ε
msgid "Last payment failed. Please update your billing details."
msgstr "Η τελευταία πληρωμή απέτυχε. Παρακαλώ ενημερώστε τα στοιχεία χρέωσής σας."
#. js-lingui-id: C3yOz3
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last updated"
msgstr ""
#. js-lingui-id: wL3cK8
#: src/modules/settings/applications/components/SettingsApplicationAboutSidebar.tsx
#: src/modules/object-record/record-board/record-board-column/utils/getAggregateOperationShortLabel.ts
@@ -9192,6 +9386,12 @@ msgstr "Διαχείριση χρέωσης και συνδρομών"
msgid "Manage billing information"
msgstr "Διαχείριση πληροφοριών χρέωσης"
#. js-lingui-id: GDz4fg
#. placeholder {0}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Manage connections used by this app to call {0}."
msgstr ""
#. js-lingui-id: U8dG4j
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
@@ -9720,6 +9920,15 @@ msgstr "Οι μη καταχωρισμένες προβολές μου"
msgid "mySkill"
msgstr "mySkill"
#. js-lingui-id: fj5byd
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "N/A"
msgstr ""
#. js-lingui-id: 6YtxFj
#: src/testing/mock-data/tableData.ts
#: src/pages/settings/SettingsWorkspace.tsx
@@ -10027,6 +10236,7 @@ msgstr "Ένατος"
#. js-lingui-id: 1UzENP
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelUpdateFieldsValueForObject.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelSeeFieldsValueForObject.tsx
@@ -10597,7 +10807,6 @@ msgid "No variables found"
msgstr "Δεν βρέθηκαν μεταβλητές"
#. js-lingui-id: OCektF
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
msgid "No variables to set for this application"
msgstr ""
@@ -10612,6 +10821,16 @@ msgstr "Δεν υπάρχουν ακόμα runs του workflow"
msgid "No workflow versions yet"
msgstr "Δεν υπάρχουν ακόμα έκδοσεις του workflow"
#. js-lingui-id: Q4dFjT
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace behind"
msgstr ""
#. js-lingui-id: apOMfI
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace failed"
msgstr ""
#. js-lingui-id: rPAZRd
#: src/modules/settings/lab/hooks/useLabPublicFeatureFlags.ts
msgid "No workspace selected"
@@ -10629,12 +10848,14 @@ msgstr "Κόμβος"
#. js-lingui-id: EdQY6l
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/BodyInput.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionEmailBase.tsx
#: src/modules/side-panel/pages/page-layout/utils/getDateGranularityLabel.ts
#: src/modules/side-panel/pages/page-layout/utils/getChartAxisNameDisplayOptions.ts
#: src/modules/side-panel/pages/page-layout/components/dropdown-content/ChartGroupByFieldSelectionDropdownContentBase.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectIdentifiersForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/accounts/components/SettingsAccountsMessageAutoCreationCard.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterMenuContent.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterAggregateOperationMenuItems.tsx
@@ -10680,6 +10901,11 @@ msgstr "Δεν Βρέθηκε"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationConfigTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Not set"
msgstr "Δεν έχει οριστεί"
@@ -10700,6 +10926,11 @@ msgstr "Δεν κοινοποιήθηκε από τον/την {notSharedByFullN
msgid "Not synced"
msgstr "Δεν συγχρονίζεται"
#. js-lingui-id: VngD1z
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
msgid "Nothing to configure for this application"
msgstr ""
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
@@ -10777,6 +11008,11 @@ msgstr ""
msgid "OAuth"
msgstr "OAuth"
#. js-lingui-id: IxKj9Y
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "OAuth 2.0"
msgstr ""
#. js-lingui-id: pNEViR
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
@@ -11020,6 +11256,11 @@ msgstr "Μοιράζεται μόνο το θέμα"
msgid "Only the timestamp & participants will be shared with your team."
msgstr "Μόνο η χρονική σήμανση και οι συμμετέχοντες θα μοιραστούν με την ομάδα σας."
#. js-lingui-id: Lp+2YF
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Only you can use this credential."
msgstr ""
#. js-lingui-id: 1TNIig
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
@@ -11159,10 +11400,13 @@ msgstr "Οργάνωση"
#. js-lingui-id: /IX/7x
#: src/pages/settings/updates/SettingsUpdates.tsx
#: src/pages/settings/security/SettingsSecurity.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceChatThread.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
@@ -11534,6 +11778,7 @@ msgid "Pink"
msgstr "Ροζ"
#. js-lingui-id: kNiQp6
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
#: src/modules/command-menu-item/display/components/SidePanelCommandMenuItemDisplayPage.tsx
msgid "Pinned"
@@ -11838,6 +12083,7 @@ msgstr "Ιδιότητες"
#. js-lingui-id: 8B+pY5
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Property"
msgstr ""
@@ -12077,12 +12323,18 @@ msgid "Recommended Models"
msgstr "Συνιστώμενα Μοντέλα"
#. js-lingui-id: gcoiFh
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountInsufficientPermissions.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountEmailAliases.tsx
msgid "Reconnect"
msgstr "Επανασύνδεση"
#. js-lingui-id: XsIxsL
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Reconnect needed"
msgstr ""
#. js-lingui-id: hVS0gK
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsRecordPicker.tsx
msgid "record"
@@ -12195,6 +12447,13 @@ msgstr "URI Ανακατεύθυνσης"
msgid "Refresh"
msgstr "Ανανέωση"
#. js-lingui-id: pTGa/J
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Refresh status"
msgstr ""
#. js-lingui-id: vpZcGd
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
@@ -13650,6 +13909,11 @@ msgstr ""
"\n"
""
#. js-lingui-id: 2rtIq8
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Short label"
msgstr ""
#. js-lingui-id: gWk8gY
#: src/modules/settings/data-model/fields/forms/components/SettingsDataModelFieldIconLabelForm.tsx
msgid "Should changing a field's label also change the API name?"
@@ -14070,9 +14334,11 @@ msgstr "Κατάσταση"
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
#: src/modules/settings/accounts/components/SettingsConnectedAccountsTableHeader.tsx
#: src/modules/ai/components/AiChatThreadFilterDropdownStatusMenu.tsx
@@ -15293,11 +15559,6 @@ msgstr "Ενεργοποιεί τη λειτουργία σε τακτά δια
msgid "Triggers the function when a record changes"
msgstr ""
#. js-lingui-id: OIRkpM
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Triggers the function when called by an AI agent or workflow"
msgstr ""
#. js-lingui-id: YdQqyX
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionHttpTriggerSection.tsx
msgid "Triggers the function with an HTTP request"
@@ -15550,12 +15811,17 @@ msgstr "Καθολικό αναγνωριστικό"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/layout/SettingsLayoutPageLayoutDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Universal identifier"
msgstr ""
#. js-lingui-id: Ef7StM
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusRightContainer.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminVersionContainer.tsx
msgid "Unknown"
msgstr "Άγνωστο"
@@ -15588,6 +15854,11 @@ msgstr "Άγνωστο αρχείο"
msgid "Unknown object"
msgstr "Άγνωστο αντικείμενο"
#. js-lingui-id: m/o1+r
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesByHealthAccordion.tsx
msgid "Unknown workspace"
msgstr ""
#. js-lingui-id: GQCXQS
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
@@ -15679,6 +15950,11 @@ msgstr "Άτιτλη Εργασία"
msgid "Unused credits from the previous period. Expired at the end of the period."
msgstr ""
#. js-lingui-id: j5CWO4
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
msgid "Up to date"
msgstr ""
#. js-lingui-id: hmc//6
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Upcoming execution time ({timeZone})"
@@ -15741,6 +16017,7 @@ msgstr "ενημερώθηκε"
#. js-lingui-id: +b7T3G
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
msgid "Updated"
@@ -15767,11 +16044,39 @@ msgstr "Ενημερώσεις"
msgid "Upgrade"
msgstr "Αναβάθμιση"
#. js-lingui-id: IEtN5Y
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Upgrade health"
msgstr ""
#. js-lingui-id: 88ZkNH
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Upgrade health across all workspaces"
msgstr ""
#. js-lingui-id: +awaFr
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Upgrade health across instance and workspaces"
msgstr ""
#. js-lingui-id: 7aHRdp
#: src/modules/ai/components/AiChatCreditsExhaustedMessage.tsx
msgid "Upgrade Plan"
msgstr "Αναβάθμιση προγράμματος"
#. js-lingui-id: 5UfQvA
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Upgrade Status"
msgstr ""
#. js-lingui-id: /l59TO
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Upgrade status refreshed"
msgstr ""
#. js-lingui-id: pKCx2F
#: src/pages/settings/applications/tabs/SettingsApplicationDetailAboutTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
@@ -16059,6 +16364,7 @@ msgstr "Το διακριτικό εγκυρότητας ανανεώθηκε μ
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/KeyValuePairInput.tsx
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/settings/logic-functions/components/tabs/SettingsLogicFunctionTabEnvironmentVariableTableRow.tsx
@@ -16601,6 +16907,12 @@ msgstr "Χωρίς πιστωτική κάρτα"
msgid "Worker"
msgstr "Εργάτης"
#. js-lingui-id: eQ/LA/
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
#: src/modules/logic-functions/utils/getLogicFunctionTriggerLabel.ts
msgid "Workflow action"
msgstr ""
#. js-lingui-id: Kqs5vQ
#: src/pages/settings/ai/components/SettingsAiAgentsTable.tsx
msgid "Workflow agents"
@@ -16659,6 +16971,8 @@ msgstr "Ροές Εργασίας"
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationConfigVariableDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -16723,6 +17037,11 @@ msgstr "Πληροφορίες Χώρου Εργασίας"
msgid "Workspace Instructions"
msgstr "Οδηγίες Χώρου Εργασίας"
#. js-lingui-id: Ce7yfm
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Workspace lists by upgrade status"
msgstr ""
#. js-lingui-id: Y0Fj4S
#: src/pages/onboarding/CreateWorkspace.tsx
msgid "Workspace logo"
@@ -16743,6 +17062,17 @@ msgstr ""
msgid "Workspace name"
msgstr "Όνομα Workspace"
#. js-lingui-id: PHF7zj
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Workspace shared"
msgstr ""
#. js-lingui-id: Smg70n
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Workspace upgrade health"
msgstr ""
#. js-lingui-id: QZi0YX
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownVisibilityContent.tsx
msgid "Workspace views require manage views permission"
@@ -16753,6 +17083,13 @@ msgstr "Οι προβολές χώρου εργασίας απαιτούν δι
msgid "Workspaces"
msgstr "Περιοχές Εργασίας"
#. js-lingui-id: 33fb3H
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Workspaces status"
msgstr ""
#. js-lingui-id: QPsQMb
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
msgid "Would you like to remove {recordIndexRecordGroupSort} group sorting?"
@@ -16848,6 +17185,7 @@ msgstr "ναι"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/pages/settings/ai/components/SettingsToolParameterTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
+344 -6
View File
@@ -141,6 +141,12 @@ msgstr "{0, plural, one {{years} year} other {{years} years}}"
msgid "{0, plural, one {# Object} other {# Objects}}"
msgstr "{0, plural, one {# Object} other {# Objects}}"
#. js-lingui-id: 8ob0vY
#. placeholder {0}: failedCount + behindCount
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{0, plural, one {# workspace failed or behind} other {# workspaces failed or behind}}"
msgstr "{0, plural, one {# workspace failed or behind} other {# workspaces failed or behind}}"
#. js-lingui-id: WTc9VY
#. placeholder {0}: restriction.fieldNames.length
#: src/modules/page-layout/widgets/components/PageLayoutWidgetForbiddenDisplay.tsx
@@ -199,6 +205,12 @@ msgstr "{0} view"
msgid "{0} widgets"
msgstr "{0} widgets"
#. js-lingui-id: xTgz1F
#. placeholder {1}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "{1} OAuth is not yet set up by your server administrator. They need to fill in the OAuth client ID and secret on the application registration before you can add a connection."
msgstr "{1} OAuth is not yet set up by your server administrator. They need to fill in the OAuth client ID and secret on the application registration before you can add a connection."
#. js-lingui-id: qdQhzv
#: src/modules/views/advanced-filter-chip/components/AdvancedFilterChip.tsx
msgid "{advancedFilterCount, plural, one {{advancedFilterCount} advanced rule} other {{advancedFilterCount} advanced rules}}"
@@ -224,6 +236,12 @@ msgstr "{aggregateLabel} of {fieldLabel}"
msgid "{appName} wants to access your account"
msgstr "{appName} wants to access your account"
#. js-lingui-id: y9covz
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{behindCount, plural, one {# workspace behind} other {# workspaces behind}}"
msgstr "{behindCount, plural, one {# workspace behind} other {# workspaces behind}}"
#. js-lingui-id: SU5Crx
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "{cachedPercent}% cached"
@@ -286,6 +304,12 @@ msgstr "{duration} days trial"
msgid "{eventAction} a related {eventObject}"
msgstr "{eventAction} a related {eventObject}"
#. js-lingui-id: nRKZKb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{failedCount, plural, one {# workspace failed} other {# workspaces failed}}"
msgstr "{failedCount, plural, one {# workspace failed} other {# workspaces failed}}"
#. js-lingui-id: POhzPf
#: src/modules/ai/hooks/useAiChatFileUpload.ts
msgid "{failedCount} file(s) failed to upload"
@@ -438,6 +462,11 @@ msgstr "{roleLabel} can't {humanReadableAction} {objectLabel} records"
msgid "{roleTargetName} will be assigned to the \"{newRoleName}\" role."
msgstr "{roleTargetName} will be assigned to the \"{newRoleName}\" role."
#. js-lingui-id: UsskHt
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "{scopeCount} scopes"
msgstr "{scopeCount} scopes"
#. js-lingui-id: kvVMdH
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
msgid "{selectedCount, plural, one {Delete {selectedCount} Job} other {Delete {selectedCount} Jobs}}"
@@ -543,6 +572,11 @@ msgstr "0 */1 * * *"
msgid "1 day"
msgstr "1 day"
#. js-lingui-id: Mkh9C8
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 scope"
msgstr "1 scope"
#. js-lingui-id: W/OU4i
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 tab"
@@ -987,6 +1021,11 @@ msgstr "Add Block"
msgid "Add CC"
msgstr "Add CC"
#. js-lingui-id: Rop0cs
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Add connection"
msgstr "Add connection"
#. js-lingui-id: RVp8im
#: src/modules/settings/admin-panel/ai/components/SettingsAdminAI.tsx
msgid "Add custom endpoints, private gateways, or additional regions."
@@ -1329,7 +1368,10 @@ msgid "Admin Panel - General"
msgstr "Admin Panel - General"
#. js-lingui-id: v/zjIb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
msgid "Admin Panel - Health"
msgstr "Admin Panel - Health"
@@ -1933,6 +1975,11 @@ msgstr "Any device"
msgid "Any field"
msgstr "Any field"
#. js-lingui-id: SI4CMD
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Anyone in this workspace can use this credential."
msgstr "Anyone in this workspace can use this credential."
#. js-lingui-id: xJR+Wq
#: src/pages/settings/domains/SettingsDomains.tsx
msgid "Anyone with an email address at these domains is allowed to sign up for this workspace."
@@ -2123,6 +2170,7 @@ msgstr "Application upgraded successfully."
#: src/pages/settings/applications/SettingsApplications.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Applications"
@@ -2526,6 +2574,7 @@ msgid "Automation, AI, and access this app provides"
msgstr "Automation, AI, and access this app provides"
#. js-lingui-id: lXkUEV
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Availability"
msgstr "Availability"
@@ -2626,6 +2675,12 @@ msgstr "Because this workflow is not using a manual trigger, the form will not o
msgid "Before"
msgstr "Before"
#. js-lingui-id: +MqoSu
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Behind"
msgstr "Behind"
#. js-lingui-id: KYr9vA
#: src/pages/settings/ai/components/SettingsAiModelsTab.tsx
msgid "Best"
@@ -2921,6 +2976,7 @@ msgid "Can't scan? Copy the"
msgstr "Can't scan? Copy the"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDangerZone.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
@@ -3468,6 +3524,18 @@ msgstr "Command Menu"
msgid "command menu item"
msgstr "command menu item"
#. js-lingui-id: h5/VA5
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Command menu item"
msgstr "Command menu item"
#. js-lingui-id: yVBJNs
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Command menu items"
msgstr "Command menu items"
#. js-lingui-id: 9HKBNN
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "commands"
@@ -3510,7 +3578,9 @@ msgid "completed"
msgstr "completed"
#. js-lingui-id: qqWcBV
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Completed"
msgstr "Completed"
@@ -3525,6 +3595,16 @@ msgstr "Completed jobs kept for {completedDuration}, failed jobs kept for {faile
msgid "Component name"
msgstr "Component name"
#. js-lingui-id: BglnOD
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Computed at"
msgstr "Computed at"
#. js-lingui-id: PLbVix
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Conditional availability"
msgstr "Conditional availability"
#. js-lingui-id: 0CuAor
#: src/modules/workflow/workflow-steps/workflow-actions/if-else-action/components/WorkflowEditActionIfElseBody.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/filter-action/components/WorkflowEditActionFilterBody.tsx
@@ -3556,6 +3636,11 @@ msgstr "Config Variables"
msgid "Configuration"
msgstr "Configuration"
#. js-lingui-id: ais8E1
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Configuration of this command menu item"
msgstr "Configuration of this command menu item"
#. js-lingui-id: iAL9tI
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Configure"
@@ -3683,6 +3768,11 @@ msgstr "Confirm role update"
msgid "Confirm upgrade"
msgstr "Confirm upgrade"
#. js-lingui-id: mFiwDA
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Connect {providerDisplayName}"
msgstr "Connect {providerDisplayName}"
#. js-lingui-id: D8ATlr
#: src/modules/settings/accounts/components/SettingsNewAccountSection.tsx
msgid "Connect a new account to your workspace"
@@ -3708,6 +3798,16 @@ msgstr "Connect with Microsoft"
msgid "Connected accounts"
msgstr "Connected accounts"
#. js-lingui-id: 54WNJ6
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
msgid "connection provider"
msgstr "connection provider"
#. js-lingui-id: sbBqyy
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Connection providers"
msgstr "Connection providers"
#. js-lingui-id: W4Kgwq
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
msgid "Connection settings"
@@ -3789,6 +3889,7 @@ msgid "Context window"
msgstr "Context window"
#. js-lingui-id: xGVfLh
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
@@ -4191,6 +4292,7 @@ msgstr "Create, edit, and delete workspace views"
#. js-lingui-id: d+F6q9
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
@@ -4889,6 +4991,7 @@ msgstr "delete"
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -5196,14 +5299,25 @@ msgstr "Destroy Records on All Objects"
msgid "Detach"
msgstr "Detach"
#. js-lingui-id: crxufE
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Detail per workspace"
msgstr "Detail per workspace"
#. js-lingui-id: URmyfc
#: src/pages/settings/security/event-logs/utils/getColumnsForEventLogTable.ts
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/ai/components/RoutingDebugDisplay.tsx
msgid "Details"
msgstr "Details"
#. js-lingui-id: /RlqQE
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Detected application version running on this instance"
msgstr "Detected application version running on this instance"
#. js-lingui-id: 7aDnUb
#: src/pages/settings/applications/SettingsApplications.tsx
msgid "Developer"
@@ -6645,6 +6759,16 @@ msgstr "Export ({percentageValue}%)"
msgid "Export CSV"
msgstr "Export CSV"
#. js-lingui-id: leUV74
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
msgid "Exposes the function as a step in the workflow builder"
msgstr "Exposes the function as a step in the workflow builder"
#. js-lingui-id: Kh6fBo
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Exposes the function as a tool that AI agents can call"
msgstr "Exposes the function as a tool that AI agents can call"
#. js-lingui-id: 1JBTZV
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerCronForm.tsx
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionCronTriggerSection.tsx
@@ -6658,7 +6782,11 @@ msgstr "Extra Credits Used"
#. js-lingui-id: 7Bj3x9
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Failed"
msgstr "Failed"
@@ -6768,6 +6896,13 @@ msgstr "Failed to merge records. Please try again."
msgid "Failed to parse context: {contextValue}"
msgstr "Failed to parse context: {contextValue}"
#. js-lingui-id: 3m7+J/
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Failed to refresh upgrade status"
msgstr "Failed to refresh upgrade status"
#. js-lingui-id: 3YA1cX
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Failed to remove model"
@@ -7339,6 +7474,7 @@ msgstr "front component"
#. js-lingui-id: 7skoga
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Front component"
msgstr "Front component"
@@ -7647,6 +7783,11 @@ msgstr "Headless component"
msgid "Health"
msgstr "Health"
#. js-lingui-id: HyaXse
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
msgid "Health of the latest instance command"
msgstr "Health of the latest instance command"
#. js-lingui-id: I1IOmb
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Health Status"
@@ -7893,6 +8034,7 @@ msgstr "IAM role (instance profile)"
#. js-lingui-id: wwu18a
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Icon"
msgstr "Icon"
@@ -8125,6 +8267,15 @@ msgstr "Index"
msgid "Indexes"
msgstr "Indexes"
#. js-lingui-id: hG711D
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Inferred version"
msgstr "Inferred version"
#. js-lingui-id: CE+M2e
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -8220,6 +8371,13 @@ msgstr "Installed apps"
msgid "Installing..."
msgstr "Installing..."
#. js-lingui-id: x8uKc7
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Instance status"
msgstr "Instance status"
#. js-lingui-id: AwUsnG
#: src/pages/settings/data-model/constants/SettingsObjectTableMetadata.ts
msgid "Instances"
@@ -8593,6 +8751,17 @@ msgstr "Join {workspaceName} team"
msgid "JSON"
msgstr "JSON"
#. js-lingui-id: UpNpMK
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Just for me"
msgstr "Just for me"
#. js-lingui-id: JJOCq/
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Just me"
msgstr "Just me"
#. js-lingui-id: OGXtL8
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
@@ -8621,6 +8790,7 @@ msgid "Korean"
msgstr "Korean"
#. js-lingui-id: 87a/t/
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsText.tsx
@@ -8729,6 +8899,24 @@ msgstr "Last 90 days"
msgid "Last activity"
msgstr "Last activity"
#. js-lingui-id: IpCCj8
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command"
msgstr "Last command"
#. js-lingui-id: cdB4EG
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command result"
msgstr "Last command result"
#. js-lingui-id: wW6NCp
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last error"
msgstr "Last error"
#. js-lingui-id: c5zxSg
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "Last message"
@@ -8767,6 +8955,12 @@ msgstr "Last payment failed. Please contact your admin."
msgid "Last payment failed. Please update your billing details."
msgstr "Last payment failed. Please update your billing details."
#. js-lingui-id: C3yOz3
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last updated"
msgstr "Last updated"
#. js-lingui-id: wL3cK8
#: src/modules/settings/applications/components/SettingsApplicationAboutSidebar.tsx
#: src/modules/object-record/record-board/record-board-column/utils/getAggregateOperationShortLabel.ts
@@ -9210,6 +9404,12 @@ msgstr "Manage billing and subscriptions"
msgid "Manage billing information"
msgstr "Manage billing information"
#. js-lingui-id: GDz4fg
#. placeholder {0}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Manage connections used by this app to call {0}."
msgstr "Manage connections used by this app to call {0}."
#. js-lingui-id: U8dG4j
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
@@ -9738,6 +9938,15 @@ msgstr "My unlisted views"
msgid "mySkill"
msgstr "mySkill"
#. js-lingui-id: fj5byd
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "N/A"
msgstr "N/A"
#. js-lingui-id: 6YtxFj
#: src/testing/mock-data/tableData.ts
#: src/pages/settings/SettingsWorkspace.tsx
@@ -10045,6 +10254,7 @@ msgstr "Ninth"
#. js-lingui-id: 1UzENP
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelUpdateFieldsValueForObject.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelSeeFieldsValueForObject.tsx
@@ -10615,7 +10825,6 @@ msgid "No variables found"
msgstr "No variables found"
#. js-lingui-id: OCektF
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
msgid "No variables to set for this application"
msgstr "No variables to set for this application"
@@ -10630,6 +10839,16 @@ msgstr "No workflow runs yet"
msgid "No workflow versions yet"
msgstr "No workflow versions yet"
#. js-lingui-id: Q4dFjT
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace behind"
msgstr "No workspace behind"
#. js-lingui-id: apOMfI
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace failed"
msgstr "No workspace failed"
#. js-lingui-id: rPAZRd
#: src/modules/settings/lab/hooks/useLabPublicFeatureFlags.ts
msgid "No workspace selected"
@@ -10647,12 +10866,14 @@ msgstr "Node"
#. js-lingui-id: EdQY6l
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/BodyInput.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionEmailBase.tsx
#: src/modules/side-panel/pages/page-layout/utils/getDateGranularityLabel.ts
#: src/modules/side-panel/pages/page-layout/utils/getChartAxisNameDisplayOptions.ts
#: src/modules/side-panel/pages/page-layout/components/dropdown-content/ChartGroupByFieldSelectionDropdownContentBase.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectIdentifiersForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/accounts/components/SettingsAccountsMessageAutoCreationCard.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterMenuContent.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterAggregateOperationMenuItems.tsx
@@ -10698,6 +10919,11 @@ msgstr "Not Found"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationConfigTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Not set"
msgstr "Not set"
@@ -10718,6 +10944,11 @@ msgstr "Not shared by {notSharedByFullName}"
msgid "Not synced"
msgstr "Not synced"
#. js-lingui-id: VngD1z
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
msgid "Nothing to configure for this application"
msgstr "Nothing to configure for this application"
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
@@ -10795,6 +11026,11 @@ msgstr "Numbered list"
msgid "OAuth"
msgstr "OAuth"
#. js-lingui-id: IxKj9Y
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "OAuth 2.0"
msgstr "OAuth 2.0"
#. js-lingui-id: pNEViR
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
@@ -11038,6 +11274,11 @@ msgstr "Only the subject is shared"
msgid "Only the timestamp & participants will be shared with your team."
msgstr "Only the timestamp & participants will be shared with your team."
#. js-lingui-id: Lp+2YF
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Only you can use this credential."
msgstr "Only you can use this credential."
#. js-lingui-id: 1TNIig
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
@@ -11177,10 +11418,13 @@ msgstr "Organize"
#. js-lingui-id: /IX/7x
#: src/pages/settings/updates/SettingsUpdates.tsx
#: src/pages/settings/security/SettingsSecurity.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceChatThread.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
@@ -11552,6 +11796,7 @@ msgid "Pink"
msgstr "Pink"
#. js-lingui-id: kNiQp6
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
#: src/modules/command-menu-item/display/components/SidePanelCommandMenuItemDisplayPage.tsx
msgid "Pinned"
@@ -11856,6 +12101,7 @@ msgstr "Properties"
#. js-lingui-id: 8B+pY5
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Property"
msgstr "Property"
@@ -12095,12 +12341,18 @@ msgid "Recommended Models"
msgstr "Recommended Models"
#. js-lingui-id: gcoiFh
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountInsufficientPermissions.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountEmailAliases.tsx
msgid "Reconnect"
msgstr "Reconnect"
#. js-lingui-id: XsIxsL
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Reconnect needed"
msgstr "Reconnect needed"
#. js-lingui-id: hVS0gK
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsRecordPicker.tsx
msgid "record"
@@ -12213,6 +12465,13 @@ msgstr "Redirection URI"
msgid "Refresh"
msgstr "Refresh"
#. js-lingui-id: pTGa/J
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Refresh status"
msgstr "Refresh status"
#. js-lingui-id: vpZcGd
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
@@ -13666,6 +13925,11 @@ msgstr "Sharing link copied to clipboard"
msgid "Short"
msgstr "Short"
#. js-lingui-id: 2rtIq8
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Short label"
msgstr "Short label"
#. js-lingui-id: gWk8gY
#: src/modules/settings/data-model/fields/forms/components/SettingsDataModelFieldIconLabelForm.tsx
msgid "Should changing a field's label also change the API name?"
@@ -14086,9 +14350,11 @@ msgstr "State"
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
#: src/modules/settings/accounts/components/SettingsConnectedAccountsTableHeader.tsx
#: src/modules/ai/components/AiChatThreadFilterDropdownStatusMenu.tsx
@@ -15339,11 +15605,6 @@ msgstr "Triggers the function at regular intervals"
msgid "Triggers the function when a record changes"
msgstr "Triggers the function when a record changes"
#. js-lingui-id: OIRkpM
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Triggers the function when called by an AI agent or workflow"
msgstr "Triggers the function when called by an AI agent or workflow"
#. js-lingui-id: YdQqyX
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionHttpTriggerSection.tsx
msgid "Triggers the function with an HTTP request"
@@ -15596,12 +15857,17 @@ msgstr "Universal ID"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/layout/SettingsLayoutPageLayoutDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Universal identifier"
msgstr "Universal identifier"
#. js-lingui-id: Ef7StM
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusRightContainer.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminVersionContainer.tsx
msgid "Unknown"
msgstr "Unknown"
@@ -15634,6 +15900,11 @@ msgstr "Unknown file"
msgid "Unknown object"
msgstr "Unknown object"
#. js-lingui-id: m/o1+r
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesByHealthAccordion.tsx
msgid "Unknown workspace"
msgstr "Unknown workspace"
#. js-lingui-id: GQCXQS
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
@@ -15725,6 +15996,11 @@ msgstr "Untitled Workflow"
msgid "Unused credits from the previous period. Expired at the end of the period."
msgstr "Unused credits from the previous period. Expired at the end of the period."
#. js-lingui-id: j5CWO4
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
msgid "Up to date"
msgstr "Up to date"
#. js-lingui-id: hmc//6
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Upcoming execution time ({timeZone})"
@@ -15787,6 +16063,7 @@ msgstr "updated"
#. js-lingui-id: +b7T3G
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
msgid "Updated"
@@ -15813,11 +16090,39 @@ msgstr "Updates"
msgid "Upgrade"
msgstr "Upgrade"
#. js-lingui-id: IEtN5Y
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Upgrade health"
msgstr "Upgrade health"
#. js-lingui-id: 88ZkNH
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Upgrade health across all workspaces"
msgstr "Upgrade health across all workspaces"
#. js-lingui-id: +awaFr
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Upgrade health across instance and workspaces"
msgstr "Upgrade health across instance and workspaces"
#. js-lingui-id: 7aHRdp
#: src/modules/ai/components/AiChatCreditsExhaustedMessage.tsx
msgid "Upgrade Plan"
msgstr "Upgrade Plan"
#. js-lingui-id: 5UfQvA
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Upgrade Status"
msgstr "Upgrade Status"
#. js-lingui-id: /l59TO
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Upgrade status refreshed"
msgstr "Upgrade status refreshed"
#. js-lingui-id: pKCx2F
#: src/pages/settings/applications/tabs/SettingsApplicationDetailAboutTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
@@ -16105,6 +16410,7 @@ msgstr "Validity token refreshed successfully"
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/KeyValuePairInput.tsx
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/settings/logic-functions/components/tabs/SettingsLogicFunctionTabEnvironmentVariableTableRow.tsx
@@ -16647,6 +16953,12 @@ msgstr "Without Credit Card"
msgid "Worker"
msgstr "Worker"
#. js-lingui-id: eQ/LA/
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
#: src/modules/logic-functions/utils/getLogicFunctionTriggerLabel.ts
msgid "Workflow action"
msgstr "Workflow action"
#. js-lingui-id: Kqs5vQ
#: src/pages/settings/ai/components/SettingsAiAgentsTable.tsx
msgid "Workflow agents"
@@ -16705,6 +17017,8 @@ msgstr "Workflows"
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationConfigVariableDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -16769,6 +17083,11 @@ msgstr "Workspace Info"
msgid "Workspace Instructions"
msgstr "Workspace Instructions"
#. js-lingui-id: Ce7yfm
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Workspace lists by upgrade status"
msgstr "Workspace lists by upgrade status"
#. js-lingui-id: Y0Fj4S
#: src/pages/onboarding/CreateWorkspace.tsx
msgid "Workspace logo"
@@ -16789,6 +17108,17 @@ msgstr "Workspace members"
msgid "Workspace name"
msgstr "Workspace name"
#. js-lingui-id: PHF7zj
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Workspace shared"
msgstr "Workspace shared"
#. js-lingui-id: Smg70n
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Workspace upgrade health"
msgstr "Workspace upgrade health"
#. js-lingui-id: QZi0YX
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownVisibilityContent.tsx
msgid "Workspace views require manage views permission"
@@ -16799,6 +17129,13 @@ msgstr "Workspace views require manage views permission"
msgid "Workspaces"
msgstr "Workspaces"
#. js-lingui-id: 33fb3H
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Workspaces status"
msgstr "Workspaces status"
#. js-lingui-id: QPsQMb
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
msgid "Would you like to remove {recordIndexRecordGroupSort} group sorting?"
@@ -16894,6 +17231,7 @@ msgstr "yes"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/pages/settings/ai/components/SettingsToolParameterTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
+344 -6
View File
@@ -146,6 +146,12 @@ msgstr "{0, plural, one {{years} año} other {{years} años}}"
msgid "{0, plural, one {# Object} other {# Objects}}"
msgstr "{0, plural, one {# Objeto} other {# Objetos}}"
#. js-lingui-id: 8ob0vY
#. placeholder {0}: failedCount + behindCount
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{0, plural, one {# workspace failed or behind} other {# workspaces failed or behind}}"
msgstr ""
#. js-lingui-id: WTc9VY
#. placeholder {0}: restriction.fieldNames.length
#: src/modules/page-layout/widgets/components/PageLayoutWidgetForbiddenDisplay.tsx
@@ -204,6 +210,12 @@ msgstr ""
msgid "{0} widgets"
msgstr ""
#. js-lingui-id: xTgz1F
#. placeholder {1}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "{1} OAuth is not yet set up by your server administrator. They need to fill in the OAuth client ID and secret on the application registration before you can add a connection."
msgstr ""
#. js-lingui-id: qdQhzv
#: src/modules/views/advanced-filter-chip/components/AdvancedFilterChip.tsx
msgid "{advancedFilterCount, plural, one {{advancedFilterCount} advanced rule} other {{advancedFilterCount} advanced rules}}"
@@ -229,6 +241,12 @@ msgstr "{aggregateLabel} de {fieldLabel}"
msgid "{appName} wants to access your account"
msgstr "{appName} quiere acceder a tu cuenta"
#. js-lingui-id: y9covz
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{behindCount, plural, one {# workspace behind} other {# workspaces behind}}"
msgstr ""
#. js-lingui-id: SU5Crx
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "{cachedPercent}% cached"
@@ -291,6 +309,12 @@ msgstr "Prueba de {duration} días"
msgid "{eventAction} a related {eventObject}"
msgstr "{eventAction} un {eventObject} relacionado"
#. js-lingui-id: nRKZKb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{failedCount, plural, one {# workspace failed} other {# workspaces failed}}"
msgstr ""
#. js-lingui-id: POhzPf
#: src/modules/ai/hooks/useAiChatFileUpload.ts
msgid "{failedCount} file(s) failed to upload"
@@ -443,6 +467,11 @@ msgstr "{roleLabel} no puede {humanReadableAction} registros de {objectLabel}"
msgid "{roleTargetName} will be assigned to the \"{newRoleName}\" role."
msgstr "{roleTargetName} será asignado al rol \"{newRoleName}\"."
#. js-lingui-id: UsskHt
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "{scopeCount} scopes"
msgstr ""
#. js-lingui-id: kvVMdH
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
msgid "{selectedCount, plural, one {Delete {selectedCount} Job} other {Delete {selectedCount} Jobs}}"
@@ -548,6 +577,11 @@ msgstr "0 */1 * * *"
msgid "1 day"
msgstr "1 día"
#. js-lingui-id: Mkh9C8
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 scope"
msgstr ""
#. js-lingui-id: W/OU4i
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 tab"
@@ -992,6 +1026,11 @@ msgstr "Agregar Bloque"
msgid "Add CC"
msgstr "Añadir CC"
#. js-lingui-id: Rop0cs
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Add connection"
msgstr ""
#. js-lingui-id: RVp8im
#: src/modules/settings/admin-panel/ai/components/SettingsAdminAI.tsx
msgid "Add custom endpoints, private gateways, or additional regions."
@@ -1334,7 +1373,10 @@ msgid "Admin Panel - General"
msgstr ""
#. js-lingui-id: v/zjIb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
msgid "Admin Panel - Health"
msgstr ""
@@ -1938,6 +1980,11 @@ msgstr ""
msgid "Any field"
msgstr "Cualquier campo"
#. js-lingui-id: SI4CMD
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Anyone in this workspace can use this credential."
msgstr ""
#. js-lingui-id: xJR+Wq
#: src/pages/settings/domains/SettingsDomains.tsx
msgid "Anyone with an email address at these domains is allowed to sign up for this workspace."
@@ -2128,6 +2175,7 @@ msgstr "Aplicación actualizada con éxito."
#: src/pages/settings/applications/SettingsApplications.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Applications"
@@ -2531,6 +2579,7 @@ msgid "Automation, AI, and access this app provides"
msgstr ""
#. js-lingui-id: lXkUEV
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Availability"
msgstr "Disponibilidad"
@@ -2631,6 +2680,12 @@ msgstr "Dado que este flujo de trabajo no utiliza un desencadenador manual, el f
msgid "Before"
msgstr "Antes"
#. js-lingui-id: +MqoSu
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Behind"
msgstr ""
#. js-lingui-id: KYr9vA
#: src/pages/settings/ai/components/SettingsAiModelsTab.tsx
msgid "Best"
@@ -2926,6 +2981,7 @@ msgid "Can't scan? Copy the"
msgstr "¿No puedes escanear? Copia el"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDangerZone.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
@@ -3473,6 +3529,18 @@ msgstr "Menú de Comandos"
msgid "command menu item"
msgstr "elemento del menú de comandos"
#. js-lingui-id: h5/VA5
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Command menu item"
msgstr ""
#. js-lingui-id: yVBJNs
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Command menu items"
msgstr ""
#. js-lingui-id: 9HKBNN
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "commands"
@@ -3515,7 +3583,9 @@ msgid "completed"
msgstr "completado"
#. js-lingui-id: qqWcBV
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Completed"
msgstr "Completado"
@@ -3530,6 +3600,16 @@ msgstr "Trabajos completados guardados por {completedDuration}, trabajos fallido
msgid "Component name"
msgstr ""
#. js-lingui-id: BglnOD
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Computed at"
msgstr ""
#. js-lingui-id: PLbVix
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Conditional availability"
msgstr ""
#. js-lingui-id: 0CuAor
#: src/modules/workflow/workflow-steps/workflow-actions/if-else-action/components/WorkflowEditActionIfElseBody.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/filter-action/components/WorkflowEditActionFilterBody.tsx
@@ -3561,6 +3641,11 @@ msgstr "Variables de configuración"
msgid "Configuration"
msgstr "Configuración"
#. js-lingui-id: ais8E1
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Configuration of this command menu item"
msgstr ""
#. js-lingui-id: iAL9tI
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Configure"
@@ -3688,6 +3773,11 @@ msgstr "Confirmar la actualización del rol"
msgid "Confirm upgrade"
msgstr "Confirmar actualización"
#. js-lingui-id: mFiwDA
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Connect {providerDisplayName}"
msgstr ""
#. js-lingui-id: D8ATlr
#: src/modules/settings/accounts/components/SettingsNewAccountSection.tsx
msgid "Connect a new account to your workspace"
@@ -3713,6 +3803,16 @@ msgstr "Conectar con Microsoft"
msgid "Connected accounts"
msgstr "Cuentas conectadas"
#. js-lingui-id: 54WNJ6
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
msgid "connection provider"
msgstr ""
#. js-lingui-id: sbBqyy
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Connection providers"
msgstr ""
#. js-lingui-id: W4Kgwq
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
msgid "Connection settings"
@@ -3794,6 +3894,7 @@ msgid "Context window"
msgstr "Ventana de contexto"
#. js-lingui-id: xGVfLh
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
@@ -4196,6 +4297,7 @@ msgstr "Crear, editar y eliminar vistas del espacio de trabajo"
#. js-lingui-id: d+F6q9
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
@@ -4894,6 +4996,7 @@ msgstr "eliminar"
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -5201,14 +5304,25 @@ msgstr "Destruir registros en todos los objetos"
msgid "Detach"
msgstr "Desvincular"
#. js-lingui-id: crxufE
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Detail per workspace"
msgstr ""
#. js-lingui-id: URmyfc
#: src/pages/settings/security/event-logs/utils/getColumnsForEventLogTable.ts
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/ai/components/RoutingDebugDisplay.tsx
msgid "Details"
msgstr "Detalles"
#. js-lingui-id: /RlqQE
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Detected application version running on this instance"
msgstr ""
#. js-lingui-id: 7aDnUb
#: src/pages/settings/applications/SettingsApplications.tsx
msgid "Developer"
@@ -6650,6 +6764,16 @@ msgstr "Exportar ({percentageValue}%)"
msgid "Export CSV"
msgstr "Exportar CSV"
#. js-lingui-id: leUV74
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
msgid "Exposes the function as a step in the workflow builder"
msgstr ""
#. js-lingui-id: Kh6fBo
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Exposes the function as a tool that AI agents can call"
msgstr ""
#. js-lingui-id: 1JBTZV
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerCronForm.tsx
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionCronTriggerSection.tsx
@@ -6663,7 +6787,11 @@ msgstr "Créditos Extra Usados"
#. js-lingui-id: 7Bj3x9
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Failed"
msgstr "Fallido"
@@ -6773,6 +6901,13 @@ msgstr "No se pudieron fusionar los registros. Inténtalo de nuevo."
msgid "Failed to parse context: {contextValue}"
msgstr "No se pudo analizar el contexto: {contextValue}"
#. js-lingui-id: 3m7+J/
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Failed to refresh upgrade status"
msgstr ""
#. js-lingui-id: 3YA1cX
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Failed to remove model"
@@ -7344,6 +7479,7 @@ msgstr "componente de frontend"
#. js-lingui-id: 7skoga
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Front component"
msgstr ""
@@ -7652,6 +7788,11 @@ msgstr ""
msgid "Health"
msgstr "Salud"
#. js-lingui-id: HyaXse
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
msgid "Health of the latest instance command"
msgstr ""
#. js-lingui-id: I1IOmb
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Health Status"
@@ -7875,6 +8016,7 @@ msgstr ""
#. js-lingui-id: wwu18a
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Icon"
msgstr "Ícono"
@@ -8107,6 +8249,15 @@ msgstr "Índice"
msgid "Indexes"
msgstr "Índices"
#. js-lingui-id: hG711D
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Inferred version"
msgstr ""
#. js-lingui-id: CE+M2e
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -8202,6 +8353,13 @@ msgstr ""
msgid "Installing..."
msgstr "Instalando..."
#. js-lingui-id: x8uKc7
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Instance status"
msgstr ""
#. js-lingui-id: AwUsnG
#: src/pages/settings/data-model/constants/SettingsObjectTableMetadata.ts
msgid "Instances"
@@ -8575,6 +8733,17 @@ msgstr "Únete al equipo de {workspaceName}"
msgid "JSON"
msgstr ""
#. js-lingui-id: UpNpMK
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Just for me"
msgstr ""
#. js-lingui-id: JJOCq/
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Just me"
msgstr ""
#. js-lingui-id: OGXtL8
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
@@ -8603,6 +8772,7 @@ msgid "Korean"
msgstr "Coreano"
#. js-lingui-id: 87a/t/
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsText.tsx
@@ -8711,6 +8881,24 @@ msgstr "Últimos 90 días"
msgid "Last activity"
msgstr ""
#. js-lingui-id: IpCCj8
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command"
msgstr ""
#. js-lingui-id: cdB4EG
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command result"
msgstr ""
#. js-lingui-id: wW6NCp
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last error"
msgstr ""
#. js-lingui-id: c5zxSg
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "Last message"
@@ -8749,6 +8937,12 @@ msgstr "El último pago falló. Por favor, contacte a su administrador."
msgid "Last payment failed. Please update your billing details."
msgstr "El último pago falló. Por favor, actualice sus datos de facturación."
#. js-lingui-id: C3yOz3
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last updated"
msgstr ""
#. js-lingui-id: wL3cK8
#: src/modules/settings/applications/components/SettingsApplicationAboutSidebar.tsx
#: src/modules/object-record/record-board/record-board-column/utils/getAggregateOperationShortLabel.ts
@@ -9192,6 +9386,12 @@ msgstr "Administrar a facturación y suscripciones"
msgid "Manage billing information"
msgstr "Administrar la información de facturación"
#. js-lingui-id: GDz4fg
#. placeholder {0}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Manage connections used by this app to call {0}."
msgstr ""
#. js-lingui-id: U8dG4j
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
@@ -9720,6 +9920,15 @@ msgstr "Mis vistas no listadas"
msgid "mySkill"
msgstr "mySkill"
#. js-lingui-id: fj5byd
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "N/A"
msgstr ""
#. js-lingui-id: 6YtxFj
#: src/testing/mock-data/tableData.ts
#: src/pages/settings/SettingsWorkspace.tsx
@@ -10027,6 +10236,7 @@ msgstr "Noveno"
#. js-lingui-id: 1UzENP
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelUpdateFieldsValueForObject.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelSeeFieldsValueForObject.tsx
@@ -10597,7 +10807,6 @@ msgid "No variables found"
msgstr "No se encontraron variables"
#. js-lingui-id: OCektF
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
msgid "No variables to set for this application"
msgstr ""
@@ -10612,6 +10821,16 @@ msgstr "Aún no hay ejecuciones de flujo de trabajo"
msgid "No workflow versions yet"
msgstr "Aún no hay versiones de flujo de trabajo"
#. js-lingui-id: Q4dFjT
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace behind"
msgstr ""
#. js-lingui-id: apOMfI
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace failed"
msgstr ""
#. js-lingui-id: rPAZRd
#: src/modules/settings/lab/hooks/useLabPublicFeatureFlags.ts
msgid "No workspace selected"
@@ -10629,12 +10848,14 @@ msgstr "Nodo"
#. js-lingui-id: EdQY6l
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/BodyInput.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionEmailBase.tsx
#: src/modules/side-panel/pages/page-layout/utils/getDateGranularityLabel.ts
#: src/modules/side-panel/pages/page-layout/utils/getChartAxisNameDisplayOptions.ts
#: src/modules/side-panel/pages/page-layout/components/dropdown-content/ChartGroupByFieldSelectionDropdownContentBase.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectIdentifiersForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/accounts/components/SettingsAccountsMessageAutoCreationCard.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterMenuContent.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterAggregateOperationMenuItems.tsx
@@ -10680,6 +10901,11 @@ msgstr "No encontrado"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationConfigTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Not set"
msgstr "No establecido"
@@ -10700,6 +10926,11 @@ msgstr "No compartido por {notSharedByFullName}"
msgid "Not synced"
msgstr "No sincronizado"
#. js-lingui-id: VngD1z
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
msgid "Nothing to configure for this application"
msgstr ""
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
@@ -10777,6 +11008,11 @@ msgstr "Lista numerada"
msgid "OAuth"
msgstr "OAuth"
#. js-lingui-id: IxKj9Y
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "OAuth 2.0"
msgstr ""
#. js-lingui-id: pNEViR
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
@@ -11020,6 +11256,11 @@ msgstr "Solo se comparte el asunto"
msgid "Only the timestamp & participants will be shared with your team."
msgstr "Solo la marca de tiempo y los participantes se compartirán con tu equipo."
#. js-lingui-id: Lp+2YF
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Only you can use this credential."
msgstr ""
#. js-lingui-id: 1TNIig
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
@@ -11159,10 +11400,13 @@ msgstr "Organizar"
#. js-lingui-id: /IX/7x
#: src/pages/settings/updates/SettingsUpdates.tsx
#: src/pages/settings/security/SettingsSecurity.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceChatThread.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
@@ -11534,6 +11778,7 @@ msgid "Pink"
msgstr "Rosa"
#. js-lingui-id: kNiQp6
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
#: src/modules/command-menu-item/display/components/SidePanelCommandMenuItemDisplayPage.tsx
msgid "Pinned"
@@ -11838,6 +12083,7 @@ msgstr "Propiedades"
#. js-lingui-id: 8B+pY5
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Property"
msgstr ""
@@ -12077,12 +12323,18 @@ msgid "Recommended Models"
msgstr "Modelos recomendados"
#. js-lingui-id: gcoiFh
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountInsufficientPermissions.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountEmailAliases.tsx
msgid "Reconnect"
msgstr "Reconectar"
#. js-lingui-id: XsIxsL
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Reconnect needed"
msgstr ""
#. js-lingui-id: hVS0gK
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsRecordPicker.tsx
msgid "record"
@@ -12195,6 +12447,13 @@ msgstr "URI de Redirección"
msgid "Refresh"
msgstr "Actualizar"
#. js-lingui-id: pTGa/J
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Refresh status"
msgstr ""
#. js-lingui-id: vpZcGd
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
@@ -13648,6 +13907,11 @@ msgstr ""
msgid "Short"
msgstr "Corto"
#. js-lingui-id: 2rtIq8
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Short label"
msgstr ""
#. js-lingui-id: gWk8gY
#: src/modules/settings/data-model/fields/forms/components/SettingsDataModelFieldIconLabelForm.tsx
msgid "Should changing a field's label also change the API name?"
@@ -14068,9 +14332,11 @@ msgstr "Estado"
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
#: src/modules/settings/accounts/components/SettingsConnectedAccountsTableHeader.tsx
#: src/modules/ai/components/AiChatThreadFilterDropdownStatusMenu.tsx
@@ -15291,11 +15557,6 @@ msgstr "Activa la función a intervalos regulares"
msgid "Triggers the function when a record changes"
msgstr ""
#. js-lingui-id: OIRkpM
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Triggers the function when called by an AI agent or workflow"
msgstr ""
#. js-lingui-id: YdQqyX
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionHttpTriggerSection.tsx
msgid "Triggers the function with an HTTP request"
@@ -15548,12 +15809,17 @@ msgstr "ID universal"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/layout/SettingsLayoutPageLayoutDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Universal identifier"
msgstr ""
#. js-lingui-id: Ef7StM
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusRightContainer.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminVersionContainer.tsx
msgid "Unknown"
msgstr "Desconocido"
@@ -15586,6 +15852,11 @@ msgstr "Archivo desconocido"
msgid "Unknown object"
msgstr "Objeto desconocido"
#. js-lingui-id: m/o1+r
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesByHealthAccordion.tsx
msgid "Unknown workspace"
msgstr ""
#. js-lingui-id: GQCXQS
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
@@ -15677,6 +15948,11 @@ msgstr "Flujo de trabajo sin título"
msgid "Unused credits from the previous period. Expired at the end of the period."
msgstr ""
#. js-lingui-id: j5CWO4
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
msgid "Up to date"
msgstr ""
#. js-lingui-id: hmc//6
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Upcoming execution time ({timeZone})"
@@ -15739,6 +16015,7 @@ msgstr "actualizado"
#. js-lingui-id: +b7T3G
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
msgid "Updated"
@@ -15765,11 +16042,39 @@ msgstr "Actualizaciones"
msgid "Upgrade"
msgstr "Actualizar"
#. js-lingui-id: IEtN5Y
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Upgrade health"
msgstr ""
#. js-lingui-id: 88ZkNH
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Upgrade health across all workspaces"
msgstr ""
#. js-lingui-id: +awaFr
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Upgrade health across instance and workspaces"
msgstr ""
#. js-lingui-id: 7aHRdp
#: src/modules/ai/components/AiChatCreditsExhaustedMessage.tsx
msgid "Upgrade Plan"
msgstr "Actualizar plan"
#. js-lingui-id: 5UfQvA
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Upgrade Status"
msgstr ""
#. js-lingui-id: /l59TO
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Upgrade status refreshed"
msgstr ""
#. js-lingui-id: pKCx2F
#: src/pages/settings/applications/tabs/SettingsApplicationDetailAboutTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
@@ -16057,6 +16362,7 @@ msgstr "Token de validez actualizado correctamente"
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/KeyValuePairInput.tsx
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/settings/logic-functions/components/tabs/SettingsLogicFunctionTabEnvironmentVariableTableRow.tsx
@@ -16599,6 +16905,12 @@ msgstr "Sin tarjeta de crédito"
msgid "Worker"
msgstr "Trabajador"
#. js-lingui-id: eQ/LA/
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
#: src/modules/logic-functions/utils/getLogicFunctionTriggerLabel.ts
msgid "Workflow action"
msgstr ""
#. js-lingui-id: Kqs5vQ
#: src/pages/settings/ai/components/SettingsAiAgentsTable.tsx
msgid "Workflow agents"
@@ -16657,6 +16969,8 @@ msgstr "Workflows"
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationConfigVariableDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -16721,6 +17035,11 @@ msgstr "Información del espacio de trabajo"
msgid "Workspace Instructions"
msgstr "Instrucciones del espacio de trabajo"
#. js-lingui-id: Ce7yfm
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Workspace lists by upgrade status"
msgstr ""
#. js-lingui-id: Y0Fj4S
#: src/pages/onboarding/CreateWorkspace.tsx
msgid "Workspace logo"
@@ -16741,6 +17060,17 @@ msgstr ""
msgid "Workspace name"
msgstr "Nombre del espacio de trabajo"
#. js-lingui-id: PHF7zj
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Workspace shared"
msgstr ""
#. js-lingui-id: Smg70n
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Workspace upgrade health"
msgstr ""
#. js-lingui-id: QZi0YX
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownVisibilityContent.tsx
msgid "Workspace views require manage views permission"
@@ -16751,6 +17081,13 @@ msgstr "Las vistas del espacio de trabajo requieren permiso para administrar vis
msgid "Workspaces"
msgstr "Espacios de trabajo"
#. js-lingui-id: 33fb3H
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Workspaces status"
msgstr ""
#. js-lingui-id: QPsQMb
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
msgid "Would you like to remove {recordIndexRecordGroupSort} group sorting?"
@@ -16846,6 +17183,7 @@ msgstr "sí"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/pages/settings/ai/components/SettingsToolParameterTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
+344 -6
View File
@@ -146,6 +146,12 @@ msgstr "{0, plural, one {{years} vuosi} other {{years} vuotta}}"
msgid "{0, plural, one {# Object} other {# Objects}}"
msgstr "{0, plural, one {# Kohde} other {# Kohteita}}"
#. js-lingui-id: 8ob0vY
#. placeholder {0}: failedCount + behindCount
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{0, plural, one {# workspace failed or behind} other {# workspaces failed or behind}}"
msgstr ""
#. js-lingui-id: WTc9VY
#. placeholder {0}: restriction.fieldNames.length
#: src/modules/page-layout/widgets/components/PageLayoutWidgetForbiddenDisplay.tsx
@@ -204,6 +210,12 @@ msgstr ""
msgid "{0} widgets"
msgstr ""
#. js-lingui-id: xTgz1F
#. placeholder {1}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "{1} OAuth is not yet set up by your server administrator. They need to fill in the OAuth client ID and secret on the application registration before you can add a connection."
msgstr ""
#. js-lingui-id: qdQhzv
#: src/modules/views/advanced-filter-chip/components/AdvancedFilterChip.tsx
msgid "{advancedFilterCount, plural, one {{advancedFilterCount} advanced rule} other {{advancedFilterCount} advanced rules}}"
@@ -229,6 +241,12 @@ msgstr "{aggregateLabel} {fieldLabel} määrä"
msgid "{appName} wants to access your account"
msgstr "{appName} haluaa käyttää tiliäsi"
#. js-lingui-id: y9covz
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{behindCount, plural, one {# workspace behind} other {# workspaces behind}}"
msgstr ""
#. js-lingui-id: SU5Crx
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "{cachedPercent}% cached"
@@ -291,6 +309,12 @@ msgstr "{duration} päivän kokeilu"
msgid "{eventAction} a related {eventObject}"
msgstr "{eventAction} siihen liittyvän {eventObject}"
#. js-lingui-id: nRKZKb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{failedCount, plural, one {# workspace failed} other {# workspaces failed}}"
msgstr ""
#. js-lingui-id: POhzPf
#: src/modules/ai/hooks/useAiChatFileUpload.ts
msgid "{failedCount} file(s) failed to upload"
@@ -443,6 +467,11 @@ msgstr "{roleLabel} ei voi {humanReadableAction} {objectLabel} tietoja"
msgid "{roleTargetName} will be assigned to the \"{newRoleName}\" role."
msgstr "{roleTargetName} liitetään \"{newRoleName}\" -rooliin."
#. js-lingui-id: UsskHt
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "{scopeCount} scopes"
msgstr ""
#. js-lingui-id: kvVMdH
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
msgid "{selectedCount, plural, one {Delete {selectedCount} Job} other {Delete {selectedCount} Jobs}}"
@@ -548,6 +577,11 @@ msgstr "0 */1 * * *"
msgid "1 day"
msgstr "1 päivä"
#. js-lingui-id: Mkh9C8
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 scope"
msgstr ""
#. js-lingui-id: W/OU4i
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 tab"
@@ -992,6 +1026,11 @@ msgstr "Lisää lohko"
msgid "Add CC"
msgstr "Lisää kopio"
#. js-lingui-id: Rop0cs
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Add connection"
msgstr ""
#. js-lingui-id: RVp8im
#: src/modules/settings/admin-panel/ai/components/SettingsAdminAI.tsx
msgid "Add custom endpoints, private gateways, or additional regions."
@@ -1334,7 +1373,10 @@ msgid "Admin Panel - General"
msgstr ""
#. js-lingui-id: v/zjIb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
msgid "Admin Panel - Health"
msgstr ""
@@ -1938,6 +1980,11 @@ msgstr ""
msgid "Any field"
msgstr "Mikä tahansa kenttä"
#. js-lingui-id: SI4CMD
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Anyone in this workspace can use this credential."
msgstr ""
#. js-lingui-id: xJR+Wq
#: src/pages/settings/domains/SettingsDomains.tsx
msgid "Anyone with an email address at these domains is allowed to sign up for this workspace."
@@ -2128,6 +2175,7 @@ msgstr "Sovellus päivitetty onnistuneesti."
#: src/pages/settings/applications/SettingsApplications.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Applications"
@@ -2531,6 +2579,7 @@ msgid "Automation, AI, and access this app provides"
msgstr ""
#. js-lingui-id: lXkUEV
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Availability"
msgstr "Saatavuus"
@@ -2631,6 +2680,12 @@ msgstr "Koska tämä työnkulku ei käytä manuaalista käynnistystä, lomake ei
msgid "Before"
msgstr "Ennen"
#. js-lingui-id: +MqoSu
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Behind"
msgstr ""
#. js-lingui-id: KYr9vA
#: src/pages/settings/ai/components/SettingsAiModelsTab.tsx
msgid "Best"
@@ -2926,6 +2981,7 @@ msgid "Can't scan? Copy the"
msgstr "Et voi skannata? Kopioi"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDangerZone.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
@@ -3473,6 +3529,18 @@ msgstr "Komentovalikko"
msgid "command menu item"
msgstr "komentovalikon valikkokohta"
#. js-lingui-id: h5/VA5
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Command menu item"
msgstr ""
#. js-lingui-id: yVBJNs
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Command menu items"
msgstr ""
#. js-lingui-id: 9HKBNN
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "commands"
@@ -3515,7 +3583,9 @@ msgid "completed"
msgstr "valmis"
#. js-lingui-id: qqWcBV
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Completed"
msgstr "Valmis"
@@ -3530,6 +3600,16 @@ msgstr "Valmiit työt säilytetään {completedDuration}, epäonnistuneet työt
msgid "Component name"
msgstr ""
#. js-lingui-id: BglnOD
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Computed at"
msgstr ""
#. js-lingui-id: PLbVix
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Conditional availability"
msgstr ""
#. js-lingui-id: 0CuAor
#: src/modules/workflow/workflow-steps/workflow-actions/if-else-action/components/WorkflowEditActionIfElseBody.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/filter-action/components/WorkflowEditActionFilterBody.tsx
@@ -3561,6 +3641,11 @@ msgstr "Määritysmuuttujat"
msgid "Configuration"
msgstr "Kokoonpano"
#. js-lingui-id: ais8E1
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Configuration of this command menu item"
msgstr ""
#. js-lingui-id: iAL9tI
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Configure"
@@ -3688,6 +3773,11 @@ msgstr "Vahvista roolin päivitys"
msgid "Confirm upgrade"
msgstr "Vahvista päivitys"
#. js-lingui-id: mFiwDA
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Connect {providerDisplayName}"
msgstr ""
#. js-lingui-id: D8ATlr
#: src/modules/settings/accounts/components/SettingsNewAccountSection.tsx
msgid "Connect a new account to your workspace"
@@ -3713,6 +3803,16 @@ msgstr "Yhdistä Microsoftiin"
msgid "Connected accounts"
msgstr "Yhdistetyt tilit"
#. js-lingui-id: 54WNJ6
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
msgid "connection provider"
msgstr ""
#. js-lingui-id: sbBqyy
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Connection providers"
msgstr ""
#. js-lingui-id: W4Kgwq
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
msgid "Connection settings"
@@ -3794,6 +3894,7 @@ msgid "Context window"
msgstr "Konteksti-ikkuna"
#. js-lingui-id: xGVfLh
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
@@ -4196,6 +4297,7 @@ msgstr "Luo, muokkaa ja poista työtilan näkymiä"
#. js-lingui-id: d+F6q9
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
@@ -4894,6 +4996,7 @@ msgstr "poista"
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -5201,14 +5304,25 @@ msgstr "Tuhota tietueet kaikista objekteista"
msgid "Detach"
msgstr "Irrota"
#. js-lingui-id: crxufE
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Detail per workspace"
msgstr ""
#. js-lingui-id: URmyfc
#: src/pages/settings/security/event-logs/utils/getColumnsForEventLogTable.ts
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/ai/components/RoutingDebugDisplay.tsx
msgid "Details"
msgstr "Tiedot"
#. js-lingui-id: /RlqQE
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Detected application version running on this instance"
msgstr ""
#. js-lingui-id: 7aDnUb
#: src/pages/settings/applications/SettingsApplications.tsx
msgid "Developer"
@@ -6650,6 +6764,16 @@ msgstr "Vie ({percentageValue} %)"
msgid "Export CSV"
msgstr "Vie CSV"
#. js-lingui-id: leUV74
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
msgid "Exposes the function as a step in the workflow builder"
msgstr ""
#. js-lingui-id: Kh6fBo
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Exposes the function as a tool that AI agents can call"
msgstr ""
#. js-lingui-id: 1JBTZV
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerCronForm.tsx
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionCronTriggerSection.tsx
@@ -6663,7 +6787,11 @@ msgstr "Käytetyt ylimääräiset krediitit"
#. js-lingui-id: 7Bj3x9
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Failed"
msgstr "Epäonnistui"
@@ -6773,6 +6901,13 @@ msgstr "Tietueiden yhdistäminen epäonnistui. Yritä uudelleen."
msgid "Failed to parse context: {contextValue}"
msgstr "Kontekstin jäsentäminen epäonnistui: {contextValue}"
#. js-lingui-id: 3m7+J/
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Failed to refresh upgrade status"
msgstr ""
#. js-lingui-id: 3YA1cX
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Failed to remove model"
@@ -7344,6 +7479,7 @@ msgstr "käyttöliittymäkomponentti"
#. js-lingui-id: 7skoga
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Front component"
msgstr ""
@@ -7652,6 +7788,11 @@ msgstr ""
msgid "Health"
msgstr "Terveys"
#. js-lingui-id: HyaXse
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
msgid "Health of the latest instance command"
msgstr ""
#. js-lingui-id: I1IOmb
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Health Status"
@@ -7875,6 +8016,7 @@ msgstr ""
#. js-lingui-id: wwu18a
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Icon"
msgstr "Kuvake"
@@ -8107,6 +8249,15 @@ msgstr "Indeksit"
msgid "Indexes"
msgstr "Indeksit"
#. js-lingui-id: hG711D
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Inferred version"
msgstr ""
#. js-lingui-id: CE+M2e
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -8202,6 +8353,13 @@ msgstr ""
msgid "Installing..."
msgstr "Asennetaan..."
#. js-lingui-id: x8uKc7
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Instance status"
msgstr ""
#. js-lingui-id: AwUsnG
#: src/pages/settings/data-model/constants/SettingsObjectTableMetadata.ts
msgid "Instances"
@@ -8575,6 +8733,17 @@ msgstr "Liity {workspaceName} -tiimiin"
msgid "JSON"
msgstr ""
#. js-lingui-id: UpNpMK
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Just for me"
msgstr ""
#. js-lingui-id: JJOCq/
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Just me"
msgstr ""
#. js-lingui-id: OGXtL8
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
@@ -8603,6 +8772,7 @@ msgid "Korean"
msgstr "Korea"
#. js-lingui-id: 87a/t/
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsText.tsx
@@ -8711,6 +8881,24 @@ msgstr "Viimeiset 90 päivää"
msgid "Last activity"
msgstr ""
#. js-lingui-id: IpCCj8
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command"
msgstr ""
#. js-lingui-id: cdB4EG
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command result"
msgstr ""
#. js-lingui-id: wW6NCp
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last error"
msgstr ""
#. js-lingui-id: c5zxSg
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "Last message"
@@ -8749,6 +8937,12 @@ msgstr "Viimeinen maksu epäonnistui. Ota yhteyttä ylläpitäjääsi."
msgid "Last payment failed. Please update your billing details."
msgstr "Viimeinen maksu epäonnistui. Päivitä laskutustietosi."
#. js-lingui-id: C3yOz3
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last updated"
msgstr ""
#. js-lingui-id: wL3cK8
#: src/modules/settings/applications/components/SettingsApplicationAboutSidebar.tsx
#: src/modules/object-record/record-board/record-board-column/utils/getAggregateOperationShortLabel.ts
@@ -9192,6 +9386,12 @@ msgstr "Hallinnoi laskutusta ja tilauksia"
msgid "Manage billing information"
msgstr "Hallinnoi laskutustietoja"
#. js-lingui-id: GDz4fg
#. placeholder {0}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Manage connections used by this app to call {0}."
msgstr ""
#. js-lingui-id: U8dG4j
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
@@ -9720,6 +9920,15 @@ msgstr "Omat listaamattomat näkymät"
msgid "mySkill"
msgstr "mySkill"
#. js-lingui-id: fj5byd
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "N/A"
msgstr ""
#. js-lingui-id: 6YtxFj
#: src/testing/mock-data/tableData.ts
#: src/pages/settings/SettingsWorkspace.tsx
@@ -10027,6 +10236,7 @@ msgstr "Yhdeksäs"
#. js-lingui-id: 1UzENP
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelUpdateFieldsValueForObject.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelSeeFieldsValueForObject.tsx
@@ -10597,7 +10807,6 @@ msgid "No variables found"
msgstr "Muuttujia ei löydy"
#. js-lingui-id: OCektF
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
msgid "No variables to set for this application"
msgstr ""
@@ -10612,6 +10821,16 @@ msgstr "Ei työnkulun suorituksia vielä"
msgid "No workflow versions yet"
msgstr "Ei työnkulun versioita vielä"
#. js-lingui-id: Q4dFjT
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace behind"
msgstr ""
#. js-lingui-id: apOMfI
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace failed"
msgstr ""
#. js-lingui-id: rPAZRd
#: src/modules/settings/lab/hooks/useLabPublicFeatureFlags.ts
msgid "No workspace selected"
@@ -10629,12 +10848,14 @@ msgstr "Solmu"
#. js-lingui-id: EdQY6l
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/BodyInput.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionEmailBase.tsx
#: src/modules/side-panel/pages/page-layout/utils/getDateGranularityLabel.ts
#: src/modules/side-panel/pages/page-layout/utils/getChartAxisNameDisplayOptions.ts
#: src/modules/side-panel/pages/page-layout/components/dropdown-content/ChartGroupByFieldSelectionDropdownContentBase.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectIdentifiersForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/accounts/components/SettingsAccountsMessageAutoCreationCard.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterMenuContent.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterAggregateOperationMenuItems.tsx
@@ -10680,6 +10901,11 @@ msgstr "Ei löytynyt"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationConfigTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Not set"
msgstr "Ei asetettu"
@@ -10700,6 +10926,11 @@ msgstr "Ei jaettu käyttäjän {notSharedByFullName} toimesta"
msgid "Not synced"
msgstr "Ei synkronoitu"
#. js-lingui-id: VngD1z
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
msgid "Nothing to configure for this application"
msgstr ""
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
@@ -10777,6 +11008,11 @@ msgstr ""
msgid "OAuth"
msgstr "OAuth"
#. js-lingui-id: IxKj9Y
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "OAuth 2.0"
msgstr ""
#. js-lingui-id: pNEViR
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
@@ -11020,6 +11256,11 @@ msgstr "Vain aihe jaetaan"
msgid "Only the timestamp & participants will be shared with your team."
msgstr "Vain aikaleima ja osallistujat jaetaan tiimisi kanssa."
#. js-lingui-id: Lp+2YF
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Only you can use this credential."
msgstr ""
#. js-lingui-id: 1TNIig
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
@@ -11159,10 +11400,13 @@ msgstr ""
#. js-lingui-id: /IX/7x
#: src/pages/settings/updates/SettingsUpdates.tsx
#: src/pages/settings/security/SettingsSecurity.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceChatThread.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
@@ -11534,6 +11778,7 @@ msgid "Pink"
msgstr "Vaaleanpunainen"
#. js-lingui-id: kNiQp6
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
#: src/modules/command-menu-item/display/components/SidePanelCommandMenuItemDisplayPage.tsx
msgid "Pinned"
@@ -11838,6 +12083,7 @@ msgstr "Ominaisuudet"
#. js-lingui-id: 8B+pY5
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Property"
msgstr ""
@@ -12077,12 +12323,18 @@ msgid "Recommended Models"
msgstr "Suositellut mallit"
#. js-lingui-id: gcoiFh
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountInsufficientPermissions.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountEmailAliases.tsx
msgid "Reconnect"
msgstr "Yhdistä uudelleen"
#. js-lingui-id: XsIxsL
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Reconnect needed"
msgstr ""
#. js-lingui-id: hVS0gK
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsRecordPicker.tsx
msgid "record"
@@ -12195,6 +12447,13 @@ msgstr "Uudelleenohjaus-URI"
msgid "Refresh"
msgstr "Päivitä"
#. js-lingui-id: pTGa/J
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Refresh status"
msgstr ""
#. js-lingui-id: vpZcGd
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
@@ -13648,6 +13907,11 @@ msgstr ""
msgid "Short"
msgstr "Lyhyt"
#. js-lingui-id: 2rtIq8
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Short label"
msgstr ""
#. js-lingui-id: gWk8gY
#: src/modules/settings/data-model/fields/forms/components/SettingsDataModelFieldIconLabelForm.tsx
msgid "Should changing a field's label also change the API name?"
@@ -14068,9 +14332,11 @@ msgstr "Tila"
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
#: src/modules/settings/accounts/components/SettingsConnectedAccountsTableHeader.tsx
#: src/modules/ai/components/AiChatThreadFilterDropdownStatusMenu.tsx
@@ -15289,11 +15555,6 @@ msgstr "Aktivoi toiminnon säännöllisin väliajoin"
msgid "Triggers the function when a record changes"
msgstr ""
#. js-lingui-id: OIRkpM
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Triggers the function when called by an AI agent or workflow"
msgstr ""
#. js-lingui-id: YdQqyX
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionHttpTriggerSection.tsx
msgid "Triggers the function with an HTTP request"
@@ -15546,12 +15807,17 @@ msgstr "Universaali tunniste"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/layout/SettingsLayoutPageLayoutDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Universal identifier"
msgstr ""
#. js-lingui-id: Ef7StM
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusRightContainer.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminVersionContainer.tsx
msgid "Unknown"
msgstr "Tuntematon"
@@ -15584,6 +15850,11 @@ msgstr "Tuntematon tiedosto"
msgid "Unknown object"
msgstr "Tuntematon objekti"
#. js-lingui-id: m/o1+r
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesByHealthAccordion.tsx
msgid "Unknown workspace"
msgstr ""
#. js-lingui-id: GQCXQS
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
@@ -15675,6 +15946,11 @@ msgstr "Nimetön työnkulku"
msgid "Unused credits from the previous period. Expired at the end of the period."
msgstr ""
#. js-lingui-id: j5CWO4
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
msgid "Up to date"
msgstr ""
#. js-lingui-id: hmc//6
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Upcoming execution time ({timeZone})"
@@ -15737,6 +16013,7 @@ msgstr "päivitetty"
#. js-lingui-id: +b7T3G
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
msgid "Updated"
@@ -15763,11 +16040,39 @@ msgstr "Päivitykset"
msgid "Upgrade"
msgstr "Päivitys"
#. js-lingui-id: IEtN5Y
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Upgrade health"
msgstr ""
#. js-lingui-id: 88ZkNH
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Upgrade health across all workspaces"
msgstr ""
#. js-lingui-id: +awaFr
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Upgrade health across instance and workspaces"
msgstr ""
#. js-lingui-id: 7aHRdp
#: src/modules/ai/components/AiChatCreditsExhaustedMessage.tsx
msgid "Upgrade Plan"
msgstr "Päivitä tilaus"
#. js-lingui-id: 5UfQvA
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Upgrade Status"
msgstr ""
#. js-lingui-id: /l59TO
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Upgrade status refreshed"
msgstr ""
#. js-lingui-id: pKCx2F
#: src/pages/settings/applications/tabs/SettingsApplicationDetailAboutTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
@@ -16055,6 +16360,7 @@ msgstr "Voimassaolotunnus päivitettiin onnistuneesti"
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/KeyValuePairInput.tsx
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/settings/logic-functions/components/tabs/SettingsLogicFunctionTabEnvironmentVariableTableRow.tsx
@@ -16597,6 +16903,12 @@ msgstr "Ilman luottokorttia"
msgid "Worker"
msgstr "Työntekijä"
#. js-lingui-id: eQ/LA/
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
#: src/modules/logic-functions/utils/getLogicFunctionTriggerLabel.ts
msgid "Workflow action"
msgstr ""
#. js-lingui-id: Kqs5vQ
#: src/pages/settings/ai/components/SettingsAiAgentsTable.tsx
msgid "Workflow agents"
@@ -16655,6 +16967,8 @@ msgstr "Työnkulut"
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationConfigVariableDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -16719,6 +17033,11 @@ msgstr "Työtilan tiedot"
msgid "Workspace Instructions"
msgstr "Työtilan ohjeet"
#. js-lingui-id: Ce7yfm
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Workspace lists by upgrade status"
msgstr ""
#. js-lingui-id: Y0Fj4S
#: src/pages/onboarding/CreateWorkspace.tsx
msgid "Workspace logo"
@@ -16739,6 +17058,17 @@ msgstr ""
msgid "Workspace name"
msgstr "Työtilan nimi"
#. js-lingui-id: PHF7zj
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Workspace shared"
msgstr ""
#. js-lingui-id: Smg70n
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Workspace upgrade health"
msgstr ""
#. js-lingui-id: QZi0YX
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownVisibilityContent.tsx
msgid "Workspace views require manage views permission"
@@ -16749,6 +17079,13 @@ msgstr "Työtilan näkymät vaativat oikeudet hallintaan."
msgid "Workspaces"
msgstr "Työtilat"
#. js-lingui-id: 33fb3H
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Workspaces status"
msgstr ""
#. js-lingui-id: QPsQMb
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
msgid "Would you like to remove {recordIndexRecordGroupSort} group sorting?"
@@ -16844,6 +17181,7 @@ msgstr "kyllä"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/pages/settings/ai/components/SettingsToolParameterTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
+344 -6
View File
@@ -146,6 +146,12 @@ msgstr "{0, plural, one {{years} an} other {{years} ans}}"
msgid "{0, plural, one {# Object} other {# Objects}}"
msgstr "{0, plural, one {# Objet} other {# Objets}}"
#. js-lingui-id: 8ob0vY
#. placeholder {0}: failedCount + behindCount
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{0, plural, one {# workspace failed or behind} other {# workspaces failed or behind}}"
msgstr ""
#. js-lingui-id: WTc9VY
#. placeholder {0}: restriction.fieldNames.length
#: src/modules/page-layout/widgets/components/PageLayoutWidgetForbiddenDisplay.tsx
@@ -204,6 +210,12 @@ msgstr ""
msgid "{0} widgets"
msgstr ""
#. js-lingui-id: xTgz1F
#. placeholder {1}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "{1} OAuth is not yet set up by your server administrator. They need to fill in the OAuth client ID and secret on the application registration before you can add a connection."
msgstr ""
#. js-lingui-id: qdQhzv
#: src/modules/views/advanced-filter-chip/components/AdvancedFilterChip.tsx
msgid "{advancedFilterCount, plural, one {{advancedFilterCount} advanced rule} other {{advancedFilterCount} advanced rules}}"
@@ -229,6 +241,12 @@ msgstr "{aggregateLabel} de {fieldLabel}"
msgid "{appName} wants to access your account"
msgstr "{appName} souhaite accéder à votre compte"
#. js-lingui-id: y9covz
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{behindCount, plural, one {# workspace behind} other {# workspaces behind}}"
msgstr ""
#. js-lingui-id: SU5Crx
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "{cachedPercent}% cached"
@@ -291,6 +309,12 @@ msgstr "{duration} jours d'essai"
msgid "{eventAction} a related {eventObject}"
msgstr "{eventAction} un {eventObject} associé"
#. js-lingui-id: nRKZKb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/utils/getWorkspacesUpgradeHealthText.ts
msgid "{failedCount, plural, one {# workspace failed} other {# workspaces failed}}"
msgstr ""
#. js-lingui-id: POhzPf
#: src/modules/ai/hooks/useAiChatFileUpload.ts
msgid "{failedCount} file(s) failed to upload"
@@ -443,6 +467,11 @@ msgstr "{roleLabel} ne peut pas {humanReadableAction} des enregistrements {objec
msgid "{roleTargetName} will be assigned to the \"{newRoleName}\" role."
msgstr "{roleTargetName} sera assigné(e) au rôle \"{newRoleName}\"."
#. js-lingui-id: UsskHt
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "{scopeCount} scopes"
msgstr ""
#. js-lingui-id: kvVMdH
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
msgid "{selectedCount, plural, one {Delete {selectedCount} Job} other {Delete {selectedCount} Jobs}}"
@@ -548,6 +577,11 @@ msgstr "0 */1 * * *"
msgid "1 day"
msgstr "1 jour"
#. js-lingui-id: Mkh9C8
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 scope"
msgstr ""
#. js-lingui-id: W/OU4i
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "1 tab"
@@ -992,6 +1026,11 @@ msgstr "Ajouter un bloc"
msgid "Add CC"
msgstr "Ajouter Cc"
#. js-lingui-id: Rop0cs
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Add connection"
msgstr ""
#. js-lingui-id: RVp8im
#: src/modules/settings/admin-panel/ai/components/SettingsAdminAI.tsx
msgid "Add custom endpoints, private gateways, or additional regions."
@@ -1334,7 +1373,10 @@ msgid "Admin Panel - General"
msgstr ""
#. js-lingui-id: v/zjIb
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
msgid "Admin Panel - Health"
msgstr ""
@@ -1938,6 +1980,11 @@ msgstr ""
msgid "Any field"
msgstr "N'importe quel champ"
#. js-lingui-id: SI4CMD
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Anyone in this workspace can use this credential."
msgstr ""
#. js-lingui-id: xJR+Wq
#: src/pages/settings/domains/SettingsDomains.tsx
msgid "Anyone with an email address at these domains is allowed to sign up for this workspace."
@@ -2128,6 +2175,7 @@ msgstr "Application mise à niveau avec succès."
#: src/pages/settings/applications/SettingsApplications.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Applications"
@@ -2531,6 +2579,7 @@ msgid "Automation, AI, and access this app provides"
msgstr ""
#. js-lingui-id: lXkUEV
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Availability"
msgstr "Disponibilité"
@@ -2631,6 +2680,12 @@ msgstr "Comme ce workflow n'utilise pas de déclencheur manuel, le formulaire ne
msgid "Before"
msgstr "Avant"
#. js-lingui-id: +MqoSu
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Behind"
msgstr ""
#. js-lingui-id: KYr9vA
#: src/pages/settings/ai/components/SettingsAiModelsTab.tsx
msgid "Best"
@@ -2926,6 +2981,7 @@ msgid "Can't scan? Copy the"
msgstr "Impossible de scanner ? Copiez le"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDangerZone.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
@@ -3473,6 +3529,18 @@ msgstr "Menu de commandes"
msgid "command menu item"
msgstr "élément du menu de commande"
#. js-lingui-id: h5/VA5
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Command menu item"
msgstr ""
#. js-lingui-id: yVBJNs
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Command menu items"
msgstr ""
#. js-lingui-id: 9HKBNN
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "commands"
@@ -3515,7 +3583,9 @@ msgid "completed"
msgstr "terminé"
#. js-lingui-id: qqWcBV
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Completed"
msgstr "Terminé"
@@ -3530,6 +3600,16 @@ msgstr "Tâches terminées conservées pour {completedDuration}, tâches échou
msgid "Component name"
msgstr ""
#. js-lingui-id: BglnOD
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Computed at"
msgstr ""
#. js-lingui-id: PLbVix
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Conditional availability"
msgstr ""
#. js-lingui-id: 0CuAor
#: src/modules/workflow/workflow-steps/workflow-actions/if-else-action/components/WorkflowEditActionIfElseBody.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/filter-action/components/WorkflowEditActionFilterBody.tsx
@@ -3561,6 +3641,11 @@ msgstr "Variables de configuration"
msgid "Configuration"
msgstr "Configuration"
#. js-lingui-id: ais8E1
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Configuration of this command menu item"
msgstr ""
#. js-lingui-id: iAL9tI
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Configure"
@@ -3688,6 +3773,11 @@ msgstr "Confirmer la mise à jour du rôle"
msgid "Confirm upgrade"
msgstr "Confirmer une mise à niveau"
#. js-lingui-id: mFiwDA
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Connect {providerDisplayName}"
msgstr ""
#. js-lingui-id: D8ATlr
#: src/modules/settings/accounts/components/SettingsNewAccountSection.tsx
msgid "Connect a new account to your workspace"
@@ -3713,6 +3803,16 @@ msgstr "Se connecter avec Microsoft"
msgid "Connected accounts"
msgstr "Comptes connectés"
#. js-lingui-id: 54WNJ6
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
msgid "connection provider"
msgstr ""
#. js-lingui-id: sbBqyy
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
msgid "Connection providers"
msgstr ""
#. js-lingui-id: W4Kgwq
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
msgid "Connection settings"
@@ -3794,6 +3894,7 @@ msgid "Context window"
msgstr "Fenêtre de contexte"
#. js-lingui-id: xGVfLh
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
#: src/pages/onboarding/SyncEmails.tsx
@@ -4196,6 +4297,7 @@ msgstr "Créer, éditer et supprimer des vues de l'espace de travail"
#. js-lingui-id: d+F6q9
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
@@ -4894,6 +4996,7 @@ msgstr "supprimer"
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -5201,14 +5304,25 @@ msgstr "Détruire les enregistrements sur tous les objets"
msgid "Detach"
msgstr "Détacher"
#. js-lingui-id: crxufE
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Detail per workspace"
msgstr ""
#. js-lingui-id: URmyfc
#: src/pages/settings/security/event-logs/utils/getColumnsForEventLogTable.ts
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/ai/components/RoutingDebugDisplay.tsx
msgid "Details"
msgstr "Détails"
#. js-lingui-id: /RlqQE
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Detected application version running on this instance"
msgstr ""
#. js-lingui-id: 7aDnUb
#: src/pages/settings/applications/SettingsApplications.tsx
msgid "Developer"
@@ -6650,6 +6764,16 @@ msgstr "Exportation ({percentageValue}%)"
msgid "Export CSV"
msgstr "Exporter CSV"
#. js-lingui-id: leUV74
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
msgid "Exposes the function as a step in the workflow builder"
msgstr ""
#. js-lingui-id: Kh6fBo
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Exposes the function as a tool that AI agents can call"
msgstr ""
#. js-lingui-id: 1JBTZV
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerCronForm.tsx
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionCronTriggerSection.tsx
@@ -6663,7 +6787,11 @@ msgstr "Crédits supplémentaires utilisés"
#. js-lingui-id: 7Bj3x9
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Failed"
msgstr "Échec"
@@ -6773,6 +6901,13 @@ msgstr "Échec de la fusion des enregistrements. Veuillez réessayer."
msgid "Failed to parse context: {contextValue}"
msgstr "Échec de l'analyse du contexte : {contextValue}"
#. js-lingui-id: 3m7+J/
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Failed to refresh upgrade status"
msgstr ""
#. js-lingui-id: 3YA1cX
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
msgid "Failed to remove model"
@@ -7344,6 +7479,7 @@ msgstr "composant frontal"
#. js-lingui-id: 7skoga
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Front component"
msgstr ""
@@ -7652,6 +7788,11 @@ msgstr ""
msgid "Health"
msgstr "Santé"
#. js-lingui-id: HyaXse
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
msgid "Health of the latest instance command"
msgstr ""
#. js-lingui-id: I1IOmb
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Health Status"
@@ -7875,6 +8016,7 @@ msgstr ""
#. js-lingui-id: wwu18a
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Icon"
msgstr "Icône"
@@ -8107,6 +8249,15 @@ msgstr "Index"
msgid "Indexes"
msgstr "Index"
#. js-lingui-id: hG711D
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Inferred version"
msgstr ""
#. js-lingui-id: CE+M2e
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -8202,6 +8353,13 @@ msgstr ""
msgid "Installing..."
msgstr "Installation en cours..."
#. js-lingui-id: x8uKc7
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Instance status"
msgstr ""
#. js-lingui-id: AwUsnG
#: src/pages/settings/data-model/constants/SettingsObjectTableMetadata.ts
msgid "Instances"
@@ -8575,6 +8733,17 @@ msgstr "Rejoindre l'équipe {workspaceName}"
msgid "JSON"
msgstr ""
#. js-lingui-id: UpNpMK
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Just for me"
msgstr ""
#. js-lingui-id: JJOCq/
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Just me"
msgstr ""
#. js-lingui-id: OGXtL8
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
@@ -8603,6 +8772,7 @@ msgid "Korean"
msgstr "Coréen"
#. js-lingui-id: 87a/t/
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsText.tsx
@@ -8711,6 +8881,24 @@ msgstr "90 derniers jours"
msgid "Last activity"
msgstr ""
#. js-lingui-id: IpCCj8
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command"
msgstr ""
#. js-lingui-id: cdB4EG
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last command result"
msgstr ""
#. js-lingui-id: wW6NCp
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last error"
msgstr ""
#. js-lingui-id: c5zxSg
#: src/modules/ai/components/internal/AiChatContextUsageButton.tsx
msgid "Last message"
@@ -8749,6 +8937,12 @@ msgstr "Le dernier paiement a échoué. Veuillez contacter votre administrateur.
msgid "Last payment failed. Please update your billing details."
msgstr "Le dernier paiement a échoué. Veuillez mettre à jour vos informations de facturation."
#. js-lingui-id: C3yOz3
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Last updated"
msgstr ""
#. js-lingui-id: wL3cK8
#: src/modules/settings/applications/components/SettingsApplicationAboutSidebar.tsx
#: src/modules/object-record/record-board/record-board-column/utils/getAggregateOperationShortLabel.ts
@@ -9192,6 +9386,12 @@ msgstr "Gérer les facturations et les abonnements"
msgid "Manage billing information"
msgstr "Gérer les informations de facturation"
#. js-lingui-id: GDz4fg
#. placeholder {0}: provider.displayName
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Manage connections used by this app to call {0}."
msgstr ""
#. js-lingui-id: U8dG4j
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
@@ -9720,6 +9920,15 @@ msgstr "Mes vues non répertoriées"
msgid "mySkill"
msgstr "mySkill"
#. js-lingui-id: fj5byd
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "N/A"
msgstr ""
#. js-lingui-id: 6YtxFj
#: src/testing/mock-data/tableData.ts
#: src/pages/settings/SettingsWorkspace.tsx
@@ -10027,6 +10236,7 @@ msgstr "Neuvième"
#. js-lingui-id: 1UzENP
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelUpdateFieldsValueForObject.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelSeeFieldsValueForObject.tsx
@@ -10597,7 +10807,6 @@ msgid "No variables found"
msgstr "Aucune variable trouvée"
#. js-lingui-id: OCektF
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
msgid "No variables to set for this application"
msgstr ""
@@ -10612,6 +10821,16 @@ msgstr "Aucune exécution de workflow pour l'instant"
msgid "No workflow versions yet"
msgstr "Aucune version de workflow pour l'instant"
#. js-lingui-id: Q4dFjT
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace behind"
msgstr ""
#. js-lingui-id: apOMfI
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "No workspace failed"
msgstr ""
#. js-lingui-id: rPAZRd
#: src/modules/settings/lab/hooks/useLabPublicFeatureFlags.ts
msgid "No workspace selected"
@@ -10629,12 +10848,14 @@ msgstr "Nœud"
#. js-lingui-id: EdQY6l
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/BodyInput.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionEmailBase.tsx
#: src/modules/side-panel/pages/page-layout/utils/getDateGranularityLabel.ts
#: src/modules/side-panel/pages/page-layout/utils/getChartAxisNameDisplayOptions.ts
#: src/modules/side-panel/pages/page-layout/components/dropdown-content/ChartGroupByFieldSelectionDropdownContentBase.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectIdentifiersForm.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/accounts/components/SettingsAccountsMessageAutoCreationCard.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterMenuContent.tsx
#: src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterAggregateOperationMenuItems.tsx
@@ -10680,6 +10901,11 @@ msgstr "Introuvable"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationConfigTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Not set"
msgstr ""
@@ -10700,6 +10926,11 @@ msgstr "Non partagé par {notSharedByFullName}"
msgid "Not synced"
msgstr "Non synchronisé"
#. js-lingui-id: VngD1z
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
msgid "Nothing to configure for this application"
msgstr ""
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
@@ -10777,6 +11008,11 @@ msgstr ""
msgid "OAuth"
msgstr "OAuth"
#. js-lingui-id: IxKj9Y
#: src/modules/settings/applications/hooks/useComputeApplicationContentForLayoutAndLogic.ts
msgid "OAuth 2.0"
msgstr ""
#. js-lingui-id: pNEViR
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
@@ -11020,6 +11256,11 @@ msgstr "Seul l'objet est partagé"
msgid "Only the timestamp & participants will be shared with your team."
msgstr "Seuls l'horodatage et les participants seront partagés avec votre équipe."
#. js-lingui-id: Lp+2YF
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Only you can use this credential."
msgstr ""
#. js-lingui-id: 1TNIig
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
@@ -11159,10 +11400,13 @@ msgstr "Organiser"
#. js-lingui-id: /IX/7x
#: src/pages/settings/updates/SettingsUpdates.tsx
#: src/pages/settings/security/SettingsSecurity.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceChatThread.tsx
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminQueueDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
@@ -11534,6 +11778,7 @@ msgid "Pink"
msgstr "Rose"
#. js-lingui-id: kNiQp6
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
#: src/modules/command-menu-item/display/components/SidePanelCommandMenuItemDisplayPage.tsx
msgid "Pinned"
@@ -11838,6 +12083,7 @@ msgstr "Propriétés"
#. js-lingui-id: 8B+pY5
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Property"
msgstr ""
@@ -12077,12 +12323,18 @@ msgid "Recommended Models"
msgstr "Modèles recommandés"
#. js-lingui-id: gcoiFh
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountInsufficientPermissions.tsx
#: src/modules/information-banner/components/reconnect-account/InformationBannerReconnectAccountEmailAliases.tsx
msgid "Reconnect"
msgstr "Reconnecter"
#. js-lingui-id: XsIxsL
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
msgid "Reconnect needed"
msgstr ""
#. js-lingui-id: hVS0gK
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsRecordPicker.tsx
msgid "record"
@@ -12195,6 +12447,13 @@ msgstr "URI de redirection"
msgid "Refresh"
msgstr "Actualiser"
#. js-lingui-id: pTGa/J
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Refresh status"
msgstr ""
#. js-lingui-id: vpZcGd
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
@@ -13648,6 +13907,11 @@ msgstr ""
msgid "Short"
msgstr "Court"
#. js-lingui-id: 2rtIq8
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Short label"
msgstr ""
#. js-lingui-id: gWk8gY
#: src/modules/settings/data-model/fields/forms/components/SettingsDataModelFieldIconLabelForm.tsx
msgid "Should changing a field's label also change the API name?"
@@ -14068,9 +14332,11 @@ msgstr "État"
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
#: src/modules/settings/accounts/components/SettingsConnectedAccountsTableHeader.tsx
#: src/modules/ai/components/AiChatThreadFilterDropdownStatusMenu.tsx
@@ -15291,11 +15557,6 @@ msgstr "Déclenche la fonction à intervalles réguliers"
msgid "Triggers the function when a record changes"
msgstr ""
#. js-lingui-id: OIRkpM
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionToolTriggerSection.tsx
msgid "Triggers the function when called by an AI agent or workflow"
msgstr ""
#. js-lingui-id: YdQqyX
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionHttpTriggerSection.tsx
msgid "Triggers the function with an HTTP request"
@@ -15548,12 +15809,17 @@ msgstr ""
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/layout/SettingsLayoutPageLayoutDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
msgid "Universal identifier"
msgstr ""
#. js-lingui-id: Ef7StM
#: src/pages/settings/emailing-domains/utils/getEmailingDomainStatusText.ts
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusRightContainer.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminVersionContainer.tsx
msgid "Unknown"
msgstr "Inconnu"
@@ -15586,6 +15852,11 @@ msgstr "Fichier inconnu"
msgid "Unknown object"
msgstr "Objet inconnu"
#. js-lingui-id: m/o1+r
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesByHealthAccordion.tsx
msgid "Unknown workspace"
msgstr ""
#. js-lingui-id: GQCXQS
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
#: src/pages/onboarding/internal/ChooseYourPlanContent.tsx
@@ -15677,6 +15948,11 @@ msgstr "Workflow sans titre"
msgid "Unused credits from the previous period. Expired at the end of the period."
msgstr ""
#. js-lingui-id: j5CWO4
#: src/modules/settings/admin-panel/utils/getUpgradeHealthStatusBadge.ts
msgid "Up to date"
msgstr ""
#. js-lingui-id: hmc//6
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Upcoming execution time ({timeZone})"
@@ -15739,6 +16015,7 @@ msgstr "mis à jour"
#. js-lingui-id: +b7T3G
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspaceDetail.tsx
#: src/modules/settings/components/SettingsDatabaseEventsForm.tsx
msgid "Updated"
@@ -15765,11 +16042,39 @@ msgstr "Mises à jour"
msgid "Upgrade"
msgstr "Mettre à niveau"
#. js-lingui-id: IEtN5Y
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminWorkspacesStatusSummaryCard.tsx
msgid "Upgrade health"
msgstr ""
#. js-lingui-id: 88ZkNH
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Upgrade health across all workspaces"
msgstr ""
#. js-lingui-id: +awaFr
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
msgid "Upgrade health across instance and workspaces"
msgstr ""
#. js-lingui-id: 7aHRdp
#: src/modules/ai/components/AiChatCreditsExhaustedMessage.tsx
msgid "Upgrade Plan"
msgstr "Mettre à niveau l'abonnement"
#. js-lingui-id: 5UfQvA
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthStatus.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Upgrade Status"
msgstr ""
#. js-lingui-id: /l59TO
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInstanceStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminInferredVersion.tsx
msgid "Upgrade status refreshed"
msgstr ""
#. js-lingui-id: pKCx2F
#: src/pages/settings/applications/tabs/SettingsApplicationDetailAboutTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationVersionContainer.tsx
@@ -16057,6 +16362,7 @@ msgstr "Jeton de validité actualisé avec succès"
#: src/pages/settings/layout/components/SettingsLayoutDetailScaffold.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/modules/workflow/workflow-steps/workflow-actions/http-request-action/components/KeyValuePairInput.tsx
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/settings/logic-functions/components/tabs/SettingsLogicFunctionTabEnvironmentVariableTableRow.tsx
@@ -16599,6 +16905,12 @@ msgstr "Sans carte de crédit"
msgid "Worker"
msgstr "Travailleur"
#. js-lingui-id: eQ/LA/
#: src/modules/settings/logic-functions/components/triggers/SettingsLogicFunctionWorkflowActionTriggerSection.tsx
#: src/modules/logic-functions/utils/getLogicFunctionTriggerLabel.ts
msgid "Workflow action"
msgstr ""
#. js-lingui-id: Kqs5vQ
#: src/pages/settings/ai/components/SettingsAiAgentsTable.tsx
msgid "Workflow agents"
@@ -16657,6 +16969,8 @@ msgstr "Workflows"
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationFrontComponentDetail.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationCommandMenuItemDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationConfigVariableDetail.tsx
#: src/pages/settings/ai/SettingsToolDetail.tsx
#: src/pages/settings/ai/SettingsSkillForm.tsx
@@ -16721,6 +17035,11 @@ msgstr "Infos sur l'espace de travail"
msgid "Workspace Instructions"
msgstr "Instructions de l'espace de travail"
#. js-lingui-id: Ce7yfm
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
msgid "Workspace lists by upgrade status"
msgstr ""
#. js-lingui-id: Y0Fj4S
#: src/pages/onboarding/CreateWorkspace.tsx
msgid "Workspace logo"
@@ -16741,6 +17060,17 @@ msgstr ""
msgid "Workspace name"
msgstr "Nom de l'espace de travail"
#. js-lingui-id: PHF7zj
#: src/pages/settings/applications/tabs/SettingsApplicationConnectionsSection.tsx
#: src/pages/settings/applications/components/SettingsApplicationConnectScopePickerModal.tsx
msgid "Workspace shared"
msgstr ""
#. js-lingui-id: Smg70n
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
msgid "Workspace upgrade health"
msgstr ""
#. js-lingui-id: QZi0YX
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownVisibilityContent.tsx
msgid "Workspace views require manage views permission"
@@ -16751,6 +17081,13 @@ msgstr "Les vues de l'espace de travail nécessitent l'autorisation de gestion d
msgid "Workspaces"
msgstr "Espaces de travail"
#. js-lingui-id: 33fb3H
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminWorkspacesStatus.tsx
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminUpgradeStatusListCard.tsx
msgid "Workspaces status"
msgstr ""
#. js-lingui-id: QPsQMb
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
msgid "Would you like to remove {recordIndexRecordGroupSort} group sorting?"
@@ -16846,6 +17183,7 @@ msgstr "oui"
#: src/pages/settings/layout/SettingsLayoutViewDetail.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationFrontComponentSettingsTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationCommandMenuItemSettingsTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationGeneralInfo.tsx
#: src/pages/settings/ai/components/SettingsToolParameterTable.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceBillingContent.tsx
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long

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