CINXE.COM

Complex query

<!DOCTYPE html> <html lang="en"> <head><meta name="csrf" content="ypByZHWt-pe84V2yKxNJ62kiCfxS5dyEO0oA"> <link rel="preconnect" href="https://dac-static.atlassian.com" crossorigin /> <link rel="dns-prefetch" href="https://dac-static.atlassian.com" /> <script defer type="text/javascript" src="https://dac-static.atlassian.com/_static/polyfills.a862f27a10d17150fb16.bundle.js"></script> <script defer type="text/javascript" src="https://dac-static.atlassian.com/_static/documentation-changelogs-docs-index-rest-api-docs-rest-docs-search-graphql-docs-graphql-sandbox-jsapi-connect-module-pages-analytics-and-cookie-preferences-homepage-errors-supportdesk.9d89fdf4536bff9112d7.bundle.js"></script><script defer type="text/javascript" src="https://dac-static.atlassian.com/_static/documentation-changelogs-docs-index-rest-api-docs-rest-docs-search-graphql-docs-graphql-sandbox-jsapi-connect-module-pages-homepage-errors-supportdesk.33dbe2970267a8ae5d10.bundle.js"></script><script defer type="text/javascript" src="https://dac-static.atlassian.com/_static/documentation.f24a5f7f9bd97530f84d.bundle.js"></script> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta data-react-helmet="true" name="description" content="Build complex queries in Forge&#x27;s Custom Entity Store for advanced data operations."/> <meta name="dac:version" content="1.5800.884"> <link rel="shortcut icon" href="https://dac-static.atlassian.com/favicon.ico" type="image/x-icon"> <link rel="icon" href="https://dac-static.atlassian.com/favicon.ico" type="image/x-icon"> <link rel="search" href="https://dac-static.atlassian.com/opensearch.xml" type="application/opensearchdescription+xml"> <script nonce="0Zl3Y/p1xAn6fsn8ZN/eeBVKH9eWqZKW+KZZwyHZTAw=" type="text/javascript">window.__DATA__ = {"jiraIssueCollectorId":"ee87e716","page":{"document":[{"type":"markdown","content":"\n# Querying the Custom Entity Store\n\nYou can build complex queries against\ndata stored in the [Custom Entity Store](/platform/forge/runtime-reference/storage-api-custom-entities/)\nusing a wide variety of filters and conditions.\n\n"},{"type":"markdown","content":"To start, import the Forge API package in your app, as follows:\n\n``` javascript\nimport { storage } from '@forge/api';\n```\n\nEach installation of your app is subject to the Storage API's quotas and limits.\nSee [Storage quotas](/platform/forge/platform-quotas-and-limits/#storage-quotas) and\n[Storage limits](/platform/forge/platform-quotas-and-limits/#storage-limits) for more details.\n\n"},{"type":"shortcode","name":"note","arguments":[],"content":"\nThe app storage API requires your app to have the `storage:app` scope. See\n[Add scopes to call an Atlassian REST API](/platform/forge/add-scopes-to-call-an-atlassian-rest-api)\nguide to add new scopes to your app.\n"},{"type":"markdown","content":"\n"},{"type":"markdown","content":"\n\n## Related information\n\nBefore you can store data in the Custom Entity Store, you'll need to declare your\n[custom entities](/platform/forge/runtime-reference/custom-entities/) and indexes\nfirst in your app's manifest file.\n"},{"type":"markdown","content":"Custom entities are user-defined data structures for storing app data. Forge's storage API lets\nyou query data stored in these structures using a wide array of query conditions. These query conditions\nmake it possible to build advanced, complex queries to suit your app's operations."},{"type":"markdown","content":"\n\nFor information about storing data to the Custom Entity Store, see\n[Storing data in custom entities](/platform/forge/runtime-reference/storage-api-custom-entities) .\n\n"},{"type":"markdown","content":"\nFor a detailed tutorial on storing and querying structured data through custom entities,\nsee [Use custom entities to store structured data](/platform/forge/custom-entities-store-structured-data/)."},{"type":"markdown","content":"\n\n\n## Basic methods\n\u003ca id=\"index\">\u003c/a>\n\nAll complex queries operate on a [custom entity's index](/platform/forge/runtime-reference/custom-entities/#indexes). Complex queries follow the same basic signature:\n\n``` javascript\nawait storage\n .entity(\"\u003ccustom-entity>\")\n .query()\n .index()\n```\nThis structure contains all the _required_ methods for a complex query. The `entity` method sets which custom entity to query, and `index` sets which of those entity's indexes to query. Each query can only target one index from one custom entity.\n\nWhen using indexes that feature a `partition`, you must specify a value to match the parameter's attribute:\n\n``` javascript\nawait storage\n .entity(\"\u003ccustom-entity>\")\n .query()\n .index(\"\u003cindex-name>\", {\n partition: [\"\u003cvalue>\"]\n })\n```\n\nIf your index's `partition` has multiple attributes, then you must set a value for each attribute. In addition, you must also set each value in the order they are declared in the index. For example, consider the following index:\n\n``` yaml\nindexes:\n - name: by-gender-and-age\n range: \n - employmentyear\n partition: \n - gender\n - age\n```\n\nAn appropriate query for this would be:\n\n``` javascript\nawait storage\n .entity(\"employee\")\n .query()\n .index(\"by-gender-and-age\", {\n partition: [\"male\",20]\n })\n .where(WhereConditions.isGreaterThan(2003))\n```\nThis query will fetch employees who are:\n- male \n- 20 years old \n- employed after 2003 (that is, `employmentyear` is higher than `2003`).\n\n"},{"type":"shortcode","name":"warning","arguments":[],"content":"\nEvery complex query returns up to 10 values by default. You can increase this to a maximum of 100 using [query.limit](#query-limit).\n"},{"type":"markdown","content":"\n\n## where\n\nWhile `index` lets you filter matches to an index's `partition`, `where` lets you filter against an index's `range`. To use the `where` filter:\n\n``` javascript\nimport { WhereConditions } from '@forge/api';\n```\n\n### Method signature\n\n``` javascript\n.where(WhereConditions.\u003ccondition>(\"\u003cvalue>\"))\n```\n\n### Conditions\n\nThe `where` filtering method supports the following conditions:\n\n* `beginsWith`\n* `between`\n* `equalsTo`\n* `isGreaterThan`, `isLessThan`\n* `isGreaterThanOrEqualTo`, `isLessThanOrEqualTo`\n\n## andFilter / orFilter\n\nYou can only use the `index` and `where` methods once per query. The `andFilter` and\n`orFilter` allow you add more conditions to a query.\n\n### Method signature \n\nTo use either filtering method:\n\n``` javascript\nimport { FilterConditions } from '@forge/api';\n```\n\nEach filtering method use the following signatures:\n\n* `andFilter`: _all_ conditions must be matched.\n ``` javascript\n .andFilter(\"\u003cattribute>\",FilterConditions.\u003ccondition>(\"\u003cvalue>\"))\n ```\n* `orFilter`: only _one_ condition must be matched.\n ``` javascript\n .orFilter(\"\u003cattribute>\",FilterConditions.\u003ccondition>(\"\u003cvalue>\"))\n ```\n\n"},{"type":"shortcode","name":"note","arguments":[],"content":"\nWithin the same query, you can use multiple `andFilter` and `orFilter` methods. However, you cannot use _both_ methods within the same query. \n\nIn addition, the `andFilter` and `orFilter` methods are _in-memory_ filters. Using them can sometimes produce pages with no results, with cursor pointing to the next page where actual results exist.\n"},{"type":"markdown","content":"\n\n\n### Conditions\n\nBoth filtering methods support the following conditions:\n\n* `beginsWith`\n* `between`\n* `equalsTo`\n* `isGreaterThan`, `isLessThan`\n* `isGreaterThanOrEqualTo`, `isLessThanOrEqualTo`\n* `exists`, `doesNotExist`\n* `contains`, `doesNotContain`\n* `notEqualsTo`\n\n## sort\n\nThe `sort` method displays your results in either ascending (`ASC`) or descending (`DESC`) order:\n\n```javascript\n.sort(SortOrder.\u003c\"ASC|DESC\">)\n```\n\nBy default, results are displayed in ascending order.\n\n"},{"type":"markdown","content":"## query.limit\n\nReturns a new `Query` with a limit on how many matching values get returned. The query\nAPI returns up to 10 values by default, this can be increased to a maximum of 100.\n\n### Method signature\n\n``` javascript\nquery.limit(limit: number): Query\n```\n\n## query.cursor\n\nReturns a new `Query` that will start after the provided\n[cursor](/platform/forge/runtime-reference/storage-api/#cursors). Cursors enable your\napp to fetch subsequent pages of results after completing an initial query.\n\nCursors are returned from the `getMany` query API.\n\n### Method signature\n\n``` javascript\nquery.cursor(after: string): Query;\n```\n\n## query.getMany\n\nExecute the query and return a list of results up to the provided limit in length.\nThis method returns both the array of results and a cursor that's used to fetch subsequent\npages of results.\n\n### Method signature\n\n``` javascript\nquery.getMany(): Promise\u003cListResult>;\n\ninterface ListResult {\n results: Result[];\n nextCursor?: string;\n}\n\nexport interface Result {\n key: string;\n value: object;\n}\n```\n\n## query.getOne\n\nExecute the query and get the first matching result, if any matches exist. If there\nis no match, the result resolves to `undefined`.\n\n### Method signature\n\n``` javascript\nquery.getOne(): Promise\u003cResult | undefined>;\n\nexport interface Result {\n key: string;\n value: object;\n}\n```"},{"type":"markdown","content":"\n\n\n\u003c!--\n## startsWith\n\nConstructs a predicate used in the `query.where` method to filter results. `startsWith`\nenforces that the specified field must start with the specified string.\n\n### Method signature\n\n``` javascript\nstartsWith(value: string): Predicate\n```\n-->\n\n\n\n\u003c!--\n"},{"type":"shortcode","name":"note","arguments":[],"content":"\nAt present, query conditions don't work on the data type `float`. \n"},{"type":"markdown","content":"\n-->\n\n\n\u003c!--\n[Custom entities](/platform/forge/runtime-reference/storage-api-query-complex/#custom-entities) \nlet you assign multiple values (or `attributes`) to your keys. This provides you with \nmore options for storing and structuring your app data. \n\nCustom entities also allows you to perform more complex queries through [advanced conditions](/platform/forge/runtime-reference/storage-api-query-complex/#conditions) (such as `between`, `isGreaterThan`, and `isGreaterThanOrEqualTo`).\n\nYou can also use\n[custom entities](/platform/forge/runtime-reference/storage-api-query-complex/#custom-entities) \nto access more [advanced conditions](/platform/forge/runtime-reference/storage-api-query-complex/#conditions)\nfor your queries.\n\n\nWhen declaring [custom entities](#custom-entities), you'll have multiple attributes assigned to your keys. This provides you with more options for storing and structuring your app data. In turn, the query builder API provides additional methods and parameters for building complex queries against your custom entities.\n-->\n\n\n## Example entity\n\n"},{"type":"markdown","content":"The following `manifest.yml` excerpt shows a custom entity named `employee` with several attributes and indexes:\n\n\u003ca id=\"customentitiesexample\">\u003c/a>\n\n``` yaml\napp:\n id: \"ari:cloud:ecosystem::app/406d303d-0393-4ec4-ad7c-1435be94583a\"\n\n storage:\n entities:\n - name: employee\n attributes:\n surname: \n type: string\n age: \n type: integer\n employmentyear: \n type: integer\n gender: \n type: string\n nationality: \n type: string\n indexes:\n - surname\n - employmentyear\n - name: by-age\n range: \n - age\n - name: by-age-per-gender\n partition: \n - gender\n range: \n - age \n```\n\nThis entity also creates four indexes based on the following `employee` attributes:\n- `surname`\n- `employmentyear`\n- `age` (further optimized for filtering according to different age ranges)\n- `age` per `gender` (further optimized for filtering according to age ranges for each gender)"},{"type":"markdown","content":"\n\n## Example queries\n\nUsing the [previous section's](#example-entity) example entity and its indexes, the following queries demonstrate the use of each method:\n\n\u003ctable>\n \u003ctr>\n \u003cth>Example query\u003c/th>\n \u003cth>Description\u003c/th>\n \u003c/tr>\n \u003ctr>\n \u003ctd>\u003cpre>await storage\n .entity(\"employee\")\n .query()\n .index(\"surname\")\n .getMany()\u003c/pre>\u003c/td>\n \u003ctd>Targets the \u003ccode>surname\u003c/code> index of the \u003ccode>employee\u003c/code> entity.\u003c/td>\n \u003c/tr>\n \u003ctr>\n \u003ctd>\u003cpre>await storage\n .entity(\"employee\")\n .query()\n .index(\"by-age\")\n .where(WhereConditions.isGreaterThan(30))\n .sort(SortOrder.DESC)\n .getMany()\u003c/pre>\u003c/td>\n \u003ctd>\u003cp>Targets the \u003ccode>by-age\u003c/code> index, which uses \u003ccode>age\u003c/code> as its \u003ccode>range\u003c/code>. From this, the \u003ccode>where\u003c/code> method will limit matches to employees above the age of 30.\u003c/p>\n \u003cp>Results will be displayed in descending order.\u003c/p>\n \u003c/td>\n \u003c/tr>\n \u003ctr>\n \u003ctd>\u003cpre>await storage\n .entity(\"employee\")\n .query()\n .index(\"by-age-per-gender\", {\n partition: [\"female\"]\n })\n .getMany()\u003c/pre>\u003c/td>\n \u003ctd>Targets the \u003ccode>by-age-per-gender\u003c/code> index, and will limit matches to female employees.\u003c/td>\n \u003c/tr>\n \u003ctr>\n \u003ctd>\u003cpre>await storage\n .entity(\"employee\")\n .query()\n .index(\"by-age-per-gender\", {\n partition: [\"female\"]\n })\n .where(WhereConditions.isGreaterThan(30))\n .getMany()\u003c/pre>\u003c/td>\n \u003ctd>Targets the \u003ccode>by-age-per-gender\u003c/code> index, which also uses \u003ccode>age\u003c/code> as its \u003ccode>range\u003c/code>. From this, the \u003ccode>where\u003c/code> method limit matches only to female employees above the age of 30.\n \u003c/tr>\n \u003ctr>\n \u003ctd>\u003cpre>await storage\n .entity(\"employee\")\n .query()\n .index(\"by-age-per-gender\", {\n partition: [\"female\"]\n })\n .where(WhereConditions.isGreaterThan(30))\n .andFilter(\"employmentyear\",\n FilterConditions.isGreaterThan(2020))\n .andFilter(\"nationality\",\n FilterConditions.equalsTo(\"Australian\"))\n .getMany()\u003c/pre>\u003c/td>\n \u003ctd>Using the \u003ccode>by-age-per-gender\u003c/code> index, limits matches only to female Australian employees above the age of 30 who were also hired after 2020.\u003c/td>\n \u003c/tr>\n\u003c!--\n \u003ctr>\n \u003ctd>\u003cpre>\u003c/pre>\u003c/td>\n \u003ctd>\u003c/td>\n \u003c/tr>\n \u003ctr>\n \u003ctd>\u003cpre>\u003c/pre>\u003c/td>\n \u003ctd>\u003c/td>\n \u003c/tr>\n-->\n\u003c/table>"}],"metadata":{"source":"https://bitbucket.org/atlassian-developers/forge-docs/src/master/content/platform/forge/runtime-reference/storage-api-query-complex.md?at=master&mode=edit&fileviewer=file-view-default&spa=0","title":"Complex query","description":"Build complex queries in Forge's Custom Entity Store for advanced data operations.","platform":"platform","product":"forge","category":"reference","subcategory":"runtime","date":"2024-11-11","enabledVersion":"1.5800.884"},"deprecatedNavigation":{"title":"Forge","name":"Forge","url":"/platform/forge/","categories":[{"title":"Guides","name":"devguide","url":"/platform/forge/","indexLinkTitle":"About Forge","subcategories":[{"title":"Introduction","name":"intro","expandAlways":true,"items":[{"title":"Forge starter guides","url":"/platform/forge/introduction/forge-starter-guides/","isGroup":true,"groupItems":[{"title":"Why build with Forge","url":"/platform/forge/introduction/why-build-with-forge/"},{"title":"Introduction to the Forge platform","url":"/platform/forge/introduction/the-forge-platform/"}]},{"title":"Build your first app","url":"/platform/forge/getting-started/","isGroup":true,"groupItems":[{"title":"Build a Bitbucket app","url":"/platform/forge/build-a-hello-world-app-in-bitbucket/"},{"title":"Build a Confluence app","url":"/platform/forge/build-a-hello-world-app-in-confluence/"},{"title":"Build a Jira app","url":"/platform/forge/build-a-hello-world-app-in-jira/"},{"title":"Build a Jira Service Management app","url":"/platform/forge/build-a-hello-world-app-in-jira-service-management/"}]}]},{"title":"Extend Atlassian products","name":"extend-atlassian-products","expandAlways":false,"items":[{"title":"Bitbucket Cloud","url":"/platform/forge/extend-bitbucket-cloud/"},{"title":"Rovo (Preview)","url":"/platform/forge/extend-atlassian-products-with-a-forge-rovo-agent/"}]},{"title":"Platform concepts","name":"platform-concepts","expandAlways":false,"items":[{"title":"Forge release phases","url":"/platform/forge/whats-coming/","isGroup":true,"groupItems":[{"title":"Deprecation policy","url":"/platform/forge/deprecation-policy/"}]},{"title":"Manifest","url":"/platform/forge/manifest/"},{"title":"Modules","url":"/platform/forge/modules/"},{"title":"Storage","url":"/platform/forge/storage/"},{"title":"Data residency","url":"/platform/forge/data-residency/"},{"title":"Environments","url":"/platform/forge/environments-and-versions/","isGroup":true,"groupItems":[{"title":"Promote an app to staging or production","url":"/platform/forge/staging-and-production-apps/"}]},{"title":"Versions","url":"/platform/forge/versions/"},{"title":"Tunneling","url":"/platform/forge/tunneling/"},{"title":"User interface","url":"/platform/forge/user-interface/","isGroup":true,"groupItems":[{"title":"UI Kit","url":"/platform/forge/ui-kit/"},{"title":"Custom UI","url":"/platform/forge/custom-ui/"},{"title":"Design tokens and theming","url":"/platform/forge/design-tokens-and-theming/"},{"title":"App context security","url":"/platform/forge/app-context-security"},{"title":"UI modifications","url":"/platform/forge/understanding-ui-modifications/"},{"title":"Internationalization","url":"/platform/forge/internationalization"}]},{"title":"Events","url":"/platform/forge/events/"},{"title":"Forge remote","url":"/platform/forge/remote/","isGroup":true,"groupItems":[{"title":"Remote essentials","url":"/platform/forge/remote/essentials"},{"title":"Calling a remote from a frontend","url":"/platform/forge/remote/calling-from-frontend"},{"title":"Calling a remote from a function","url":"/platform/forge/remote/calling-from-function"},{"title":"Sending events to a remote","url":"/platform/forge/remote/sending-product-events"},{"title":"Configuring scheduled triggers","url":"/platform/forge/remote/scheduled-triggers"},{"title":"Accessing storage with remote","url":"/platform/forge/remote/accessing-storage"},{"title":"Calling product APIs","url":"/platform/forge/remote/calling-product-apis"},{"title":"Performing Bitbucket git operations","url":"/platform/forge/remote/bitbucket-git-operations"},{"title":"Remote observability","url":"/platform/forge/remote/observability"}]},{"title":"Automation with Forge","url":"/platform/forge/automation-with-forge/"},{"title":"Contributors","url":"/platform/forge/contributors/"},{"title":"App observability in third-party tools","url":"/platform/forge/app-observability-in-third-party-tools/"},{"title":"Platform quotas and limits","url":"/platform/forge/platform-quotas-and-limits/"},{"title":"Security","url":"/platform/forge/security/","isGroup":true,"groupItems":[{"title":"Access to Forge apps for unlicensed Jira Service Management users","url":"/platform/forge/access-to-forge-apps-for-unlicensed-jsm-users/"},{"title":"Add scopes to call an Atlassian REST API","url":"/platform/forge/add-scopes-to-call-an-atlassian-rest-api/"},{"title":"Add content security and egress controls","url":"/platform/forge/add-content-security-and-egress-controls/"},{"title":"Runtime egress permissions","url":"/platform/forge/runtime-egress-permissions/"},{"title":"Rotating OAuth 2.0 client ID and secret","url":"/platform/forge/rotating-an-oauth-2.0-client-id-and-secret/"},{"title":"Common issues with external authentication","url":"/platform/forge/common-issues-with-external-authentication/"}]},{"title":"Debugging","url":"/platform/forge/debugging/"},{"title":"Connect module equivalents","url":"/platform/forge/connect-module-equivalents/"}]},{"title":"Tutorials","name":"tutorials","expandAlways":false,"items":[{"title":"Overview","url":"/platform/forge/tutorials-and-guides/"},{"title":"Schedule web triggers","url":"/platform/forge/add-scheduled-trigger/"},{"title":"Debug functions using IntelliJ","url":"/platform/forge/debug-functions-using-intellij/"},{"title":"Debug functions using VS Code","url":"/platform/forge/debug-functions-using-vscode/"},{"title":"Profile app performance with tunnel debugger","url":"/platform/forge/profiling-node-js-app-code-tunnel/"},{"title":"Implement a dynamic profile retriever","url":"/platform/forge/implement-a-dynamic-profile-retriever-with-external-authentication/"},{"title":"Migrate an app from Connect to Forge","url":"/platform/adopting-forge-from-connect/"},{"title":"Migrate an app from UI Kit 1 to UI Kit","url":"/platform/forge/ui-kit/migration-example/"},{"title":"Set up continuous delivery","url":"/platform/forge/set-up-cicd/"},{"title":"Queue app interactions with Storage API","url":"/platform/forge/storage-api-limit-handling/"},{"title":"Use custom entities to store structured data","url":"/platform/forge/custom-entities-store-structured-data/"},{"title":"Use an external OAuth 2.0 API with fetch","url":"/platform/forge/use-an-external-oauth-2.0-api-with-fetch/"},{"title":"Add routing to a full-page app in Jira","url":"/platform/forge/add-routing-to-a-full-page-app/"},{"title":"Use the storage API in Confluence","url":"/platform/forge/create-confluence-macro-with-storage-api"},{"title":"Rovo (Preview)","url":"/platform/forge/build-a-hello-world-rovo-agent/","isGroup":true,"groupItems":[{"title":"Build a Rovo Agent app","url":"/platform/forge/build-a-hello-world-rovo-agent/"},{"title":"Build a Q&A Rovo Agent for Confluence","url":"/platform/forge/build-a-q-and-a-rovo-agent-for-confluence"},{"title":"Build a Jira issue analyst Rovo Agent","url":"/platform/forge/build-a-jira-issue-analyst-rovo-agent"}]},{"title":"Jira","url":"/platform/forge/build-a-custom-ui-app-in-jira/","isGroup":true,"groupItems":[{"title":"Automate Jira with triggers","url":"/platform/forge/automate-jira-using-triggers/"},{"title":"Build a Jira comments summarizer app with OpenAI","url":"/platform/forge/build-jira-comments-summarizer-with-openai/"},{"title":"Use a workflow validator to check issue assignments","url":"/platform/forge/check-jira-issues-assigned-using-workflow-validator/"},{"title":"Build a custom UI app","url":"/platform/forge/build-a-custom-ui-app-in-jira/"}]},{"title":"Jira Service Management","url":"/platform/forge/build-a-custom-ui-app-in-jira-service-management/","isGroup":true,"groupItems":[{"title":"Import third party data into Assets","url":"/platform/forge/assets-import-app/"},{"title":"Use Async Events API to queue jobs to import objects into Assets","url":"/platform/forge/queue-events-with-async-events-api-to-import-assets/"},{"title":"Build a custom UI app","url":"/platform/forge/build-a-custom-ui-app-in-jira-service-management/"}]},{"title":"Confluence","url":"/platform/forge/build-a-custom-ui-app-in-confluence/","isGroup":true,"groupItems":[{"title":"Create a question generator app in multiple languages using i18n","url":"/platform/forge/create-a-question-generator-app-in-multiple-languages-using-i18n"},{"title":"Create a quiz app using UI Kit","url":"/platform/forge/create-a-quiz-app-using-ui-kit/"},{"title":"Add configuration to a macro with UI Kit","url":"/platform/forge/add-configuration-to-a-macro-with-ui-kit/"},{"title":"Create a logo designer app using the Frame component (EAP) ","url":"/platform/forge/ui-kit/components/frame-tutorial"},{"title":"Use space settings and content byline to implement space news","url":"/platform/forge/space-news/"},{"title":"Use content actions to count page macros","url":"/platform/forge/macros-in-the-page/"},{"title":"Build a Custom UI app","url":"/platform/forge/build-a-custom-ui-app-in-confluence/"},{"title":"Build a Confluence keyword extractor with OpenAI","url":"/platform/forge/build-confluence-keyword-extractor-with-openai/"},{"title":"Use highlighted text in a Confluence app","url":"/platform/forge/create-confluence-contextmenu-module/"}]},{"title":"Bitbucket","url":"/platform/forge/automate-bitbucket-using-triggers/","isGroup":true,"groupItems":[{"title":"Automate Bitbucket with triggers","url":"/platform/forge/automate-bitbucket-using-triggers/"},{"title":"Build a pull request title validator with custom merge checks","url":"/platform/forge/build-a-pull-request-title-validator-with-custom-merge-checks/"},{"title":"Orchestrate your builds using Dynamic Pipelines","url":"/platform/forge/orchestrate-your-builds-using-dynamic-pipelines/"}]}]},{"title":"Example apps","name":"examples","expandAlways":false,"items":[{"title":"Bitbucket","url":"/platform/forge/example-apps-bitbucket/"},{"title":"Compass","url":"/platform/forge/example-apps-compass/"},{"title":"Confluence","url":"/platform/forge/example-apps-confluence/"},{"title":"Jira","url":"/platform/forge/example-apps-jira/"},{"title":"Jira Service Management","url":"/platform/forge/example-apps-jsm/"},{"title":"Rovo (Preview)","url":"/platform/forge/example-apps-rovo/"}]},{"title":"Enterprise development","name":"enterprise","expandAlways":false,"items":[{"title":"Use the Forge CLI on a corporate network","url":"/platform/forge/enterprise/use-forge-cli-on-corporate-network/"}]},{"title":"Developer console","name":"developer-console","expandAlways":false,"items":[{"title":"Manage your apps","url":"/platform/forge/manage-your-apps/"},{"title":"Distribute your apps","url":"/platform/forge/distribute-your-apps/"},{"title":"Monitor app metrics","url":"/platform/forge/monitor-app-metrics/","isGroup":true,"groupItems":[{"title":"Monitor invocation metrics","url":"/platform/forge/monitor-invocation-metrics/"},{"title":"Monitor API metrics","url":"/platform/forge/monitor-api-metrics/"},{"title":"Monitor cache metrics (EAP)","url":"/platform/forge/monitor-cache-metrics/"},{"title":"Export app metrics","url":"/platform/forge/export-app-metrics/"}]},{"title":"Monitor app logs","url":"/platform/forge/monitor-app-logs/","isGroup":true,"groupItems":[{"title":"Access app logs","url":"/platform/forge/access-app-logs/"},{"title":"View app logs","url":"/platform/forge/view-app-logs/"},{"title":"Export app logs","url":"/platform/forge/export-app-logs/"}]},{"title":"Alerts","url":"/platform/forge/alerts/","isGroup":true,"groupItems":[{"title":"Create alert rules","url":"/platform/forge/create-alert-rules/"},{"title":"Manage alert rules","url":"/platform/forge/manage-alert-rules/"},{"title":"View open and closed alerts","url":"/platform/forge/view-open-and-closed-alerts/"}]},{"title":"View app installations","url":"/platform/forge/view-app-installations/"},{"title":"View app storage","url":"/platform/forge/view-app-storage/"},{"title":"Manage app contributors","url":"/platform/forge/manage-app-contributors/"}]},{"title":"Legal and privacy guidelines","name":"privacy-guidelines","expandAlways":false,"items":[{"title":"Privacy and security FAQs","url":"/platform/forge/faq-privacy-security/"},{"title":"Shared responsibility model","url":"/platform/forge/shared-responsibility-model/"},{"title":"Forge Terms","url":"/platform/forge/developer-terms/"},{"title":"About the Forge Data Processing Addendum","url":"/platform/forge/about-the-forge-data-processing-addendum/"},{"title":"User privacy guide for app developers","url":"/platform/forge/user-privacy-guidelines/"},{"title":"Logging guidelines for app developers","url":"/platform/forge/logging-guidelines/"}]},{"title":"Design guidelines","name":"design-guidelines","expandAlways":false,"items":[{"title":"Jira full-page modules","url":"/platform/forge/jira-full-page-modules/"}]},{"title":"Feedback","name":"feedback","expandAlways":false,"items":[{"title":"Give feedback","url":"/platform/forge/give-feedback/"},{"title":"Join the Forge developer community","url":"https://community.developer.atlassian.com/c/forge"}]}]},{"title":"Reference","name":"reference","url":"/platform/forge/manifest-reference/","subcategories":[{"title":"CLI","name":"cli-reference","expandAlways":true,"items":[{"title":"Overview","url":"/platform/forge/cli-reference/"},{"title":"autocomplete","url":"/platform/forge/cli-reference/autocomplete"},{"title":"create","url":"/platform/forge/cli-reference/create"},{"title":"deploy","url":"/platform/forge/cli-reference/deploy"},{"title":"environments","url":"/platform/forge/cli-reference/environments","isGroup":true,"groupItems":[{"title":"create","url":"/platform/forge/cli-reference/environments-create"},{"title":"delete","url":"/platform/forge/cli-reference/environments-delete"},{"title":"list","url":"/platform/forge/cli-reference/environments-list"}]},{"title":"feedback","url":"/platform/forge/cli-reference/feedback"},{"title":"install","url":"/platform/forge/cli-reference/install","isGroup":true,"groupItems":[{"title":"list","url":"/platform/forge/cli-reference/install-list"}]},{"title":"lint","url":"/platform/forge/cli-reference/lint"},{"title":"login","url":"/platform/forge/cli-reference/login"},{"title":"logout","url":"/platform/forge/cli-reference/logout"},{"title":"logs","url":"/platform/forge/cli-reference/logs"},{"title":"providers","url":"/platform/forge/cli-reference/providers","isGroup":true,"groupItems":[{"title":"configure","url":"/platform/forge/cli-reference/providers-configure"}]},{"title":"register","url":"/platform/forge/cli-reference/register"},{"title":"settings","url":"/platform/forge/cli-reference/settings","isGroup":true,"groupItems":[{"title":"list","url":"/platform/forge/cli-reference/settings-list"},{"title":"set","url":"/platform/forge/cli-reference/settings-set"}]},{"title":"storage","url":"/platform/forge/cli-reference/storage","isGroup":true,"groupItems":[{"title":"entities","url":"/platform/forge/cli-reference/storage-entities"}]},{"title":"tunnel","url":"/platform/forge/cli-reference/tunnel"},{"title":"uninstall","url":"/platform/forge/cli-reference/uninstall"},{"title":"variables","url":"/platform/forge/cli-reference/variables","isGroup":true,"groupItems":[{"title":"list","url":"/platform/forge/cli-reference/variables-list"},{"title":"set","url":"/platform/forge/cli-reference/variables-set"},{"title":"unset","url":"/platform/forge/cli-reference/variables-unset"}]},{"title":"webtrigger","url":"/platform/forge/cli-reference/webtrigger"},{"title":"whoami","url":"/platform/forge/cli-reference/whoami"}]},{"title":"Manifest","name":"manifest-reference","expandAlways":true,"items":[{"title":"Overview","url":"/platform/forge/manifest-reference/"},{"title":"Display conditions","url":"/platform/forge/manifest-reference/display-conditions/","isGroup":true,"groupItems":[{"title":"Usage with Confluence modules","url":"/platform/forge/manifest-reference/display-conditions/confluence/"},{"title":"Usage with Jira modules","url":"/platform/forge/manifest-reference/display-conditions/jira/"}]},{"title":"Endpoint","url":"/platform/forge/manifest-reference/endpoint/"},{"title":"Keyboard shortcuts","url":"/platform/forge/manifest-reference/keyboard-shortcuts/"},{"title":"Permissions","url":"/platform/forge/manifest-reference/permissions/","isGroup":true,"groupItems":[{"title":"Forge scopes","url":"/platform/forge/manifest-reference/scopes-forge/"},{"title":"Bitbucket scopes","url":"/platform/forge/manifest-reference/scopes-product-bitbucket/"},{"title":"Compass scopes","url":"/platform/forge/manifest-reference/scopes-product-compass/"},{"title":"Confluence scopes","url":"/platform/forge/manifest-reference/scopes-product-confluence/"},{"title":"Jira scopes","url":"/platform/forge/manifest-reference/scopes-product-jira/"},{"title":"Jira Software scopes","url":"/platform/forge/manifest-reference/scopes-product-jsw/"},{"title":"Jira Service Management scopes","url":"/platform/forge/manifest-reference/scopes-product-jsm/"}]},{"title":"Providers","url":"/platform/forge/manifest-reference/providers/"},{"title":"Remotes","url":"/platform/forge/manifest-reference/remotes/"},{"title":"Resources","url":"/platform/forge/manifest-reference/resources/"},{"title":"Variables","url":"/platform/forge/manifest-reference/variables/"},{"title":"Translations","url":"/platform/forge/manifest-reference/translations/","isGroup":true,"groupItems":[{"title":"Forge supported locale codes","url":"/platform/forge/manifest-reference/forge-supported-locale-codes/"}]}]},{"title":"Modules","name":"modules","expandAlways":true,"items":[{"title":"Overview","url":"/platform/forge/manifest-reference/modules/"},{"title":"Bitbucket modules","url":"/platform/forge/manifest-reference/modules/index-bitbucket/","isGroup":true,"groupItems":[{"title":"Custom merge check","url":"/platform/forge/manifest-reference/modules/bitbucket-merge-check/"},{"title":"Dynamic Pipelines provider","url":"/platform/forge/manifest-reference/modules/bitbucket-dynamic-pipelines-provider/"},{"title":"Repository code overview card","url":"/platform/forge/manifest-reference/modules/bitbucket-repository-code-overview-card/"},{"title":"Repository code overview action","url":"/platform/forge/manifest-reference/modules/bitbucket-repository-code-overview-action/"},{"title":"Repository pull request card","url":"/platform/forge/manifest-reference/modules/bitbucket-repository-pull-request-card/"},{"title":"Repository pull request action","url":"/platform/forge/manifest-reference/modules/bitbucket-repository-pull-request-action/"},{"title":"Repository main menu page","url":"/platform/forge/manifest-reference/modules/bitbucket-repository-main-menu-page/"},{"title":"Repository settings menu page","url":"/platform/forge/manifest-reference/modules/bitbucket-repository-settings-menu-page/"},{"title":"Workspace settings menu page","url":"/platform/forge/manifest-reference/modules/bitbucket-workspace-settings-menu-page/"}]},{"title":"Common modules","url":"/platform/forge/manifest-reference/modules/index-common/","isGroup":true,"groupItems":[{"title":"Consumer","url":"/platform/forge/manifest-reference/modules/consumer/"},{"title":"Function","url":"/platform/forge/manifest-reference/modules/function/"},{"title":"Scheduled trigger","url":"/platform/forge/manifest-reference/modules/scheduled-trigger/"},{"title":"Trigger","url":"/platform/forge/manifest-reference/modules/trigger/"},{"title":"Web trigger","url":"/platform/forge/manifest-reference/modules/web-trigger/"}]},{"title":"Compass modules","url":"/platform/forge/manifest-reference/modules/index-compass/","isGroup":true,"groupItems":[{"title":"Admin page","url":"/platform/forge/manifest-reference/modules/compass-admin-page/"},{"title":"Component page","url":"/platform/forge/manifest-reference/modules/compass-component-page/"},{"title":"Data provider","url":"/platform/forge/manifest-reference/modules/compass-data-provider/"},{"title":"Global page","url":"/platform/forge/manifest-reference/modules/compass-global-page/"},{"title":"Team page","url":"/platform/forge/manifest-reference/modules/compass-team-page/"}]},{"title":"Confluence modules","url":"/platform/forge/manifest-reference/modules/index-confluence/","isGroup":true,"groupItems":[{"title":"Content action","url":"/platform/forge/manifest-reference/modules/confluence-content-action/"},{"title":"Content byline item","url":"/platform/forge/manifest-reference/modules/confluence-content-byline-item/"},{"title":"Context menu","url":"/platform/forge/manifest-reference/modules/confluence-context-menu/"},{"title":"Custom content","url":"/platform/forge/manifest-reference/modules/confluence-custom-content/"},{"title":"Global page","url":"/platform/forge/manifest-reference/modules/confluence-global-page/"},{"title":"Global settings","url":"/platform/forge/manifest-reference/modules/confluence-global-settings/"},{"title":"Homepage feed","url":"/platform/forge/manifest-reference/modules/confluence-homepage-feed/"},{"title":"Space page","url":"/platform/forge/manifest-reference/modules/confluence-space-page/"},{"title":"Space settings","url":"/platform/forge/manifest-reference/modules/confluence-space-settings/"},{"title":"Macro","url":"/platform/forge/manifest-reference/modules/macro/"}]},{"title":"Jira modules","url":"/platform/forge/manifest-reference/modules/index-jira/","isGroup":true,"groupItems":[{"title":"Admin page","url":"/platform/forge/manifest-reference/modules/jira-admin-page/"},{"title":"Custom field","url":"/platform/forge/manifest-reference/modules/jira-custom-field/"},{"title":"Custom field type","url":"/platform/forge/manifest-reference/modules/jira-custom-field-type/"},{"title":"Dashboard background script","url":"/platform/forge/manifest-reference/modules/jira-dashboard-background-script/"},{"title":"Dashboard gadget","url":"/platform/forge/manifest-reference/modules/jira-dashboard-gadget/"},{"title":"Entity property","url":"/platform/forge/manifest-reference/modules/jira-entity-property/"},{"title":"Global page","url":"/platform/forge/manifest-reference/modules/jira-global-page/"},{"title":"Global permission","url":"/platform/forge/manifest-reference/modules/jira-global-permission/"},{"title":"Issue action","url":"/platform/forge/manifest-reference/modules/jira-issue-action/"},{"title":"Issue activity","url":"/platform/forge/manifest-reference/modules/jira-issue-activity/"},{"title":"Issue glance","url":"/platform/forge/manifest-reference/modules/jira-issue-glance/"},{"title":"Issue context","url":"/platform/forge/manifest-reference/modules/jira-issue-context/"},{"title":"Issue panel","url":"/platform/forge/manifest-reference/modules/jira-issue-panel/"},{"title":"Issue view background script","url":"/platform/forge/manifest-reference/modules/jira-issue-view-background-script/"},{"title":"JQL function (preview)","url":"/platform/forge/manifest-reference/modules/jql-function/"},{"title":"Project page","url":"/platform/forge/manifest-reference/modules/jira-project-page/"},{"title":"Project permission","url":"/platform/forge/manifest-reference/modules/jira-project-permission/"},{"title":"Project settings page","url":"/platform/forge/manifest-reference/modules/jira-project-settings-page/"},{"title":"UI modifications","url":"/platform/forge/manifest-reference/modules/jira-ui-modifications/"},{"title":"Workflow validator (preview)","url":"/platform/forge/manifest-reference/modules/jira-workflow-validator/"},{"title":"Workflow condition (preview)","url":"/platform/forge/manifest-reference/modules/jira-workflow-condition/"},{"title":"Workflow post function (preview)","url":"/platform/forge/manifest-reference/modules/jira-workflow-post-function/"}]},{"title":"Jira Service Management modules","url":"/platform/forge/manifest-reference/modules/index-jsm/","isGroup":true,"groupItems":[{"title":"Assets Import Type","url":"/platform/forge/manifest-reference/modules/jira-service-management-assets-import-type/"},{"title":"Organization panel","url":"/platform/forge/manifest-reference/modules/jira-service-management-organization-panel/"},{"title":"Portal footer","url":"/platform/forge/manifest-reference/modules/jira-service-management-portal-footer/"},{"title":"Portal header","url":"/platform/forge/manifest-reference/modules/jira-service-management-portal-header/"},{"title":"Portal profile panel","url":"/platform/forge/manifest-reference/modules/jira-service-management-portal-profile-panel/"},{"title":"Portal request create property panel","url":"/platform/forge/manifest-reference/modules/jira-service-management-portal-request-create-property-panel/"},{"title":"Portal request detail","url":"/platform/forge/manifest-reference/modules/jira-service-management-portal-request-detail/"},{"title":"Portal request detail panel","url":"/platform/forge/manifest-reference/modules/jira-service-management-portal-request-detail-panel/"},{"title":"Portal request view action","url":"/platform/forge/manifest-reference/modules/jira-service-management-portal-request-view-action/"},{"title":"Portal subheader","url":"/platform/forge/manifest-reference/modules/jira-service-management-portal-subheader/"},{"title":"Portal user menu action","url":"/platform/forge/manifest-reference/modules/jira-service-management-portal-user-menu-action/"},{"title":"Queue page","url":"/platform/forge/manifest-reference/modules/jira-service-management-queue-page/"}]},{"title":"Connect module equivalents","url":"/platform/forge/manifest-reference/modules/connect-module-equivalents/"},{"title":"Rovo modules (Preview)","url":"/platform/forge/manifest-reference/modules/rovo-index/","isGroup":true,"groupItems":[{"title":"Rovo Agent","url":"/platform/forge/manifest-reference/modules/rovo-agent/"},{"title":"Action","url":"/platform/forge/manifest-reference/modules/rovo-action/"}]}]},{"title":"Functions","name":"functions","expandAlways":true,"items":[{"title":"Overview","url":"/platform/forge/function-reference/index/"},{"title":"Runtimes","url":"/platform/forge/runtime-reference/","isGroup":true,"groupItems":[{"title":"Node.js","url":"/platform/forge/function-reference/nodejs-runtime/"},{"title":"Upgrading from legacy runtime","url":"/platform/forge/runtime-reference/legacy-runtime-migrating/"},{"title":"Legacy runtime (deprecated)","url":"/platform/forge/runtime-reference/legacy-runtime-reference/"}]},{"title":"Forge resolver","url":"/platform/forge/runtime-reference/forge-resolver/"},{"title":"Scheduled triggers","url":"/platform/forge/function-reference/scheduled-trigger/"},{"title":"Web triggers","url":"/platform/forge/runtime-reference/web-trigger/","isGroup":true,"groupItems":[{"title":"Basic usage","url":"/platform/forge/runtime-reference/web-trigger/"},{"title":"Generating a webtrigger URL via SDK","url":"/platform/forge/runtime-reference/web-trigger-api/"}]},{"title":"Async functions","url":"/platform/forge/runtime-reference/async-events-api/","isGroup":true,"groupItems":[{"title":"Basic usage","url":"/platform/forge/runtime-reference/async-events-api/"},{"title":"Error handling","url":"/platform/forge/runtime-reference/async-events-api-error-handling/"}]},{"title":"Product REST APIs","url":"/platform/forge/apis-reference/product-rest-api-reference/","isGroup":true,"groupItems":[{"title":"Bitbucket API requests","url":"/platform/forge/apis-reference/fetch-api-product.requestbitbucket/"},{"title":"Confluence API requests","url":"/platform/forge/apis-reference/fetch-api-product.requestconfluence/"},{"title":"Jira API requests","url":"/platform/forge/apis-reference/fetch-api-product.requestjira/"},{"title":"GraphQL API requests","url":"/platform/forge/apis-reference/fetch-api-product.requestgraph/"}]},{"title":"Fetch APIs","url":"/platform/forge/runtime-reference/fetch-api/","isGroup":true,"groupItems":[{"title":"Basic fetch client","url":"/platform/forge/runtime-reference/fetch-api.basic/"},{"title":"External authentication","url":"/platform/forge/runtime-reference/external-fetch-api/"}]},{"title":"Invoke Remote API","url":"/platform/forge/runtime-reference/invoke-remote-api/"},{"title":"App context API","url":"/platform/forge/runtime-reference/app-context-api/"},{"title":"Privacy API","url":"/platform/forge/runtime-reference/privacy-api/"},{"title":"Authorize API","url":"/platform/forge/runtime-reference/authorize-api/"},{"title":"Properties API (deprecated)","url":"/platform/forge/runtime-reference/properties-api/"}]},{"title":"Storage","name":"storage","items":[{"title":"Overview","url":"/platform/forge/runtime-reference/storage-api/"},{"title":"Key-Value Store","url":"/platform/forge/runtime-reference/storage-api-basic/","isGroup":true,"groupItems":[{"title":"Storing data","url":"/platform/forge/runtime-reference/storage-api-basic-api/"},{"title":"Querying data","url":"/platform/forge/runtime-reference/storage-api-query/"},{"title":"Encrypting stored data","url":"/platform/forge/runtime-reference/storage-api-secret/"}]},{"title":"Custom Entity Store","url":"/platform/forge/storage-reference/storage-api-custom-entities/","isGroup":true,"groupItems":[{"title":"Defining entities","url":"/platform/forge/runtime-reference/custom-entities/"},{"title":"Storing entities","url":"/platform/forge/runtime-reference/storage-api-custom-entities/"},{"title":"Querying data","url":"/platform/forge/runtime-reference/storage-api-query-complex/"}]},{"title":"SQL (EAP)","url":"/platform/forge/storage-reference/sql/","isGroup":true,"groupItems":[{"title":"Tutorial","url":"/platform/forge/storage-reference/sql-tutorial/"},{"title":"Execute SQL operations","url":"/platform/forge/storage-reference/sql-api/"},{"title":"Monitoring SQL metrics","url":"/platform/forge/monitor-sql-metrics/"},{"title":"Error handling","url":"/platform/forge/storage-reference/sql-handling-errors/"}]},{"title":"Cache (EAP)","url":"/platform/forge/storage-reference/storage-cache-api/","isGroup":true,"groupItems":[{"title":"Caching data","url":"/platform/forge/storage-reference/cache/"},{"title":"Error handling","url":"/platform/forge/storage-reference/cache-handling-errors/"}]}]},{"title":"User Interface","name":"user-interface","expandAlways":true,"items":[{"title":"Overview","url":"/platform/forge/ui-kit/overview/"},{"title":"UI Kit components","url":"/platform/forge/ui-kit/components/","isGroup":true,"groupItems":[{"title":"Badge","url":"/platform/forge/ui-kit/components/badge/"},{"title":"Box","url":"/platform/forge/ui-kit/components/box/"},{"title":"Button","url":"/platform/forge/ui-kit/components/button/"},{"title":"Button group","url":"/platform/forge/ui-kit/components/button-group/"},{"title":"Calendar (Preview)","url":"/platform/forge/ui-kit/components/calendar/"},{"title":"Chart - Bar (EAP)","url":"/platform/forge/ui-kit/components/bar-chart/"},{"title":"Chart - Horizontal bar (EAP)","url":"/platform/forge/ui-kit/components/horizontal-bar-chart/"},{"title":"Chart - Horizontal stack bar (EAP)","url":"/platform/forge/ui-kit/components/horizontal-stack-bar-chart/"},{"title":"Chart - Line (EAP)","url":"/platform/forge/ui-kit/components/line-chart/"},{"title":"Chart - Pie (EAP)","url":"/platform/forge/ui-kit/components/pie-chart/"},{"title":"Chart - Single value (EAP)","url":"/platform/forge/ui-kit/components/single-value-chart/"},{"title":"Chart - Stack bar (EAP)","url":"/platform/forge/ui-kit/components/stack-bar-chart/"},{"title":"Checkbox","url":"/platform/forge/ui-kit/components/checkbox/"},{"title":"Checkbox group (Preview)","url":"/platform/forge/ui-kit/components/checkbox-group/"},{"title":"Code","url":"/platform/forge/ui-kit/components/code/"},{"title":"Code block","url":"/platform/forge/ui-kit/components/code-block/"},{"title":"Date picker","url":"/platform/forge/ui-kit/components/date-picker/"},{"title":"Dynamic table","url":"/platform/forge/ui-kit/components/dynamic-table/"},{"title":"Empty state (Preview)","url":"/platform/forge/ui-kit/components/empty-state/"},{"title":"Form","url":"/platform/forge/ui-kit/components/form/"},{"title":"Frame (EAP)","url":"/platform/forge/ui-kit/components/frame"},{"title":"Heading","url":"/platform/forge/ui-kit/components/heading/"},{"title":"Icon","url":"/platform/forge/ui-kit/components/icon/"},{"title":"Image","url":"/platform/forge/ui-kit/components/image/"},{"title":"Inline","url":"/platform/forge/ui-kit/components/inline/"},{"title":"Inline edit (Preview)","url":"/platform/forge/ui-kit/components/inline-edit/"},{"title":"Link","url":"/platform/forge/ui-kit/components/link/"},{"title":"List (Preview)","url":"/platform/forge/ui-kit/components/list/"},{"title":"Lozenge","url":"/platform/forge/ui-kit/components/lozenge/"},{"title":"Modal","url":"/platform/forge/ui-kit/components/modal/"},{"title":"Popup (Preview)","url":"/platform/forge/ui-kit/components/popup/"},{"title":"Progress bar","url":"/platform/forge/ui-kit/components/progress-bar/"},{"title":"Progress tracker","url":"/platform/forge/ui-kit/components/progress-tracker/"},{"title":"Radio","url":"/platform/forge/ui-kit/components/radio/"},{"title":"Radio group","url":"/platform/forge/ui-kit/components/radio-group/"},{"title":"Range","url":"/platform/forge/ui-kit/components/range/"},{"title":"Section message","url":"/platform/forge/ui-kit/components/section-message/"},{"title":"Select","url":"/platform/forge/ui-kit/components/select/"},{"title":"Spinner","url":"/platform/forge/ui-kit/components/spinner/"},{"title":"Stack","url":"/platform/forge/ui-kit/components/stack/"},{"title":"Tabs","url":"/platform/forge/ui-kit/components/tabs/"},{"title":"Tag","url":"/platform/forge/ui-kit/components/tag/"},{"title":"Tag group","url":"/platform/forge/ui-kit/components/tag-group/"},{"title":"Text","url":"/platform/forge/ui-kit/components/text/"},{"title":"Text area","url":"/platform/forge/ui-kit/components/text-area/"},{"title":"Text field","url":"/platform/forge/ui-kit/components/textfield/"},{"title":"Time picker (Preview)","url":"/platform/forge/ui-kit/components/time-picker/"},{"title":"Toggle","url":"/platform/forge/ui-kit/components/toggle/"},{"title":"Tooltip","url":"/platform/forge/ui-kit/components/tooltip/"},{"title":"User","url":"/platform/forge/ui-kit/components/user/"},{"title":"User group","url":"/platform/forge/ui-kit/components/user-group/"},{"title":"User picker","url":"/platform/forge/ui-kit/components/user-picker/"},{"title":"XCSS","url":"/platform/forge/ui-kit/components/xcss/"}]},{"title":"Jira UI Kit components","url":"/platform/forge/ui-kit/jira-components/","isGroup":true,"groupItems":[{"title":"Custom field edit (Preview)","url":"/platform/forge/ui-kit/jira-components/custom-field-edit/"}]},{"title":"UI Kit hooks","url":"/platform/forge/ui-kit/hooks/hooks-reference/","isGroup":true,"groupItems":[{"title":"useConfig","url":"/platform/forge/ui-kit/hooks/use-config/"},{"title":"useContentProperty","url":"/platform/forge/ui-kit/hooks/use-content-property/"},{"title":"useForm","url":"/platform/forge/ui-kit/hooks/use-form/"},{"title":"useIssueProperty","url":"/platform/forge/ui-kit/hooks/use-issue-property/"},{"title":"useProductContext","url":"/platform/forge/ui-kit/hooks/use-product-context/"},{"title":"useSpaceProperty","url":"/platform/forge/ui-kit/hooks/use-space-property/"},{"title":"useTranslation","url":"/platform/forge/ui-kit/hooks/use-translation/"}]},{"title":"Forge bridge APIs","url":"/platform/forge/apis-reference/ui-api-bridge/bridge","isGroup":true,"groupItems":[{"title":"events","url":"/platform/forge/apis-reference/ui-api-bridge/events/"},{"title":"i18n","url":"/platform/forge/apis-reference/ui-api-bridge/i18n/"},{"title":"invoke","url":"/platform/forge/apis-reference/ui-api-bridge/invoke/"},{"title":"invokeRemote","url":"/platform/forge/apis-reference/ui-api-bridge/invokeRemote/"},{"title":"Modal","url":"/platform/forge/apis-reference/ui-api-bridge/modal/"},{"title":"requestBitbucket","url":"/platform/forge/apis-reference/ui-api-bridge/requestBitbucket/"},{"title":"requestConfluence","url":"/platform/forge/apis-reference/ui-api-bridge/requestConfluence/"},{"title":"requestJira","url":"/platform/forge/apis-reference/ui-api-bridge/requestJira/"},{"title":"router","url":"/platform/forge/apis-reference/ui-api-bridge/router/"},{"title":"showFlag","url":"/platform/forge/apis-reference/ui-api-bridge/showFlag/"},{"title":"view","url":"/platform/forge/apis-reference/ui-api-bridge/view/"}]},{"title":"Jira bridge APIs","url":"/platform/forge/apis-reference/jira-api-bridge/bridge/","isGroup":true,"groupItems":[{"title":"ViewIssueModal","url":"/platform/forge/apis-reference/jira-api-bridge/viewIssueModal/"},{"title":"CreateIssueModal","url":"/platform/forge/apis-reference/jira-api-bridge/createIssueModal/"},{"title":"uiModifications","url":"/platform/forge/apis-reference/jira-api-bridge/uiModifications/"},{"title":"workflowRules (EAP)","url":"/platform/forge/apis-reference/jira-api-bridge/workflowRules/"}]},{"title":"Custom UI","url":"/platform/forge/custom-ui/iframe"},{"title":"Upgrade UI Kit versions","url":"/platform/forge/ui-kit/upgrade-guides","isGroup":true,"groupItems":[{"title":"Upgrade from UI Kit 1 to UI Kit latest version","url":"/platform/forge/ui-kit/upgrade-to-ui-kit-latest/"},{"title":"Upgrade to @forge/react major version 10","url":"/platform/forge/ui-kit/version-10-changes/"}]},{"title":"Previous versions","url":"/platform/forge/ui-kit-components/previous_versions","isGroup":true,"groupItems":[{"title":"UI Kit - @forge/react@9","url":"/platform/forge/ui-kit-2/all-uikprev-components/"},{"title":"UI Kit 1 overview","url":"/platform/forge/ui-kit-components/ui1-about/"},{"title":"UI Kit 1 components","url":"/platform/forge/ui-kit-components/uik1_all/"},{"title":"UI Kit 1 module components","url":"/platform/forge/ui-kit-components/uik1_modules/"},{"title":"UI Kit 1 hooks","url":"/platform/forge/ui-kit-components/uik1_hooks/"}]}]},{"title":"Events","name":"events-reference","expandAlways":true,"items":[{"title":"Overview","url":"/platform/forge/events-reference/"},{"title":"Product events","url":"/platform/forge/events-reference/product_events/","isGroup":true,"groupItems":[{"title":"Bitbucket events","url":"/platform/forge/events-reference/bitbucket/"},{"title":"Compass events","url":"/platform/forge/events-reference/compass/"},{"title":"Confluence events","url":"/platform/forge/events-reference/confluence/"},{"title":"Jira events","url":"/platform/forge/events-reference/jira/"},{"title":"Jira Software events","url":"/platform/forge/events-reference/jira-software/"}]},{"title":"Life cycle events","url":"/platform/forge/events-reference/life-cycle/"},{"title":"Data security policy events","url":"/platform/forge/events-reference/data-security-policy-events/"},{"title":"Scheduled trigger events","url":"/platform/forge/events-reference/scheduled-trigger/"},{"title":"Web trigger events","url":"/platform/forge/events-reference/web-trigger/"}]}]},{"title":"Get help","name":"help","url":"/platform/forge/get-help/"},{"name":"changelog","title":"Changelog","url":"/platform/forge/changelog/","apiGroups":["forge-core-platform","forge-jira-cloud-platform","forge-jsm-cloud","forge-jsw-cloud","forge-confluence-cloud"]}],"enabledVersion":"1.5800.884"},"navigation":[{"label":"CLI","href":"/platform/forge/cli-reference/","expandState":"collapsed","childNavigationNodes":[{"label":"Overview","href":"/platform/forge/cli-reference/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"autocomplete","href":"/platform/forge/cli-reference/autocomplete/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"create","href":"/platform/forge/cli-reference/create/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"deploy","href":"/platform/forge/cli-reference/deploy/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"environments","href":"/platform/forge/cli-reference/environments/","expandState":"collapsed","childNavigationNodes":[{"label":"create","href":"/platform/forge/cli-reference/environments-create/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"delete","href":"/platform/forge/cli-reference/environments-delete/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"list","href":"/platform/forge/cli-reference/environments-list/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"feedback","href":"/platform/forge/cli-reference/feedback/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"install","href":"/platform/forge/cli-reference/install/","expandState":"collapsed","childNavigationNodes":[{"label":"list","href":"/platform/forge/cli-reference/install-list/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"lint","href":"/platform/forge/cli-reference/lint/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"login","href":"/platform/forge/cli-reference/login/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"logout","href":"/platform/forge/cli-reference/logout/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"logs","href":"/platform/forge/cli-reference/logs/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"providers","href":"/platform/forge/cli-reference/providers/","expandState":"collapsed","childNavigationNodes":[{"label":"configure","href":"/platform/forge/cli-reference/providers-configure/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"register","href":"/platform/forge/cli-reference/register/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"settings","href":"/platform/forge/cli-reference/settings/","expandState":"collapsed","childNavigationNodes":[{"label":"list","href":"/platform/forge/cli-reference/settings-list/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"set","href":"/platform/forge/cli-reference/settings-set/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"storage","href":"/platform/forge/cli-reference/storage/","expandState":"collapsed","childNavigationNodes":[{"label":"entities","href":"/platform/forge/cli-reference/storage-entities/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"tunnel","href":"/platform/forge/cli-reference/tunnel/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"uninstall","href":"/platform/forge/cli-reference/uninstall/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"variables","href":"/platform/forge/cli-reference/variables/","expandState":"collapsed","childNavigationNodes":[{"label":"list","href":"/platform/forge/cli-reference/variables-list/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"set","href":"/platform/forge/cli-reference/variables-set/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"unset","href":"/platform/forge/cli-reference/variables-unset/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"webtrigger","href":"/platform/forge/cli-reference/webtrigger/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"whoami","href":"/platform/forge/cli-reference/whoami/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Manifest","href":"/platform/forge/manifest-reference/","expandState":"collapsed","childNavigationNodes":[{"label":"Overview","href":"/platform/forge/manifest-reference/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Display conditions","href":"/platform/forge/manifest-reference/display-conditions/","expandState":"collapsed","childNavigationNodes":[{"label":"Usage with Confluence modules","href":"/platform/forge/manifest-reference/display-conditions/confluence/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Usage with Jira modules","href":"/platform/forge/manifest-reference/display-conditions/jira/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Endpoint","href":"/platform/forge/manifest-reference/endpoint/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Keyboard shortcuts","href":"/platform/forge/manifest-reference/keyboard-shortcuts/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Permissions","href":"/platform/forge/manifest-reference/permissions/","expandState":"collapsed","childNavigationNodes":[{"label":"Forge scopes","href":"/platform/forge/manifest-reference/scopes-forge/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Bitbucket scopes","href":"/platform/forge/manifest-reference/scopes-product-bitbucket/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Compass scopes","href":"/platform/forge/manifest-reference/scopes-product-compass/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Confluence scopes","href":"/platform/forge/manifest-reference/scopes-product-confluence/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Jira scopes","href":"/platform/forge/manifest-reference/scopes-product-jira/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Jira Software scopes","href":"/platform/forge/manifest-reference/scopes-product-jsw/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Jira Service Management scopes","href":"/platform/forge/manifest-reference/scopes-product-jsm/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Providers","href":"/platform/forge/manifest-reference/providers/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Remotes","href":"/platform/forge/manifest-reference/remotes/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Resources","href":"/platform/forge/manifest-reference/resources/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Variables","href":"/platform/forge/manifest-reference/variables/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Translations","href":"/platform/forge/manifest-reference/translations/","expandState":"collapsed","childNavigationNodes":[{"label":"Forge supported locale codes","href":"/platform/forge/manifest-reference/forge-supported-locale-codes/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Modules","href":"/platform/forge/manifest-reference/modules/","expandState":"collapsed","childNavigationNodes":[{"label":"Overview","href":"/platform/forge/manifest-reference/modules/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Bitbucket modules","href":"/platform/forge/manifest-reference/modules/index-bitbucket/","expandState":"collapsed","childNavigationNodes":[{"label":"Custom merge check","href":"/platform/forge/manifest-reference/modules/bitbucket-merge-check/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Dynamic Pipelines provider","href":"/platform/forge/manifest-reference/modules/bitbucket-dynamic-pipelines-provider/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Repository code overview card","href":"/platform/forge/manifest-reference/modules/bitbucket-repository-code-overview-card/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Repository code overview action","href":"/platform/forge/manifest-reference/modules/bitbucket-repository-code-overview-action/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Repository pull request card","href":"/platform/forge/manifest-reference/modules/bitbucket-repository-pull-request-card/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Repository pull request action","href":"/platform/forge/manifest-reference/modules/bitbucket-repository-pull-request-action/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Repository main menu page","href":"/platform/forge/manifest-reference/modules/bitbucket-repository-main-menu-page/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Repository settings menu page","href":"/platform/forge/manifest-reference/modules/bitbucket-repository-settings-menu-page/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Workspace settings menu page","href":"/platform/forge/manifest-reference/modules/bitbucket-workspace-settings-menu-page/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Common modules","href":"/platform/forge/manifest-reference/modules/index-common/","expandState":"collapsed","childNavigationNodes":[{"label":"Consumer","href":"/platform/forge/manifest-reference/modules/consumer/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Function","href":"/platform/forge/manifest-reference/modules/function/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Scheduled trigger","href":"/platform/forge/manifest-reference/modules/scheduled-trigger/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Trigger","href":"/platform/forge/manifest-reference/modules/trigger/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Web trigger","href":"/platform/forge/manifest-reference/modules/web-trigger/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Compass modules","href":"/platform/forge/manifest-reference/modules/index-compass/","expandState":"collapsed","childNavigationNodes":[{"label":"Admin page","href":"/platform/forge/manifest-reference/modules/compass-admin-page/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Component page","href":"/platform/forge/manifest-reference/modules/compass-component-page/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Data provider","href":"/platform/forge/manifest-reference/modules/compass-data-provider/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Global page","href":"/platform/forge/manifest-reference/modules/compass-global-page/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Team page","href":"/platform/forge/manifest-reference/modules/compass-team-page/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Confluence modules","href":"/platform/forge/manifest-reference/modules/index-confluence/","expandState":"collapsed","childNavigationNodes":[{"label":"Content action","href":"/platform/forge/manifest-reference/modules/confluence-content-action/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Content byline item","href":"/platform/forge/manifest-reference/modules/confluence-content-byline-item/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Context menu","href":"/platform/forge/manifest-reference/modules/confluence-context-menu/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Custom content","href":"/platform/forge/manifest-reference/modules/confluence-custom-content/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Global page","href":"/platform/forge/manifest-reference/modules/confluence-global-page/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Global settings","href":"/platform/forge/manifest-reference/modules/confluence-global-settings/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Homepage feed","href":"/platform/forge/manifest-reference/modules/confluence-homepage-feed/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Space page","href":"/platform/forge/manifest-reference/modules/confluence-space-page/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Space settings","href":"/platform/forge/manifest-reference/modules/confluence-space-settings/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Macro","href":"/platform/forge/manifest-reference/modules/macro/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Jira modules","href":"/platform/forge/manifest-reference/modules/index-jira/","expandState":"collapsed","childNavigationNodes":[{"label":"Admin page","href":"/platform/forge/manifest-reference/modules/jira-admin-page/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Custom field","href":"/platform/forge/manifest-reference/modules/jira-custom-field/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Custom field type","href":"/platform/forge/manifest-reference/modules/jira-custom-field-type/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Dashboard background script","href":"/platform/forge/manifest-reference/modules/jira-dashboard-background-script/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Dashboard gadget","href":"/platform/forge/manifest-reference/modules/jira-dashboard-gadget/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Entity property","href":"/platform/forge/manifest-reference/modules/jira-entity-property/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Global page","href":"/platform/forge/manifest-reference/modules/jira-global-page/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Global permission","href":"/platform/forge/manifest-reference/modules/jira-global-permission/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Issue action","href":"/platform/forge/manifest-reference/modules/jira-issue-action/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Issue activity","href":"/platform/forge/manifest-reference/modules/jira-issue-activity/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Issue glance","href":"/platform/forge/manifest-reference/modules/jira-issue-glance/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Issue context","href":"/platform/forge/manifest-reference/modules/jira-issue-context/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Issue panel","href":"/platform/forge/manifest-reference/modules/jira-issue-panel/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Issue view background script","href":"/platform/forge/manifest-reference/modules/jira-issue-view-background-script/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"JQL function (preview)","href":"/platform/forge/manifest-reference/modules/jql-function/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Project page","href":"/platform/forge/manifest-reference/modules/jira-project-page/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Project permission","href":"/platform/forge/manifest-reference/modules/jira-project-permission/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Project settings page","href":"/platform/forge/manifest-reference/modules/jira-project-settings-page/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"UI modifications","href":"/platform/forge/manifest-reference/modules/jira-ui-modifications/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Workflow validator (preview)","href":"/platform/forge/manifest-reference/modules/jira-workflow-validator/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Workflow condition (preview)","href":"/platform/forge/manifest-reference/modules/jira-workflow-condition/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Workflow post function (preview)","href":"/platform/forge/manifest-reference/modules/jira-workflow-post-function/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Jira Service Management modules","href":"/platform/forge/manifest-reference/modules/index-jsm/","expandState":"collapsed","childNavigationNodes":[{"label":"Assets Import Type","href":"/platform/forge/manifest-reference/modules/jira-service-management-assets-import-type/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Organization panel","href":"/platform/forge/manifest-reference/modules/jira-service-management-organization-panel/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Portal footer","href":"/platform/forge/manifest-reference/modules/jira-service-management-portal-footer/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Portal header","href":"/platform/forge/manifest-reference/modules/jira-service-management-portal-header/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Portal profile panel","href":"/platform/forge/manifest-reference/modules/jira-service-management-portal-profile-panel/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Portal request create property panel","href":"/platform/forge/manifest-reference/modules/jira-service-management-portal-request-create-property-panel/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Portal request detail","href":"/platform/forge/manifest-reference/modules/jira-service-management-portal-request-detail/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Portal request detail panel","href":"/platform/forge/manifest-reference/modules/jira-service-management-portal-request-detail-panel/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Portal request view action","href":"/platform/forge/manifest-reference/modules/jira-service-management-portal-request-view-action/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Portal subheader","href":"/platform/forge/manifest-reference/modules/jira-service-management-portal-subheader/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Portal user menu action","href":"/platform/forge/manifest-reference/modules/jira-service-management-portal-user-menu-action/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Queue page","href":"/platform/forge/manifest-reference/modules/jira-service-management-queue-page/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Connect module equivalents","href":"/platform/forge/manifest-reference/modules/connect-module-equivalents/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Rovo modules (Preview)","href":"/platform/forge/manifest-reference/modules/rovo-index/","expandState":"collapsed","childNavigationNodes":[{"label":"Rovo Agent","href":"/platform/forge/manifest-reference/modules/rovo-agent/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Action","href":"/platform/forge/manifest-reference/modules/rovo-action/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Functions","href":"/platform/forge/function-reference/index/","expandState":"collapsed","childNavigationNodes":[{"label":"Overview","href":"/platform/forge/function-reference/index/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Runtimes","href":"/platform/forge/runtime-reference/","expandState":"collapsed","childNavigationNodes":[{"label":"Node.js","href":"/platform/forge/function-reference/nodejs-runtime/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Upgrading from legacy runtime","href":"/platform/forge/runtime-reference/legacy-runtime-migrating/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Legacy runtime (deprecated)","href":"/platform/forge/runtime-reference/legacy-runtime-reference/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Forge resolver","href":"/platform/forge/runtime-reference/forge-resolver/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Scheduled triggers","href":"/platform/forge/function-reference/scheduled-trigger/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Web triggers","href":"/platform/forge/runtime-reference/web-trigger/","expandState":"collapsed","childNavigationNodes":[{"label":"Basic usage","href":"/platform/forge/runtime-reference/web-trigger/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Generating a webtrigger URL via SDK","href":"/platform/forge/runtime-reference/web-trigger-api/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Async functions","href":"/platform/forge/runtime-reference/async-events-api/","expandState":"collapsed","childNavigationNodes":[{"label":"Basic usage","href":"/platform/forge/runtime-reference/async-events-api/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Error handling","href":"/platform/forge/runtime-reference/async-events-api-error-handling/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Product REST APIs","href":"/platform/forge/apis-reference/product-rest-api-reference/","expandState":"collapsed","childNavigationNodes":[{"label":"Bitbucket API requests","href":"/platform/forge/apis-reference/fetch-api-product.requestbitbucket/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Confluence API requests","href":"/platform/forge/apis-reference/fetch-api-product.requestconfluence/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Jira API requests","href":"/platform/forge/apis-reference/fetch-api-product.requestjira/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"GraphQL API requests","href":"/platform/forge/apis-reference/fetch-api-product.requestgraph/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Fetch APIs","href":"/platform/forge/runtime-reference/fetch-api/","expandState":"collapsed","childNavigationNodes":[{"label":"Basic fetch client","href":"/platform/forge/runtime-reference/fetch-api.basic/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"External authentication","href":"/platform/forge/runtime-reference/external-fetch-api/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Invoke Remote API","href":"/platform/forge/runtime-reference/invoke-remote-api/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"App context API","href":"/platform/forge/runtime-reference/app-context-api/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Privacy API","href":"/platform/forge/runtime-reference/privacy-api/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Authorize API","href":"/platform/forge/runtime-reference/authorize-api/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Properties API (deprecated)","href":"/platform/forge/runtime-reference/properties-api/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Storage","href":"/platform/forge/runtime-reference/storage-api/","expandState":"expanded","childNavigationNodes":[{"label":"Overview","href":"/platform/forge/runtime-reference/storage-api/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Key-Value Store","href":"/platform/forge/runtime-reference/storage-api-basic/","expandState":"collapsed","childNavigationNodes":[{"label":"Storing data","href":"/platform/forge/runtime-reference/storage-api-basic-api/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Querying data","href":"/platform/forge/runtime-reference/storage-api-query/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Encrypting stored data","href":"/platform/forge/runtime-reference/storage-api-secret/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Custom Entity Store","href":"/platform/forge/storage-reference/storage-api-custom-entities/","expandState":"expanded","childNavigationNodes":[{"label":"Defining entities","href":"/platform/forge/runtime-reference/custom-entities/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Storing entities","href":"/platform/forge/runtime-reference/storage-api-custom-entities/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Querying data","href":"/platform/forge/runtime-reference/storage-api-query-complex/","expandState":"expanded","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"SQL (EAP)","href":"/platform/forge/storage-reference/sql/","expandState":"collapsed","childNavigationNodes":[{"label":"Tutorial","href":"/platform/forge/storage-reference/sql-tutorial/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Execute SQL operations","href":"/platform/forge/storage-reference/sql-api/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Monitoring SQL metrics","href":"/platform/forge/monitor-sql-metrics/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Error handling","href":"/platform/forge/storage-reference/sql-handling-errors/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Cache (EAP)","href":"/platform/forge/storage-reference/storage-cache-api/","expandState":"collapsed","childNavigationNodes":[{"label":"Caching data","href":"/platform/forge/storage-reference/cache/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Error handling","href":"/platform/forge/storage-reference/cache-handling-errors/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"User Interface","href":"/platform/forge/ui-kit/overview/","expandState":"collapsed","childNavigationNodes":[{"label":"Overview","href":"/platform/forge/ui-kit/overview/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"UI Kit components","href":"/platform/forge/ui-kit/components/","expandState":"collapsed","childNavigationNodes":[{"label":"Badge","href":"/platform/forge/ui-kit/components/badge/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Box","href":"/platform/forge/ui-kit/components/box/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Button","href":"/platform/forge/ui-kit/components/button/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Button group","href":"/platform/forge/ui-kit/components/button-group/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Calendar (Preview)","href":"/platform/forge/ui-kit/components/calendar/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Chart - Bar (EAP)","href":"/platform/forge/ui-kit/components/bar-chart/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Chart - Horizontal bar (EAP)","href":"/platform/forge/ui-kit/components/horizontal-bar-chart/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Chart - Horizontal stack bar (EAP)","href":"/platform/forge/ui-kit/components/horizontal-stack-bar-chart/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Chart - Line (EAP)","href":"/platform/forge/ui-kit/components/line-chart/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Chart - Pie (EAP)","href":"/platform/forge/ui-kit/components/pie-chart/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Chart - Single value (EAP)","href":"/platform/forge/ui-kit/components/single-value-chart/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Chart - Stack bar (EAP)","href":"/platform/forge/ui-kit/components/stack-bar-chart/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Checkbox","href":"/platform/forge/ui-kit/components/checkbox/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Checkbox group (Preview)","href":"/platform/forge/ui-kit/components/checkbox-group/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Code","href":"/platform/forge/ui-kit/components/code/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Code block","href":"/platform/forge/ui-kit/components/code-block/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Date picker","href":"/platform/forge/ui-kit/components/date-picker/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Dynamic table","href":"/platform/forge/ui-kit/components/dynamic-table/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Empty state (Preview)","href":"/platform/forge/ui-kit/components/empty-state/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Form","href":"/platform/forge/ui-kit/components/form/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Frame (EAP)","href":"/platform/forge/ui-kit/components/frame/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Heading","href":"/platform/forge/ui-kit/components/heading/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Icon","href":"/platform/forge/ui-kit/components/icon/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Image","href":"/platform/forge/ui-kit/components/image/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Inline","href":"/platform/forge/ui-kit/components/inline/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Inline edit (Preview)","href":"/platform/forge/ui-kit/components/inline-edit/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Link","href":"/platform/forge/ui-kit/components/link/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"List (Preview)","href":"/platform/forge/ui-kit/components/list/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Lozenge","href":"/platform/forge/ui-kit/components/lozenge/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Modal","href":"/platform/forge/ui-kit/components/modal/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Popup (Preview)","href":"/platform/forge/ui-kit/components/popup/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Progress bar","href":"/platform/forge/ui-kit/components/progress-bar/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Progress tracker","href":"/platform/forge/ui-kit/components/progress-tracker/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Radio","href":"/platform/forge/ui-kit/components/radio/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Radio group","href":"/platform/forge/ui-kit/components/radio-group/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Range","href":"/platform/forge/ui-kit/components/range/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Section message","href":"/platform/forge/ui-kit/components/section-message/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Select","href":"/platform/forge/ui-kit/components/select/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Spinner","href":"/platform/forge/ui-kit/components/spinner/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Stack","href":"/platform/forge/ui-kit/components/stack/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Tabs","href":"/platform/forge/ui-kit/components/tabs/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Tag","href":"/platform/forge/ui-kit/components/tag/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Tag group","href":"/platform/forge/ui-kit/components/tag-group/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Text","href":"/platform/forge/ui-kit/components/text/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Text area","href":"/platform/forge/ui-kit/components/text-area/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Text field","href":"/platform/forge/ui-kit/components/textfield/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Time picker (Preview)","href":"/platform/forge/ui-kit/components/time-picker/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Toggle","href":"/platform/forge/ui-kit/components/toggle/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Tooltip","href":"/platform/forge/ui-kit/components/tooltip/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"User","href":"/platform/forge/ui-kit/components/user/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"User group","href":"/platform/forge/ui-kit/components/user-group/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"User picker","href":"/platform/forge/ui-kit/components/user-picker/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"XCSS","href":"/platform/forge/ui-kit/components/xcss/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Jira UI Kit components","href":"/platform/forge/ui-kit/jira-components/","expandState":"collapsed","childNavigationNodes":[{"label":"Custom field edit (Preview)","href":"/platform/forge/ui-kit/jira-components/custom-field-edit/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"UI Kit hooks","href":"/platform/forge/ui-kit/hooks/hooks-reference/","expandState":"collapsed","childNavigationNodes":[{"label":"useConfig","href":"/platform/forge/ui-kit/hooks/use-config/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"useContentProperty","href":"/platform/forge/ui-kit/hooks/use-content-property/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"useForm","href":"/platform/forge/ui-kit/hooks/use-form/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"useIssueProperty","href":"/platform/forge/ui-kit/hooks/use-issue-property/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"useProductContext","href":"/platform/forge/ui-kit/hooks/use-product-context/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"useSpaceProperty","href":"/platform/forge/ui-kit/hooks/use-space-property/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"useTranslation","href":"/platform/forge/ui-kit/hooks/use-translation/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Forge bridge APIs","href":"/platform/forge/apis-reference/ui-api-bridge/bridge/","expandState":"collapsed","childNavigationNodes":[{"label":"events","href":"/platform/forge/apis-reference/ui-api-bridge/events/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"i18n","href":"/platform/forge/apis-reference/ui-api-bridge/i18n/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"invoke","href":"/platform/forge/apis-reference/ui-api-bridge/invoke/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"invokeRemote","href":"/platform/forge/apis-reference/ui-api-bridge/invokeRemote/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Modal","href":"/platform/forge/apis-reference/ui-api-bridge/modal/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"requestBitbucket","href":"/platform/forge/apis-reference/ui-api-bridge/requestBitbucket/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"requestConfluence","href":"/platform/forge/apis-reference/ui-api-bridge/requestConfluence/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"requestJira","href":"/platform/forge/apis-reference/ui-api-bridge/requestJira/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"router","href":"/platform/forge/apis-reference/ui-api-bridge/router/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"showFlag","href":"/platform/forge/apis-reference/ui-api-bridge/showFlag/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"view","href":"/platform/forge/apis-reference/ui-api-bridge/view/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Jira bridge APIs","href":"/platform/forge/apis-reference/jira-api-bridge/bridge/","expandState":"collapsed","childNavigationNodes":[{"label":"ViewIssueModal","href":"/platform/forge/apis-reference/jira-api-bridge/viewIssueModal/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"CreateIssueModal","href":"/platform/forge/apis-reference/jira-api-bridge/createIssueModal/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"uiModifications","href":"/platform/forge/apis-reference/jira-api-bridge/uiModifications/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"workflowRules (EAP)","href":"/platform/forge/apis-reference/jira-api-bridge/workflowRules/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Custom UI","href":"/platform/forge/custom-ui/iframe/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Upgrade UI Kit versions","href":"/platform/forge/ui-kit/upgrade-guides/","expandState":"collapsed","childNavigationNodes":[{"label":"Upgrade from UI Kit 1 to UI Kit latest version","href":"/platform/forge/ui-kit/upgrade-to-ui-kit-latest/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Upgrade to @forge/react major version 10","href":"/platform/forge/ui-kit/version-10-changes/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Previous versions","href":"/platform/forge/ui-kit-components/previous_versions/","expandState":"collapsed","childNavigationNodes":[{"label":"UI Kit - @forge/react@9","href":"/platform/forge/ui-kit-2/all-uikprev-components/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"UI Kit 1 overview","href":"/platform/forge/ui-kit-components/ui1-about/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"UI Kit 1 components","href":"/platform/forge/ui-kit-components/uik1_all/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"UI Kit 1 module components","href":"/platform/forge/ui-kit-components/uik1_modules/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"UI Kit 1 hooks","href":"/platform/forge/ui-kit-components/uik1_hooks/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Events","href":"/platform/forge/events-reference/","expandState":"collapsed","childNavigationNodes":[{"label":"Overview","href":"/platform/forge/events-reference/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Product events","href":"/platform/forge/events-reference/product_events/","expandState":"collapsed","childNavigationNodes":[{"label":"Bitbucket events","href":"/platform/forge/events-reference/bitbucket/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Compass events","href":"/platform/forge/events-reference/compass/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Confluence events","href":"/platform/forge/events-reference/confluence/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Jira events","href":"/platform/forge/events-reference/jira/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Jira Software events","href":"/platform/forge/events-reference/jira-software/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]},{"label":"Life cycle events","href":"/platform/forge/events-reference/life-cycle/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Data security policy events","href":"/platform/forge/events-reference/data-security-policy-events/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Scheduled trigger events","href":"/platform/forge/events-reference/scheduled-trigger/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]},{"label":"Web trigger events","href":"/platform/forge/events-reference/web-trigger/","expandState":"collapsed","childNavigationNodes":[],"nestedNavigationNodes":[]}],"nestedNavigationNodes":[]}],"navigationLocation":{"pathname":"/platform/forge/runtime-reference/storage-api-query-complex/"},"theme":"tabbed","newRestApiExperience":true},"frontEndFeatures":{"shouldShowDacIntercept":true,"shouldShowGetHelpWidget":true,"renderRestRedesignedDocs":{"contentSets":[],"enableAllInternal":true,"enableAllExternal":true},"targetExternalBuilders":{"contentSets":[],"userEmails":[]},"shouldEnableAIfeatures":false},"getHelpBaseUrl":"https://dac-get-help.services.atlassian.com","changelogStargateBaseUrl":"/gateway/api/dac-changelogs","bitbucketClientId":"wuJ9hf4zyXjYJVxWFf","isContentSetInternal":false};</script> <title>Complex query</title> <style data-styled-components="bcCCNc jqBRrP ibwhYF eZnlXi dFdozN drXChn brBXGR kxxENe fSUEQg ejtmNK lfxCWf kXcvjc jCQDBF eTAnzP eHbmhf geXtIM ScLEH kgDWmH gXYVte eXwYJw cChEfx cdLTas gNpolA eYXdgj eoVOUX inVjNv dIXIPO helpjl ertFmj pWIuP khmkld TOtET ezMIpz gZQRfE hRPVEy dehUuJ gBQpmb hYSqCz gmgxDe KxHOa bUjEBB cctkxI cndhOS kUkhiO lfFGfa ieWBpa kmEqMv cLJrMK fhGBQx brvHif gscMiQ lelYfH jWXaOJ dtgjSj jZSjeZ aEnsw fYWbTP XuMHq iDivTj kGxrAZ bwcFuI gJyXAL bXLabE cjLyNv kAvmrA hVUfTU jZzqWW fOYWQG eIoYOg fCaIvk jNIYUQ dKWGcc iduyBG gPmPZH SofWs hfYqFa eBZChs ObHvh cskdDW"> /* sc-component-id: sc-keyframes-bcCCNc */ @-webkit-keyframes bcCCNc{0%{opacity:0;}100%{opacity:1;}} @keyframes bcCCNc{0%{opacity:0;}100%{opacity:1;}} /* sc-component-id: sc-keyframes-jqBRrP */ @-webkit-keyframes jqBRrP{0%{opacity:1;}50%{opacity:0.6;}100%{opacity:1;}} @keyframes jqBRrP{0%{opacity:1;}50%{opacity:0.6;}100%{opacity:1;}} /* sc-component-id: sc-keyframes-ibwhYF */ @-webkit-keyframes ibwhYF{to{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}} @keyframes ibwhYF{to{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}} /* sc-component-id: sc-ejGVNB */ .helpjl{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;min-height:0%;} /* sc-component-id: sc-eLdqWK */ .hRPVEy{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;min-height:0%;padding-left:8px;padding-right:8px;} /* sc-component-id: sc-iiUIRa */ .ertFmj{position:relative;} /* sc-component-id: sc-hgRTRy */ .TOtET{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;font-weight:500;list-style-type:none;margin:0;padding:0;} /* sc-component-id: sc-iIHSe */ .pWIuP{background-color:#EBECF0;border-radius:2px;bottom:0;content:'';height:2px;left:8px;margin:0;position:absolute;right:8px;width:inherit;}.khmkld{background-color:#0052CC;border-radius:2px;bottom:0;content:'';height:2px;left:8px;margin:0;position:absolute;right:8px;width:inherit;} /* sc-component-id: sc-gldTML */ .ezMIpz{color:#42526E;cursor:pointer;line-height:1.8;margin:0;padding:4px 8px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} .ezMIpz:hover{color:#0052CC;} .ezMIpz:active,.ezMIpz:active::before{color:#0747A6;} .ezMIpz:focus{border-radius:3px;box-shadow:0 0 0 2px #4C9AFF inset;outline:none;}.gZQRfE{color:#0052CC;cursor:pointer;line-height:1.8;margin:0;padding:4px 8px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} .gZQRfE:hover{color:#0052CC;} .gZQRfE:active,.gZQRfE:active::before{color:#0052CC;} .gZQRfE:focus{border-radius:3px;box-shadow:0 0 0 2px #0052CC inset;outline:none;} /* sc-component-id: sc-gbzWSY */ .gJyXAL{position:relative;} .gJyXAL:not(:hover):not(:focus-within) .copy{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;} /* sc-component-id: sc-jMMfwr */ .bXLabE{position:relative;top:var(--ds-space-0,0px);left:var(--ds-space-0,0px);width:100%;z-index:0;} /* sc-component-id: sc-jGxEUC */ .cjLyNv{border-radius:3px;background-color:#f4f5f7;color:#172b4d;font-size:12px;line-height:20px;overflow:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;} .cjLyNv pre{margin:var(--ds-space-0,0px);padding:var(--ds-space-100,8px);} .cjLyNv pre:first-child{float:left;text-align:right;background-color:#ebecf0;color:#8993a4;font-size:14px;} .cjLyNv code{display:inline-block;position:relative;left:var(--ds-space-200,16px);padding-right:var(--ds-space-200,16px);} /* sc-component-id: sc-cBrjTV */ .bwcFuI{margin:16px var(--ds-space-0,0px);padding:var(--ds-space-0,0px);max-height:500px;overflow:auto;} /* sc-component-id: sc-iCwjlJ */ .kAvmrA{overflow-wrap:break-word;word-wrap:break-word;} /* sc-component-id: sc-fkyLDJ */ .aEnsw{padding-top:var(--ds-space-300,24px);} .aEnsw:first-child{padding-top:var(--ds-space-0,0px);} .aEnsw h1 .heading-anchor-wrapper{position:absolute;height:1.1666666666666667em;margin-left:var(--ds-space-075,6px);} .aEnsw h1 .heading-anchor-wrapper button{padding-left:var(--ds-space-0,0px);padding-right:var(--ds-space-0,0px);} @media (hover:hover) and (pointer:fine){.aEnsw h1 .heading-anchor-wrapper > button{opacity:0;-webkit-transform:translate(-8px,0px);-ms-transform:translate(-8px,0px);transform:translate(-8px,0px);-webkit-transition:opacity 0.2s ease 0s,-webkit-transform 0.2s ease 0s;-webkit-transition:opacity 0.2s ease 0s,transform 0.2s ease 0s;transition:opacity 0.2s ease 0s,transform 0.2s ease 0s;}.aEnsw h1:hover .heading-anchor-wrapper > button{opacity:1;-webkit-transform:none !important;-ms-transform:none !important;transform:none !important;}} .aEnsw h2 .heading-anchor-wrapper{position:absolute;height:1.2em;margin-left:var(--ds-space-075,6px);} .aEnsw h2 .heading-anchor-wrapper button{padding-left:var(--ds-space-0,0px);padding-right:var(--ds-space-0,0px);} @media (hover:hover) and (pointer:fine){.aEnsw h2 .heading-anchor-wrapper > button{opacity:0;-webkit-transform:translate(-8px,0px);-ms-transform:translate(-8px,0px);transform:translate(-8px,0px);-webkit-transition:opacity 0.2s ease 0s,-webkit-transform 0.2s ease 0s;-webkit-transition:opacity 0.2s ease 0s,transform 0.2s ease 0s;transition:opacity 0.2s ease 0s,transform 0.2s ease 0s;}.aEnsw h2:hover .heading-anchor-wrapper > button{opacity:1;-webkit-transform:none !important;-ms-transform:none !important;transform:none !important;}} .aEnsw h3 .heading-anchor-wrapper{position:absolute;height:1.25em;margin-left:var(--ds-space-075,6px);} .aEnsw h3 .heading-anchor-wrapper button{padding-left:var(--ds-space-0,0px);padding-right:var(--ds-space-0,0px);} @media (hover:hover) and (pointer:fine){.aEnsw h3 .heading-anchor-wrapper > button{opacity:0;-webkit-transform:translate(-8px,0px);-ms-transform:translate(-8px,0px);transform:translate(-8px,0px);-webkit-transition:opacity 0.2s ease 0s,-webkit-transform 0.2s ease 0s;-webkit-transition:opacity 0.2s ease 0s,transform 0.2s ease 0s;transition:opacity 0.2s ease 0s,transform 0.2s ease 0s;}.aEnsw h3:hover .heading-anchor-wrapper > button{opacity:1;-webkit-transform:none !important;-ms-transform:none !important;transform:none !important;}} .aEnsw h4 .heading-anchor-wrapper{position:absolute;height:1.1428571428571428em;margin-left:var(--ds-space-075,6px);} .aEnsw h4 .heading-anchor-wrapper button{padding-left:var(--ds-space-0,0px);padding-right:var(--ds-space-0,0px);} @media (hover:hover) and (pointer:fine){.aEnsw h4 .heading-anchor-wrapper > button{opacity:0;-webkit-transform:translate(-8px,0px);-ms-transform:translate(-8px,0px);transform:translate(-8px,0px);-webkit-transition:opacity 0.2s ease 0s,-webkit-transform 0.2s ease 0s;-webkit-transition:opacity 0.2s ease 0s,transform 0.2s ease 0s;transition:opacity 0.2s ease 0s,transform 0.2s ease 0s;}.aEnsw h4:hover .heading-anchor-wrapper > button{opacity:1;-webkit-transform:none !important;-ms-transform:none !important;transform:none !important;}} .aEnsw h5 .heading-anchor-wrapper{position:absolute;height:1.3333333333333333em;margin-left:var(--ds-space-075,6px);} .aEnsw h5 .heading-anchor-wrapper button{padding-left:var(--ds-space-0,0px);padding-right:var(--ds-space-0,0px);} @media (hover:hover) and (pointer:fine){.aEnsw h5 .heading-anchor-wrapper > button{opacity:0;-webkit-transform:translate(-8px,0px);-ms-transform:translate(-8px,0px);transform:translate(-8px,0px);-webkit-transition:opacity 0.2s ease 0s,-webkit-transform 0.2s ease 0s;-webkit-transition:opacity 0.2s ease 0s,transform 0.2s ease 0s;transition:opacity 0.2s ease 0s,transform 0.2s ease 0s;}.aEnsw h5:hover .heading-anchor-wrapper > button{opacity:1;-webkit-transform:none !important;-ms-transform:none !important;transform:none !important;}} .aEnsw h6 .heading-anchor-wrapper{position:absolute;height:1.4545454545454546em;margin-left:var(--ds-space-075,6px);} .aEnsw h6 .heading-anchor-wrapper button{padding-left:var(--ds-space-0,0px);padding-right:var(--ds-space-0,0px);} @media (hover:hover) and (pointer:fine){.aEnsw h6 .heading-anchor-wrapper > button{opacity:0;-webkit-transform:translate(-8px,0px);-ms-transform:translate(-8px,0px);transform:translate(-8px,0px);-webkit-transition:opacity 0.2s ease 0s,-webkit-transform 0.2s ease 0s;-webkit-transition:opacity 0.2s ease 0s,transform 0.2s ease 0s;transition:opacity 0.2s ease 0s,transform 0.2s ease 0s;}.aEnsw h6:hover .heading-anchor-wrapper > button{opacity:1;-webkit-transform:none !important;-ms-transform:none !important;transform:none !important;}} /* sc-component-id: sc-jUpvKA */ .fYWbTP{display:inline;outline:none;background-color:transparent;border:none;color:#42526E;cursor:pointer;right:var(--ds-space-0,0px);} /* sc-component-id: sc-jdfcpN */ .geXtIM{min-height:100vh;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;} /* sc-component-id: sc-jRuhRL */ .iduyBG{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;} /* sc-component-id: sc-kNBZmU */ .hVUfTU{width:100%;overflow-y:auto;margin:12px var(--ds-space-0,0px) 16px var(--ds-space-0,0px);} /* sc-component-id: sc-eNNmBn */ .fOYWQG{background-color:#F4F5F7;} .fOYWQG.fOYWQG{padding:8px;} /* sc-component-id: sc-eEieub */ .eIoYOg.eIoYOg{padding:8px;} /* sc-component-id: sc-hMrMfs */ .jZzqWW{border-bottom:1px solid #C1C7D0;} /* sc-component-id: sc-TuwoP */ .gNpolA{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:fixed;bottom:var(--ds-space-400,32px);left:var(--ds-space-400,32px);z-index:1;} /* sc-component-id: sc-fQkuQJ */ .jNIYUQ{text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;margin-left:16px;margin-top:var(--ds-space-500,40px);margin-bottom:var(--ds-space-500,40px);} /* sc-component-id: sc-epGmkI */ .dKWGcc{font-size:14px;color:#6B778C;margin:var(--ds-space-0,0px) var(--ds-space-050,4px) var(--ds-space-0,0px) var(--ds-space-0,0px);} /* sc-component-id: sc-hAXbOi */ .gXYVte{max-height:100px;background-color:#DEEBFF;} /* sc-component-id: sc-cCVOAp */ .eXwYJw{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#DEEBFF;color:#172B4D;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;fill:#DEEBFF;font-weight:600;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:12px;text-align:center;margin:auto;max-width:876px;} /* sc-component-id: sc-cfWELz */ .cChEfx{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;} /* sc-component-id: sc-kAdXeD */ .kgDWmH{max-height:0px;overflow:hidden;-webkit-transition:max-height 0.25s ease-in-out;transition:max-height 0.25s ease-in-out;} /* sc-component-id: sc-hCaUpS */ .cdLTas{-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;padding:4px;overflow:hidden;} /* sc-component-id: sc-bvTASY */ .ScLEH{color:black;position:relative;z-index:100;} .ScLEH div[data-testid='navigation-site-title']{color:#172B4D;font-size:16px;} /* sc-component-id: sc-aewfc */ .dIXIPO{display:none;} @media (min-width:900px){.dIXIPO{display:block;margin-top:24px;font-size:16px;position:relative;padding-left:.9375rem;padding-right:.9375rem;}} /* sc-component-id: sc-jHZirH */ .gPmPZH{margin-top:var(--ds-space-400,32px) padding:var(--ds-space-200,16px) var(--ds-space-100,8px);background:#F4F5F7;color:white;min-height:100px;} .gPmPZH,.gPmPZH *{box-sizing:border-box;} @media (min-width:768px){.gPmPZH{padding:var(--ds-space-400,32px) var(--ds-space-100,8px);}} /* sc-component-id: sc-dKEPtC */ .SofWs{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:80rem;margin-left:auto;margin-right:auto;padding-left:0.9375rem;padding-right:0.9375rem;} @media (min-width:860px){.SofWs{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}} /* sc-component-id: sc-dBAPYN */ .ObHvh{-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;} @media (min-width:860px){.ObHvh{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}} @media (max-width:1024px){.ObHvh{font-size:14px;}} /* sc-component-id: sc-dvpmds */ .cskdDW{color:#0a0a0a;display:inline-block;line-height:1;padding:var(--ds-space-150,12px) var(--ds-space-400,32px) var(--ds-space-150,12px) var(--ds-space-0,0px);} @media (min-width:768px){.cskdDW{padding:var(--ds-space-150,12px) var(--ds-space-200,16px);}} @media (max-width:1024px){.cskdDW{font-size:14px;}} /* sc-component-id: sc-dwztqd */ .eBZChs{color:#0057d8;display:inline-block;line-height:1;padding:var(--ds-space-150,12px) var(--ds-space-400,32px) var(--ds-space-150,12px) var(--ds-space-0,0px);} @media (min-width:768px){.eBZChs{padding:var(--ds-space-150,12px) var(--ds-space-200,16px);}} .eBZChs.hide-optanon-link{display:none;} /* sc-component-id: sc-eweMDZ */ .cndhOS{margin:var(--ds-space-0,0px);font-size:11px;color:#253858;list-style-type:none;} .cndhOS a{color:inherit;font-size:14px;-webkit-text-decoration:none;text-decoration:none;line-height:18px;padding:0.46rem 1rem 0.46rem 0;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;display:-moz-box;} .cndhOS a > span{display:block;display:-moz-box;white-space:normal;overflow:hidden;text-overflow:ellipsis;} .cndhOS a:focus{outline:none;} .cndhOS a:hover{background-color:inherit;color:#0052CC;}.kUkhiO{margin:var(--ds-space-0,0px);font-size:11px;color:#253858;list-style-type:none;} .kUkhiO a{color:inherit;font-size:14px;-webkit-text-decoration:none;text-decoration:none;line-height:18px;padding:0.46rem 1rem 0.46rem 13px;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;display:-moz-box;} .kUkhiO a > span{display:block;display:-moz-box;white-space:normal;overflow:hidden;text-overflow:ellipsis;} .kUkhiO a:focus{outline:none;} .kUkhiO a:hover{background-color:inherit;color:#0052CC;}.lfFGfa{margin:var(--ds-space-0,0px);font-size:11px;color:#0065FF;list-style-type:disc;} .lfFGfa a{color:inherit;font-size:14px;-webkit-text-decoration:none;text-decoration:none;line-height:18px;padding:0.46rem 1rem 0.46rem 13px;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;display:-moz-box;} .lfFGfa a > span{display:block;display:-moz-box;white-space:normal;overflow:hidden;text-overflow:ellipsis;} .lfFGfa a:focus{outline:none;} .lfFGfa a:hover{background-color:inherit;color:#0052CC;} /* sc-component-id: sc-cnTzU */ .ieWBpa{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;} .ieWBpa .activeSidenavGroup{color:#0065FF;} .ieWBpa a{line-height:18px;padding:0.3rem 1rem 0.3rem 0;color:#253858;} /* sc-component-id: sc-dXLFzO */ .cLJrMK{margin:var(--ds-space-0,0px);padding:var(--ds-space-0,0px) var(--ds-space-0,0px) var(--ds-space-0,0px) var(--ds-space-400,32px);} /* sc-component-id: sc-eQGPmX */ .kmEqMv{cursor:pointer;} /* sc-component-id: sc-dAOnuy */ .bUjEBB{display:none;} @media (min-width:900px){.bUjEBB{display:block;-webkit-flex:auto;-ms-flex:auto;flex:auto;overflow-y:auto;padding-top:var(--ds-space-050,4px);margin-right:var(--ds-space-250,20px);}} /* sc-component-id: sc-cSYcjD */ .cctkxI{margin-left:var(--ds-space-0,0px);margin-top:var(--ds-space-0,0px);padding-left:var(--ds-space-300,24px);} /* sc-component-id: sc-dOkuiw */ .gmgxDe{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;} @media (min-width:900px){.gmgxDe{height:95vh;width:300px;}} /* sc-component-id: sc-jGFFOr */ .KxHOa{-webkit-flex:initial;-ms-flex:initial;flex:initial;margin:var(--ds-space-0,0px);} @media (min-width:900px){.KxHOa{padding:var(--ds-space-0,0px) var(--ds-space-250,20px) var(--ds-space-0,0px) var(--ds-space-100,8px);}} /* sc-component-id: sc-jOVcOr */ .drXChn{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border-radius:3px;background-color:#FFFAE6;padding:16px;}.brBXGR{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border-radius:3px;background-color:#DEEBFF;padding:16px;}.kxxENe{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border-radius:3px;background-color:#E3FCEF;padding:16px;} /* sc-component-id: sc-hkaZBZ */ .ejtmNK{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;} /* sc-component-id: sc-gLdKKF */ .kXcvjc{margin:0;font-size:1.1428571428571428em;font-style:inherit;line-height:1.25;color:#172B4D;font-weight:600;-webkit-letter-spacing:-0.006em;-moz-letter-spacing:-0.006em;-ms-letter-spacing:-0.006em;letter-spacing:-0.006em;margin-top:24px;} /* sc-component-id: sc-RWGNv */ * + .lfxCWf{margin-top:8px;} /* sc-component-id: sc-btewqU */ .fSUEQg{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:40px;} .fSUEQg > span{margin:-2px 0;vertical-align:top;} /* sc-component-id: sc-imapFV */ .dFdozN{margin:16px var(--ds-space-0,0px);} .dFdozN > section > div:last-child{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;overflow-x:auto;} /* sc-component-id: sc-fATqzn */ .jCQDBF{position:relative;padding-top:56.25%;margin:16px var(--ds-space-0,0px);height:0;overflow:hidden;max-width:100%;} /* sc-component-id: sc-hqGPoI */ .eTAnzP{position:absolute;top:var(--ds-space-0,0px);left:var(--ds-space-0,0px);width:100%;height:100%;} /* sc-component-id: sc-fjNYmT */ .gscMiQ{display:none;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;margin:var(--ds-space-0,0px) 15px;} @media (min-width:600px){.gscMiQ{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-top:20px;}} @media (min-width:600px){.gscMiQ{margin-top:var(--ds-space-0,0px);}} /* sc-component-id: sc-hzOKmB */ .lelYfH{display:none;} @media (min-width:900px){.lelYfH{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;color:#6B778C;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}} /* sc-component-id: sc-dzVpKk */ .jWXaOJ{display:none;padding-right:4px;} @media (min-width:1200px){.jWXaOJ{display:initial;}} /* sc-component-id: sc-fPbjcq */ .brvHif{display:block;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;margin-top:var(--ds-space-0,0px)px;} @media (min-width:900px){.brvHif{margin-right:192px;}} /* sc-component-id: sc-hdNmWC */ .gBQpmb{padding-bottom:16px;border-right:1px solid rgba(9,30,66,0.08);} @media (min-width:900px){.gBQpmb{padding:var(--ds-space-0,0px);}} /* sc-component-id: sc-fPEBxH */ .hYSqCz{position:-webkit-sticky;position:sticky;top:16px;} @media (min-width:900px){.hYSqCz{display:block;}} /* sc-component-id: sc-hBcjXN */ .inVjNv{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:100%;margin:var(--ds-space-0,0px) auto;} /* sc-component-id: sc-gVZiCL */ .dehUuJ{display:block;padding:16px 16px var(--ds-space-0,0px);} @media (min-width:900px){.dehUuJ{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding:32px 16px var(--ds-space-0,0px);}} /* sc-component-id: sc-FAiZp */ .dtgjSj{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:3;-webkit-flex-grow:3;-ms-flex-positive:3;flex-grow:3;margin:15px;margin-top:8px;width:80%;} /* sc-component-id: sc-dHaUqb */ .fhGBQx{display:block;overflow-y:visible;width:100%;max-width:1200px;margin:var(--ds-space-0,0px) auto;padding:var(--ds-space-100,8px) var(--ds-space-400,32px);} /* sc-component-id: sc-fcTNbh */ .eoVOUX{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;} .eoVOUX h1 + h2{margin-top:12px;} .eoVOUX h1 + h3{margin-top:16px;} /* sc-component-id: sc-jptPkM */ .eYXdgj img{max-width:100%;} .eYXdgj tr{border-bottom:1px solid #C1C7D0;} .eYXdgj thead{border-bottom:none;} .eYXdgj th{background-color:#F4F5F7;padding:8px;} .eYXdgj td{padding:8px;} .eYXdgj .aui-lozenge{background:#42526E;border:0;border-radius:3px;color:#FFFFFF;box-sizing:border-box;display:inline-block;font-size:11px;font-weight:700;line-height:1;max-width:200px;padding:var(--ds-space-025,2px) var(--ds-space-050,4px) var(--ds-space-025,2px);text-transform:uppercase;vertical-align:baseline;} .eYXdgj .aui-lozenge-subtle{background-color:#DFE1E6;color:#42526E;} .eYXdgj .aui-lozenge-success{background-color:#00875A;color:#FFFFFF;} .eYXdgj .aui-lozenge-error,.eYXdgj .aui-lozenge-removed{background-color:#BF2600;color:#FFFFFF;} .eYXdgj .aui-lozenge-inprogress{background-color:#0052CC;color:#FFFFFF;} .eYXdgj .aui-lozenge-new{background-color:#5243AA;color:#FFFFFF;} .eYXdgj .aui-lozenge-moved{background-color:#FF991F;color:#172B4D;} .eYXdgj .aui-lozenge-current{background-color:#FFC400;color:#42526E;} .eYXdgj .aui-lozenge-complete{background-color:#5E6C84;color:#FFFFFF;} .eYXdgj .aui-lozenge-success.aui-lozenge-subtle{background-color:#E3FCEF;color:#006644;} .eYXdgj .aui-lozenge-error.aui-lozenge-subtle,.eYXdgj .aui-lozenge-removed.aui-lozenge-subtle{background-color:#FFEBE6;color:#BF2600;} .eYXdgj .aui-lozenge-current.aui-lozenge-subtle,.eYXdgj .aui-lozenge-inprogress.aui-lozenge-subtle{background-color:#DEEBFF;color:#0747A6;} .eYXdgj .aui-lozenge-complete.aui-lozenge-subtle,.eYXdgj .aui-lozenge-new.aui-lozenge-subtle{background-color:#EAE6FF;color:#403294;} .eYXdgj .aui-lozenge-moved.aui-lozenge-subtle{background-color:#FFF0B3;color:#172B4D;} .eYXdgj .aui-message{position:relative;margin:16px var(--ds-space-0,0px);border-radius:3px;padding:16px;padding-left:56px;} .eYXdgj .aui-message p strong,.eYXdgj .aui-message p.title{font-size:1.1428571428571428em;font-style:inherit;line-height:1.25;color:#172B4D;font-weight:600;-webkit-letter-spacing:-0.006em;-moz-letter-spacing:-0.006em;-ms-letter-spacing:-0.006em;letter-spacing:-0.006em;margin-top:24px;font-size:16px;margin-top:var(--ds-space-0,0px);} .eYXdgj .aui-message p.title{margin-bottom:8px;} .eYXdgj .aui-message p.title + p{margin-top:var(--ds-space-0,0px);} .eYXdgj .aui-message.tip{background-color:#E3FCEF;} .eYXdgj .aui-message.note,.eYXdgj .aui-message.info{background-color:#DEEBFF;} .eYXdgj .aui-message.warning{background-color:#FFFAE6;} .eYXdgj .aui-message-tip{background-color:#E3FCEF;} .eYXdgj .aui-message-note,.eYXdgj .aui-message-tip{background-color:#DEEBFF;} .eYXdgj .aui-message-warning{background-color:#FFFAE6;} .eYXdgj blockquote{padding:8px 16px var(--ds-space-0,0px) 16px;border-left:1px solid #C1C7D0;margin:var(--ds-space-0,0px) var(--ds-space-0,0px) 16px;color:#97A0AF;} .eYXdgj blockquote:after,.eYXdgj blockquote:before{content:'';} /* sc-component-id: sc-fguZLD */ @media (min-width:900px){.jZSjeZ{position:relative;margin-right:192px;}} /* sc-component-id: sc-ewMkZo */ @media (min-width:900px){.XuMHq{position:absolute;left:100%;height:100%;margin-top:12px;}} /* sc-component-id: sc-eCXBzT */ .iDivTj{border-left:4px solid #0052CC;padding:8px;margin:30px var(--ds-space-0,0px);} .iDivTj:empty{display:none;} .iDivTj > :first-child{margin-bottom:32px;} @media (min-width:900px){.iDivTj{position:-webkit-sticky;position:sticky;top:82px;border-left:none;margin:var(--ds-space-0,0px);padding:var(--ds-space-0,0px);box-sizing:border-box;width:192px;}} /* sc-component-id: sc-hfLElm */ .fCaIvk{display:'flex';-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;} /* sc-component-id: sc-Ehqfj */ .kGxrAZ{padding-left:28px;} /* sc-component-id: sc-lgsldV */ .eHbmhf{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;} /* sc-component-id: sc-keyframes-eZnlXi */ @-webkit-keyframes eZnlXi{from{opacity:0;-webkit-transform:translateY(-10px);-ms-transform:translateY(-10px);transform:translateY(-10px);}to{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}} @keyframes eZnlXi{from{opacity:0;-webkit-transform:translateY(-10px);-ms-transform:translateY(-10px);transform:translateY(-10px);}to{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}} /* sc-component-id: sc-global-2906074290 */ @font-face{font-family:'Charlie Display';font-weight:400;src:url('/font/charlie-display/CharlieDisplay-Regular.otf') format('opentype');} @font-face{font-family:'Charlie Display';font-weight:500;src:url('/font/charlie-display/CharlieDisplay-Semibold.otf') format('opentype');} /* sc-component-id: sc-global-4218966353 */ *{box-sizing:border-box;}</style> <link href="https://dac-static.atlassian.com/_static/documentation-changelogs-docs-index-rest-api-docs-rest-docs-search-graphql-docs-graphql-sandbox-jsapi-connect-module-pages-analytics-and-cookie-preferences-homepage-errors-supportdesk.dfe18eccc22cf5b32118.chunk.css" rel="stylesheet"><link href="https://dac-static.atlassian.com/_static/documentation-changelogs-docs-index-rest-api-docs-rest-docs-search-graphql-docs-graphql-sandbox-jsapi-connect-module-pages-homepage-errors-supportdesk.c67a7555063c3b00faae.chunk.css" rel="stylesheet"><link href="https://dac-static.atlassian.com/_static/documentation.ce5deedee0b24a12eac1.css" rel="stylesheet"> <!-- Algolia Search Insights --> <script nonce="0Zl3Y/p1xAn6fsn8ZN/eeBVKH9eWqZKW+KZZwyHZTAw="> const ALGOLIA_INSIGHTS_SRC = "https://cdn.jsdelivr.net/npm/search-insights@2.2.1"; window.ALGOLIA_DAC_INDEX_NAME = 'developer.atlassian.com-dac-prod'; window.ALGOLIA_DAC_APP_ID = '41O4X7L3MX'; !function(e,a,t,n,s,i,c){e.AlgoliaAnalyticsObject=s,e[s]=e[s]||function(){ (e[s].queue=e[s].queue||[]).push(arguments)},i=a.createElement(t),c=a.getElementsByTagName(t)[0], i.async=1,i.src=n,c.parentNode.insertBefore(i,c) }(window,document,"script",ALGOLIA_INSIGHTS_SRC,"algoliaAnalytics"); algoliaAnalytics('init', { appId: '41O4X7L3MX', apiKey: 'Y2ZkNTM4MDg5M2QyMDUzOTBlMGEwZTU5OGQ0NGQ1MTA0ZmM1MjM5NzUzODdjNDZmYTRjYzkwMGFlYmIwMDE0MnJlc3RyaWN0SW5kaWNlcz1kZXZlbG9wZXIuYXRsYXNzaWFuLmNvbS1kYWMtcHJvZCUyQ2RldmVsb3Blci5hdGxhc3NpYW4uY29tLWRhYy1zdGFnaW5nJTJDZGV2ZWxvcGVyLmF0bGFzc2lhbi5jb20tZGFjLWRldiZmaWx0ZXJzPXByaXZpbGVnZSUzQU5PTkU=', useCookie: true, }); </script> <!-- End Algolia Search Insights --> <script nonce="0Zl3Y/p1xAn6fsn8ZN/eeBVKH9eWqZKW+KZZwyHZTAw="> window.ALGOLIA_DAC_API_KEY = 'Y2ZkNTM4MDg5M2QyMDUzOTBlMGEwZTU5OGQ0NGQ1MTA0ZmM1MjM5NzUzODdjNDZmYTRjYzkwMGFlYmIwMDE0MnJlc3RyaWN0SW5kaWNlcz1kZXZlbG9wZXIuYXRsYXNzaWFuLmNvbS1kYWMtcHJvZCUyQ2RldmVsb3Blci5hdGxhc3NpYW4uY29tLWRhYy1zdGFnaW5nJTJDZGV2ZWxvcGVyLmF0bGFzc2lhbi5jb20tZGFjLWRldiZmaWx0ZXJzPXByaXZpbGVnZSUzQU5PTkU='; window.ALGOLIA_DAC_API_KEY_EXPIRY = Date.now() + 28800000; window.ENABLE_AI = false; </script><script nonce="0Zl3Y/p1xAn6fsn8ZN/eeBVKH9eWqZKW+KZZwyHZTAw="> window.visualEditorEnabled = 'true'; </script><script nonce="0Zl3Y/p1xAn6fsn8ZN/eeBVKH9eWqZKW+KZZwyHZTAw="> window.DAC_CDN_HOST = 'https://dac-static.atlassian.com'; window.ENABLED_VERSION = '1.5800.884'; </script></head> <body> <div id="root"><div class="sc-lgsldV eHbmhf"><div class="sc-jdfcpN geXtIM"><div><div class="sc-bvTASY ScLEH"><div class="sc-kAdXeD kgDWmH"><div class="sc-hAXbOi gXYVte" aria-hidden="true" data-testid="banner-container" role="alert"><div class="sc-cCVOAp eXwYJw"><span class="sc-cfWELz cChEfx"><style data-emotion-css="14fi9av">.css-14fi9av{-webkit-align-items:baseline;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;border-width:0;box-sizing:border-box;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;font-size:inherit;font-style:normal;font-weight:500;max-width:100%;outline:none !important;text-align:center;-webkit-text-decoration:none;text-decoration:none;white-space:nowrap;background:none;border-radius:3px;box-shadow:0 0 0 2px inherit;color:#42526E !important;cursor:default;height:2.2857142857142856em;line-height:2.2857142857142856em;padding:0 8px;-webkit-transition:background 0.1s ease-out,box-shadow 0.15s cubic-bezier(0.47,0.03,0.49,1.38);transition:background 0.1s ease-out,box-shadow 0.15s cubic-bezier(0.47,0.03,0.49,1.38);-webkit-transition-duration:0.1s,0.15s;transition-duration:0.1s,0.15s;vertical-align:middle;width:auto;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Roboto','Oxygen','Ubuntu','Fira Sans','Droid Sans','Helvetica Neue',sans-serif;}.css-14fi9av::-moz-focus-inner{border:0;margin:0;padding:0;}.css-14fi9av:hover{-webkit-text-decoration:inherit;text-decoration:inherit;}</style><button aria-label="close-icon" type="button" class="css-14fi9av"><style data-emotion-css="j8fq0c">.css-j8fq0c{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;max-width:100%;position:relative;}</style><span class="css-j8fq0c"><style data-emotion-css="noix33">.css-noix33{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:0;font-size:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin:0 -2px;-webkit-transition:opacity 0.3s;transition:opacity 0.3s;opacity:1;}</style><span class="css-noix33"><style data-emotion="css 1wits42">.css-1wits42{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:16px;height:16px;}.css-1wits42 >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1wits42 >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1wits42 >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1wits42 >svg{width:16px;height:16px;}</style><span role="img" aria-label="close-icon" style="--icon-primary-color:currentColor;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1wits42"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><path d="M12 10.586L6.707 5.293a1 1 0 00-1.414 1.414L10.586 12l-5.293 5.293a1 1 0 001.414 1.414L12 13.414l5.293 5.293a1 1 0 001.414-1.414L13.414 12l5.293-5.293a1 1 0 10-1.414-1.414L12 10.586z" fill="currentColor"/></svg></span></span></span></button></span><span class="sc-hCaUpS cdLTas"><span></span></span></div></div></div><style data-emotion-css="1cychdt">.css-1cychdt{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;height:56px;padding-right:12px;padding-left:12px;position:relative;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}[data-theme="light"] .css-1cychdt,[data-theme="dark"] .css-1cychdt{border-bottom:1px solid var(--ds-border,#091E4224);}[data-theme="light"] .css-1cychdt::after,[data-theme="dark"] .css-1cychdt::after{content:none;}.css-1cychdt::after{height:4px;position:absolute;top:100%;right:0;left:0;background:linear-gradient(180deg,rgba(9,30,66,0.13) 0,rgba(9,30,66,0.13) 1px,rgba(9,30,66,0.08) 1px,rgba(9,30,66,0) 4px);content:"";}</style><header style="background-color:var(--ds-surface, #FFFFFF);color:var(--ds-text-subtlest, #6B778C)" role="banner" class="css-1cychdt"><style data-emotion-css="vtikxo">.css-vtikxo{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-width:0;height:inherit;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}.css-vtikxo > *{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}</style><nav aria-label="Atlassian Developer Navigation" class="css-vtikxo"><div role="presentation"><style data-emotion="css b7sh1q">.css-b7sh1q,.css-b7sh1q:hover,.css-b7sh1q:active,.css-b7sh1q:focus,.css-b7sh1q:visited,.css-b7sh1q:disabled,.css-b7sh1q[disabled]{-webkit-align-items:baseline;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;border-width:0;border-radius:100%;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;font-size:inherit;font-style:normal;font-family:inherit;font-weight:500;max-width:100%;position:relative;text-align:center;-webkit-text-decoration:none;text-decoration:none;-webkit-transition:background 0.1s ease-out,box-shadow 0.15s cubic-bezier(0.47, 0.03, 0.49, 1.38);transition:background 0.1s ease-out,box-shadow 0.15s cubic-bezier(0.47, 0.03, 0.49, 1.38);white-space:nowrap;background:var(--ds-background-brand-bold, #0052CC);color:var(--ds-text-subtle, #344563);cursor:pointer;height:auto;line-height:2.2857142857142856em;padding:4px;vertical-align:middle;width:auto;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;outline:none;margin:0 2px;background-color:transparent;}.css-b7sh1q::-moz-focus-inner,.css-b7sh1q:hover::-moz-focus-inner,.css-b7sh1q:active::-moz-focus-inner,.css-b7sh1q:focus::-moz-focus-inner,.css-b7sh1q:visited::-moz-focus-inner,.css-b7sh1q:disabled::-moz-focus-inner,.css-b7sh1q[disabled]::-moz-focus-inner{border:0;margin:0;padding:0;}.css-b7sh1q:hover,.css-b7sh1q:hover:hover,.css-b7sh1q:active:hover,.css-b7sh1q:focus:hover,.css-b7sh1q:visited:hover,.css-b7sh1q:disabled:hover,.css-b7sh1q[disabled]:hover{color:var(--ds-text-subtle, #0052CC);background-color:var(--ds-background-neutral-hovered, rgba(222, 235, 255, 0.9));}.css-b7sh1q:focus,.css-b7sh1q:hover:focus,.css-b7sh1q:active:focus,.css-b7sh1q:focus:focus,.css-b7sh1q:visited:focus,.css-b7sh1q:disabled:focus,.css-b7sh1q[disabled]:focus{color:var(--ds-text-subtle, #344563);background-color:var(--ds-background-selected-hovered, rgba(222, 235, 255, 0.5));box-shadow:0 0 0 2px var(--ds-border-focused, #2684FF);}.css-b7sh1q >span,.css-b7sh1q:hover >span,.css-b7sh1q:active >span,.css-b7sh1q:focus >span,.css-b7sh1q:visited >span,.css-b7sh1q:disabled >span,.css-b7sh1q[disabled] >span{margin:0;}</style><button class="css-b7sh1q" data-testid="app-switcher" type="button" tabindex="0"><style data-emotion="css 16j5qb5">.css-16j5qb5{opacity:1;-webkit-transition:opacity 0.3s;transition:opacity 0.3s;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:0 2px;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;font-size:0;line-height:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}</style><span class="css-16j5qb5"><style data-emotion="css snhnyn">.css-snhnyn{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;}.css-snhnyn >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-snhnyn >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-snhnyn >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}</style><span role="img" aria-label="Documentation" style="--icon-primary-color:currentColor;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-snhnyn"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><path fill="currentColor" fill-rule="evenodd" d="M4 5.01C4 4.451 4.443 4 5.01 4h1.98C7.549 4 8 4.443 8 5.01v1.98C8 7.549 7.557 8 6.99 8H5.01C4.451 8 4 7.557 4 6.99V5.01zm0 6c0-.558.443-1.01 1.01-1.01h1.98c.558 0 1.01.443 1.01 1.01v1.98C8 13.549 7.557 14 6.99 14H5.01C4.451 14 4 13.557 4 12.99v-1.98zm6-6c0-.558.443-1.01 1.01-1.01h1.98c.558 0 1.01.443 1.01 1.01v1.98C14 7.549 13.557 8 12.99 8h-1.98C10.451 8 10 7.557 10 6.99V5.01zm0 6c0-.558.443-1.01 1.01-1.01h1.98c.558 0 1.01.443 1.01 1.01v1.98c0 .558-.443 1.01-1.01 1.01h-1.98c-.558 0-1.01-.443-1.01-1.01v-1.98zm6-6c0-.558.443-1.01 1.01-1.01h1.98c.558 0 1.01.443 1.01 1.01v1.98C20 7.549 19.557 8 18.99 8h-1.98C16.451 8 16 7.557 16 6.99V5.01zm0 6c0-.558.443-1.01 1.01-1.01h1.98c.558 0 1.01.443 1.01 1.01v1.98c0 .558-.443 1.01-1.01 1.01h-1.98c-.558 0-1.01-.443-1.01-1.01v-1.98zm-12 6c0-.558.443-1.01 1.01-1.01h1.98c.558 0 1.01.443 1.01 1.01v1.98C8 19.549 7.557 20 6.99 20H5.01C4.451 20 4 19.557 4 18.99v-1.98zm6 0c0-.558.443-1.01 1.01-1.01h1.98c.558 0 1.01.443 1.01 1.01v1.98c0 .558-.443 1.01-1.01 1.01h-1.98c-.558 0-1.01-.443-1.01-1.01v-1.98zm6 0c0-.558.443-1.01 1.01-1.01h1.98c.558 0 1.01.443 1.01 1.01v1.98c0 .558-.443 1.01-1.01 1.01h-1.98c-.558 0-1.01-.443-1.01-1.01v-1.98z"/></svg></span></span></button></div><style data-emotion-css="1qtw0hy">.css-1qtw0hy{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:4px;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:none;border:0;border-radius:3px;color:inherit;cursor:pointer;}.css-1qtw0hy::-moz-focus-inner{border:0;}.css-1qtw0hy:first-of-type{margin-left:0;}.css-1qtw0hy:hover{background-color:var(--product-home-bg-color-hover);box-shadow:var(--product-home-box-shadow-hover);color:var(--product-home-color-hover);}.css-1qtw0hy:active{background-color:var(--product-home-bg-color-active);box-shadow:var(--product-home-box-shadow-active);color:var(--product-home-color-active);}.css-1qtw0hy:focus{background-color:var(--product-home-bg-color-focus);box-shadow:var(--product-home-box-shadow-focus);color:var(--product-home-color-focus);outline:0;}div.css-1qtw0hy{pointer-events:none;}@media (max-width:1279.9px){.css-1qtw0hy{margin:0 8px;}}@media (min-width:1280px){.css-1qtw0hy{margin:0 16px;}}</style><a style="--product-home-color-active:var(--ds-text-subtle, #0052CC);--product-home-bg-color-active:var(--ds-background-neutral-pressed, rgba(222, 235, 255, 0.7));--product-home-box-shadow-active:;--product-home-color-focus:var(--ds-text-subtle, #344563);--product-home-bg-color-focus:;--product-home-box-shadow-focus:0 0 0 2px var(--ds-border-focused, #2684FF);--product-home-color-hover:var(--ds-text-subtle, #0052CC);--product-home-bg-color-hover:var(--ds-background-neutral-hovered, rgba(222, 235, 255, 0.9));--product-home-box-shadow-hover:;--logo-max-width:260px" href="/" data-testid="navigation-container" class="css-1qtw0hy"><style data-emotion-css="3fth2k">.css-3fth2k{max-height:28px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;max-width:var(--logo-max-width);}.css-3fth2k > *{max-width:var(--logo-max-width);max-height:24px;}.css-3fth2k > span > svg{width:100%;}@media (max-width:1279.9px){.css-3fth2k{display:none;}}</style><div data-testid="navigation-logo" class="css-3fth2k"><svg width="261" height="25" viewBox="0 0 261 25" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="260.25" height="24" transform="translate(0 1)" fill="white" fill-opacity="0.01"></rect><path d="M5.3024 9.13208C5.03183 8.83445 4.62597 8.86149 4.43657 9.21323L0.0533155 18.0068C-0.109027 18.3586 0.134487 18.7644 0.513287 18.7644H6.6282C6.8176 18.7644 7.007 18.6562 7.08818 18.4668C8.44103 15.7611 7.62932 11.6213 5.3024 9.13208Z" fill="url(#paint0_linear)"></path><path d="M8.52267 1.15012C6.06047 5.04635 6.22281 9.34842 7.84624 12.5953C9.46967 15.8421 10.7143 18.3044 10.7955 18.4938C10.8766 18.6832 11.066 18.7914 11.2554 18.7914H17.3704C17.7492 18.7914 18.0197 18.3855 17.8303 18.0338C17.8303 18.0338 9.60495 1.58303 9.3885 1.17718C9.25321 0.771318 8.76618 0.771325 8.52267 1.15012Z" fill="#2684FF"></path><path d="M91.6158 14.4351C91.6158 11.8647 90.2359 10.6471 86.3937 9.80834C84.2562 9.34837 83.7422 8.86134 83.7422 8.18492C83.7422 7.34614 84.4998 6.96734 85.9067 6.96734C87.6113 6.96734 89.2889 7.48142 90.8852 8.21197V4.82982C89.7759 4.26162 88.0442 3.82869 86.015 3.82869C82.1999 3.82869 80.2247 5.47919 80.2247 8.21197C80.2247 10.3765 81.2258 12.1082 85.1762 12.8658C87.5301 13.3528 88.0172 13.7316 88.0172 14.5163C88.0172 15.2739 87.5301 15.7609 85.8526 15.7609C83.9315 15.7609 81.6317 15.1115 80.1436 14.2186V17.7631C81.3341 18.3584 82.9034 19.0078 85.8256 19.0078C89.9924 19.0078 91.6158 17.1679 91.6158 14.4351Z" fill="#0052CC"></path><path d="M133.256 4.04523V18.7643H136.395V7.53561L137.721 10.5119L142.158 18.7643H146.108V4.04523H142.97V13.5423L141.779 10.7825L138.208 4.04523H133.256Z" fill="#0052CC"></path><path d="M113.288 4.04523H109.851V18.7643H113.288V4.04523Z" fill="#0052CC"></path><path d="M105.901 14.4351C105.901 11.8647 104.522 10.6471 100.679 9.80834C98.5419 9.34837 98.0278 8.86134 98.0278 8.18492C98.0278 7.34614 98.7854 6.96734 100.192 6.96734C101.897 6.96734 103.575 7.48142 105.171 8.21197V4.82982C104.062 4.26162 102.33 3.82869 100.301 3.82869C96.4855 3.82869 94.5104 5.47919 94.5104 8.21197C94.5104 10.3765 95.5115 12.1082 99.4618 12.8658C101.816 13.3528 102.303 13.7316 102.303 14.5163C102.303 15.2739 101.816 15.7609 100.138 15.7609C98.2172 15.7609 95.9173 15.1115 94.4292 14.2186V17.7631C95.6197 18.3584 97.189 19.0078 100.111 19.0078C104.278 19.0078 105.901 17.1679 105.901 14.4351Z" fill="#0052CC"></path><path d="M53.5997 4.04523V18.7643H60.6616L61.771 15.5986H57.063V4.04523H53.5997Z" fill="#0052CC"></path><path d="M39.6926 4.0453V7.23806H43.5077V18.7644H46.9439V7.23806H51.0296V4.0453H39.6926Z" fill="#0052CC"></path><path d="M34.6874 4.04523H30.1688L25.028 18.7643H28.9512L29.6818 16.275C30.5476 16.5186 31.4676 16.6809 32.4416 16.6809C33.3886 16.6809 34.3086 16.5456 35.2014 16.275L35.932 18.7643H39.8553L34.6874 4.04523ZM32.4146 13.6505C31.7652 13.6505 31.1158 13.5423 30.5206 13.3799L32.4146 6.94033L34.3086 13.3799C33.7133 13.5423 33.0639 13.6505 32.4146 13.6505Z" fill="#0052CC"></path><path d="M72.8113 4.04521H68.2927L63.1519 18.7643H67.0751L67.8057 16.275C68.6715 16.5185 69.5915 16.6809 70.5655 16.6809C71.5125 16.6809 72.4325 16.5456 73.3253 16.275L74.0559 18.7643H77.9792L72.8113 4.04521ZM70.5655 13.6505C69.9161 13.6505 69.2668 13.5423 68.6715 13.3799L70.5655 6.94031L72.4595 13.3799C71.8372 13.5423 71.2149 13.6505 70.5655 13.6505Z" fill="#0052CC"></path><path d="M125.653 4.04521H121.135L115.994 18.7643H119.917L120.648 16.275C121.514 16.5185 122.433 16.6809 123.408 16.6809C124.355 16.6809 125.274 16.5456 126.167 16.275L126.898 18.7643H130.821L125.653 4.04521ZM123.38 13.6505C122.731 13.6505 122.082 13.5423 121.486 13.3799L123.38 6.94031L125.274 13.3799C124.679 13.5423 124.057 13.6505 123.38 13.6505Z" fill="#0052CC"></path><path d="M155.334 2.93684H161.151C166.292 2.93684 168.754 6.12959 168.754 10.8917C168.754 15.6808 166.238 18.7653 161.151 18.7653H155.334V2.93684ZM157.498 5.02023V16.7089H161.178C164.804 16.7089 166.59 14.8149 166.59 10.9728C166.59 7.13069 164.885 5.02023 161.043 5.02023H157.498Z" fill="#253858"></path><path d="M177.062 19.0079C172.57 19.0079 170.595 16.4104 170.595 12.7307C170.595 9.105 172.624 6.48046 176.277 6.48046C179.984 6.48046 181.472 9.05088 181.472 12.7307V13.6777H172.678C172.976 15.734 174.302 17.0598 177.143 17.0598C178.55 17.0598 179.713 16.7892 180.796 16.4104V18.3044C179.794 18.8185 178.279 19.0079 177.062 19.0079ZM172.651 11.8919H179.361C179.253 9.64615 178.225 8.37446 176.169 8.37446C173.977 8.37446 172.868 9.78143 172.651 11.8919Z" fill="#253858"></path><path d="M187.235 18.7644L182.554 6.72401H184.719L188.615 17.0057L192.484 6.72401H194.648L189.968 18.7644H187.235Z" fill="#253858"></path><path d="M201.737 19.0079C197.245 19.0079 195.27 16.4104 195.27 12.7307C195.27 9.105 197.299 6.48046 200.952 6.48046C204.659 6.48046 206.147 9.05088 206.147 12.7307V13.6777H197.354C197.651 15.734 198.977 17.0598 201.818 17.0598C203.225 17.0598 204.388 16.7892 205.471 16.4104V18.3044C204.497 18.8185 202.981 19.0079 201.737 19.0079ZM197.326 11.8919H204.037C203.928 9.64615 202.9 8.37446 200.844 8.37446C198.652 8.37446 197.543 9.78143 197.326 11.8919Z" fill="#253858"></path><path d="M211.829 18.8456C209.854 18.8456 208.61 17.8986 208.61 15.6799V1.69136H210.693V15.4364C210.693 16.5187 211.424 16.8975 212.316 16.8975C212.533 16.8975 212.668 16.8975 212.912 16.8704V18.7374C212.722 18.7915 212.371 18.8456 211.829 18.8456Z" fill="#253858"></path><path d="M214.049 12.7307C214.049 9.105 216.159 6.48046 219.785 6.48046C223.384 6.48046 225.467 9.105 225.467 12.7307C225.467 16.3563 223.384 19.0079 219.785 19.0079C216.159 19.0079 214.049 16.3293 214.049 12.7307ZM216.078 12.7307C216.078 15.0305 217.215 17.0869 219.785 17.0869C222.328 17.0869 223.438 15.0035 223.438 12.7307C223.438 10.4308 222.328 8.42856 219.785 8.42856C217.215 8.40151 216.078 10.4308 216.078 12.7307Z" fill="#253858"></path><path d="M229.931 16.6539V23.4724H227.848V6.72398H229.931V8.88855C230.689 7.29218 232.15 6.48046 233.99 6.48046C237.183 6.48046 238.806 9.21323 238.806 12.7307C238.806 16.1399 237.129 18.9809 233.746 18.9809C232.015 19.0079 230.662 18.2233 229.931 16.6539ZM233.449 8.40151C231.582 8.40151 229.931 9.59205 229.931 12.2436V13.2177C229.931 15.8964 231.447 17.0598 233.205 17.0598C235.532 17.0598 236.75 15.5175 236.75 12.7307C236.75 9.8626 235.613 8.40151 233.449 8.40151Z" fill="#253858"></path><path d="M247.004 19.0079C242.512 19.0079 240.537 16.4104 240.537 12.7307C240.537 9.105 242.566 6.48046 246.219 6.48046C249.926 6.48046 251.414 9.05088 251.414 12.7307V13.6777H242.62C242.918 15.734 244.244 17.0598 247.085 17.0598C248.492 17.0598 249.655 16.7892 250.737 16.4104V18.3044C249.736 18.8185 248.221 19.0079 247.004 19.0079ZM242.593 11.8919H249.303C249.195 9.64615 248.167 8.37446 246.111 8.37446C243.919 8.37446 242.81 9.78143 242.593 11.8919Z" fill="#253858"></path><path d="M255.878 18.7645H253.848V6.7241H255.878V8.83454C256.581 7.40051 257.772 6.39939 260.153 6.53468V8.56396C257.501 8.29339 255.878 9.10511 255.878 11.6485V18.7645Z" fill="#253858"></path><defs><linearGradient id="paint0_linear" x1="7.72023" y1="10.4927" x2="3.08501" y2="18.5211" gradientUnits="userSpaceOnUse"><stop stop-color="#0052CC"></stop><stop offset="0.9228" stop-color="#2684FF"></stop></linearGradient></defs></svg></div><style data-emotion-css="15lsza2">.css-15lsza2{max-height:28px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}.css-15lsza2 > *{max-height:24px;}@media (min-width:1280px){.css-15lsza2{display:none;}}</style><div data-testid="navigation-icon" class="css-15lsza2"><style data-emotion="css 12mte9y">.css-12mte9y{display:inline-block;position:relative;color:var(--logo-color);fill:var(--logo-fill);line-height:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:normal;height:32px;}.css-12mte9y >svg{height:100%;fill:inherit;}</style><span style="--logo-color:#2684FF;--logo-fill:currentColor" aria-label="Atlassian" role="img" class="css-12mte9y"> <svg viewBox="0 0 32 32" height="32" xmlns="http://www.w3.org/2000/svg" focusable="false" aria-hidden="true"> <defs> <linearGradient id="uid381680" x1="14.8402" y1="15.8324" x2="8.6599" y2="26.5369" gradientUnits="userSpaceOnUse"> <stop stop-color="#0052CC" offset="0%"></stop> <stop stop-color="#2684FF" offset="0.9228"></stop> </linearGradient> </defs> <path fill="url(#uid381680)" d="M11.6397 14.0398C11.2789 13.643 10.7378 13.679 10.4852 14.148L4.64091 25.8728C4.42446 26.3418 4.74912 26.8829 5.25419 26.8829H13.4074C13.6599 26.8829 13.9125 26.7386 14.0207 26.4861C15.7885 22.8424 14.7061 17.3227 11.6397 14.0398Z" /> <path fill="#2684FF" d="M15.9343 3.36124C12.6513 8.55622 12.8678 14.2923 15.0324 18.6215C17.1969 22.9506 18.8565 26.2336 18.9647 26.4861C19.0729 26.7386 19.3254 26.8829 19.578 26.8829H27.7312C28.2363 26.8829 28.597 26.3418 28.3445 25.8728C28.3445 25.8728 17.3774 3.93846 17.0887 3.39732C16.8723 2.89225 16.259 2.85618 15.9343 3.36124Z" /> </svg></span></div></a><style data-emotion-css="sufdiy">.css-sufdiy{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-right:4px;margin-left:4px;padding-right:16px;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><div style="border-right:1px solid var(--ds-border, rgba(107, 119, 140, 0.3))" data-testid="navigation-site-title" class="css-sufdiy">Forge</div><style data-emotion-css="uiquy5">.css-uiquy5{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:100%;position:relative;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}.css-uiquy5 > *{margin:0 4px;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}</style><div class="css-uiquy5"><style data-emotion-css="le7mka">.css-le7mka{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:100%;position:relative;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}</style><div style="--button-selected-color:var(--ds-text-selected, #0052CC);--button-selected-border-color:var(--ds-border-selected, #0052CC)" class="css-le7mka"><style data-emotion="css 4mgr5f">.css-4mgr5f,.css-4mgr5f:hover,.css-4mgr5f:active,.css-4mgr5f:focus,.css-4mgr5f:visited,.css-4mgr5f:disabled,.css-4mgr5f[disabled]{-webkit-align-items:baseline;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;border-width:0;border-radius:3px;box-sizing:border-box;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;font-size:inherit;font-style:normal;font-family:inherit;font-weight:500;max-width:100%;position:relative;text-align:center;-webkit-text-decoration:none;text-decoration:none;-webkit-transition:background 0.1s ease-out,box-shadow 0.15s cubic-bezier(0.47, 0.03, 0.49, 1.38);transition:background 0.1s ease-out,box-shadow 0.15s cubic-bezier(0.47, 0.03, 0.49, 1.38);white-space:nowrap;background:var(--ds-background-brand-bold, #0052CC);color:var(--ds-text-subtle, #344563);cursor:pointer;height:2.2857142857142856em;line-height:2.2857142857142856em;padding:0 4px;vertical-align:middle;width:auto;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;outline:none;background-color:transparent;margin-left:0;margin-right:0;}.css-4mgr5f::-moz-focus-inner,.css-4mgr5f:hover::-moz-focus-inner,.css-4mgr5f:active::-moz-focus-inner,.css-4mgr5f:focus::-moz-focus-inner,.css-4mgr5f:visited::-moz-focus-inner,.css-4mgr5f:disabled::-moz-focus-inner,.css-4mgr5f[disabled]::-moz-focus-inner{border:0;margin:0;padding:0;}.css-4mgr5f:hover,.css-4mgr5f:hover:hover,.css-4mgr5f:active:hover,.css-4mgr5f:focus:hover,.css-4mgr5f:visited:hover,.css-4mgr5f:disabled:hover,.css-4mgr5f[disabled]:hover{color:var(--ds-text-subtle, #0052CC);background-color:var(--ds-background-neutral-hovered, rgba(222, 235, 255, 0.9));}.css-4mgr5f:focus,.css-4mgr5f:hover:focus,.css-4mgr5f:active:focus,.css-4mgr5f:focus:focus,.css-4mgr5f:visited:focus,.css-4mgr5f:disabled:focus,.css-4mgr5f[disabled]:focus{color:var(--ds-text-subtle, #344563);box-shadow:0 0 0 2px var(--ds-border-focused, #2684FF);}</style><a class="css-4mgr5f" href="/platform/forge/" data-testid="Guides" tabindex="0"><style data-emotion="css 178ag6o">.css-178ag6o{opacity:1;-webkit-transition:opacity 0.3s;transition:opacity 0.3s;margin:0 2px;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}</style><span class="css-178ag6o">Guides</span></a></div><div style="--button-selected-color:var(--ds-text-selected, #0052CC);--button-selected-border-color:var(--ds-border-selected, #0052CC)" class="css-le7mka"><style data-emotion="css 1nctkyd">.css-1nctkyd,.css-1nctkyd:hover,.css-1nctkyd:active,.css-1nctkyd:focus,.css-1nctkyd:visited,.css-1nctkyd:disabled,.css-1nctkyd[disabled]{-webkit-align-items:baseline;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;border-width:0;border-radius:3px;box-sizing:border-box;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;font-size:inherit;font-style:normal;font-family:inherit;font-weight:500;max-width:100%;position:relative;text-align:center;-webkit-text-decoration:none;text-decoration:none;-webkit-transition:background 0.1s ease-out,box-shadow 0.15s cubic-bezier(0.47, 0.03, 0.49, 1.38);transition:background 0.1s ease-out,box-shadow 0.15s cubic-bezier(0.47, 0.03, 0.49, 1.38);white-space:nowrap;background:var(--ds-background-selected, #253858);color:var(--ds-text-selected, #0052CC);cursor:pointer;height:2.2857142857142856em;line-height:2.2857142857142856em;padding:0 4px;vertical-align:middle;width:auto;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;outline:none;background-color:var(--ds-background-selected, rgba(222, 235, 255, 0.7));border-color:var(--ds-border-selected, #0052CC);bordor-bottom:4px solid var(--ds-border-selected, #0052CC);margin-left:0;margin-right:0;}.css-1nctkyd::-moz-focus-inner,.css-1nctkyd:hover::-moz-focus-inner,.css-1nctkyd:active::-moz-focus-inner,.css-1nctkyd:focus::-moz-focus-inner,.css-1nctkyd:visited::-moz-focus-inner,.css-1nctkyd:disabled::-moz-focus-inner,.css-1nctkyd[disabled]::-moz-focus-inner{border:0;margin:0;padding:0;}.css-1nctkyd:hover,.css-1nctkyd:hover:hover,.css-1nctkyd:active:hover,.css-1nctkyd:focus:hover,.css-1nctkyd:visited:hover,.css-1nctkyd:disabled:hover,.css-1nctkyd[disabled]:hover{color:var(--ds-text-subtle, #0052CC);background-color:var(--ds-background-neutral-hovered, rgba(222, 235, 255, 0.9));}.css-1nctkyd:focus,.css-1nctkyd:hover:focus,.css-1nctkyd:active:focus,.css-1nctkyd:focus:focus,.css-1nctkyd:visited:focus,.css-1nctkyd:disabled:focus,.css-1nctkyd[disabled]:focus{color:var(--ds-text-subtle, #344563);box-shadow:0 0 0 2px var(--ds-border-focused, #2684FF);}</style><a class="css-1nctkyd" href="/platform/forge/manifest-reference/" data-testid="Reference" tabindex="0"><style data-emotion="css 178ag6o">.css-178ag6o{opacity:1;-webkit-transition:opacity 0.3s;transition:opacity 0.3s;margin:0 2px;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}</style><span class="css-178ag6o">Reference</span></a></div><div style="--button-selected-color:var(--ds-text-selected, #0052CC);--button-selected-border-color:var(--ds-border-selected, #0052CC)" class="css-le7mka"><style data-emotion="css 4mgr5f">.css-4mgr5f,.css-4mgr5f:hover,.css-4mgr5f:active,.css-4mgr5f:focus,.css-4mgr5f:visited,.css-4mgr5f:disabled,.css-4mgr5f[disabled]{-webkit-align-items:baseline;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;border-width:0;border-radius:3px;box-sizing:border-box;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;font-size:inherit;font-style:normal;font-family:inherit;font-weight:500;max-width:100%;position:relative;text-align:center;-webkit-text-decoration:none;text-decoration:none;-webkit-transition:background 0.1s ease-out,box-shadow 0.15s cubic-bezier(0.47, 0.03, 0.49, 1.38);transition:background 0.1s ease-out,box-shadow 0.15s cubic-bezier(0.47, 0.03, 0.49, 1.38);white-space:nowrap;background:var(--ds-background-brand-bold, #0052CC);color:var(--ds-text-subtle, #344563);cursor:pointer;height:2.2857142857142856em;line-height:2.2857142857142856em;padding:0 4px;vertical-align:middle;width:auto;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;outline:none;background-color:transparent;margin-left:0;margin-right:0;}.css-4mgr5f::-moz-focus-inner,.css-4mgr5f:hover::-moz-focus-inner,.css-4mgr5f:active::-moz-focus-inner,.css-4mgr5f:focus::-moz-focus-inner,.css-4mgr5f:visited::-moz-focus-inner,.css-4mgr5f:disabled::-moz-focus-inner,.css-4mgr5f[disabled]::-moz-focus-inner{border:0;margin:0;padding:0;}.css-4mgr5f:hover,.css-4mgr5f:hover:hover,.css-4mgr5f:active:hover,.css-4mgr5f:focus:hover,.css-4mgr5f:visited:hover,.css-4mgr5f:disabled:hover,.css-4mgr5f[disabled]:hover{color:var(--ds-text-subtle, #0052CC);background-color:var(--ds-background-neutral-hovered, rgba(222, 235, 255, 0.9));}.css-4mgr5f:focus,.css-4mgr5f:hover:focus,.css-4mgr5f:active:focus,.css-4mgr5f:focus:focus,.css-4mgr5f:visited:focus,.css-4mgr5f:disabled:focus,.css-4mgr5f[disabled]:focus{color:var(--ds-text-subtle, #344563);box-shadow:0 0 0 2px var(--ds-border-focused, #2684FF);}</style><a class="css-4mgr5f" href="/platform/forge/get-help/" data-testid="Get help" tabindex="0"><style data-emotion="css 178ag6o">.css-178ag6o{opacity:1;-webkit-transition:opacity 0.3s;transition:opacity 0.3s;margin:0 2px;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}</style><span class="css-178ag6o">Get help</span></a></div><div style="--button-selected-color:var(--ds-text-selected, #0052CC);--button-selected-border-color:var(--ds-border-selected, #0052CC)" class="css-le7mka"><style data-emotion="css 4mgr5f">.css-4mgr5f,.css-4mgr5f:hover,.css-4mgr5f:active,.css-4mgr5f:focus,.css-4mgr5f:visited,.css-4mgr5f:disabled,.css-4mgr5f[disabled]{-webkit-align-items:baseline;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;border-width:0;border-radius:3px;box-sizing:border-box;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;font-size:inherit;font-style:normal;font-family:inherit;font-weight:500;max-width:100%;position:relative;text-align:center;-webkit-text-decoration:none;text-decoration:none;-webkit-transition:background 0.1s ease-out,box-shadow 0.15s cubic-bezier(0.47, 0.03, 0.49, 1.38);transition:background 0.1s ease-out,box-shadow 0.15s cubic-bezier(0.47, 0.03, 0.49, 1.38);white-space:nowrap;background:var(--ds-background-brand-bold, #0052CC);color:var(--ds-text-subtle, #344563);cursor:pointer;height:2.2857142857142856em;line-height:2.2857142857142856em;padding:0 4px;vertical-align:middle;width:auto;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;outline:none;background-color:transparent;margin-left:0;margin-right:0;}.css-4mgr5f::-moz-focus-inner,.css-4mgr5f:hover::-moz-focus-inner,.css-4mgr5f:active::-moz-focus-inner,.css-4mgr5f:focus::-moz-focus-inner,.css-4mgr5f:visited::-moz-focus-inner,.css-4mgr5f:disabled::-moz-focus-inner,.css-4mgr5f[disabled]::-moz-focus-inner{border:0;margin:0;padding:0;}.css-4mgr5f:hover,.css-4mgr5f:hover:hover,.css-4mgr5f:active:hover,.css-4mgr5f:focus:hover,.css-4mgr5f:visited:hover,.css-4mgr5f:disabled:hover,.css-4mgr5f[disabled]:hover{color:var(--ds-text-subtle, #0052CC);background-color:var(--ds-background-neutral-hovered, rgba(222, 235, 255, 0.9));}.css-4mgr5f:focus,.css-4mgr5f:hover:focus,.css-4mgr5f:active:focus,.css-4mgr5f:focus:focus,.css-4mgr5f:visited:focus,.css-4mgr5f:disabled:focus,.css-4mgr5f[disabled]:focus{color:var(--ds-text-subtle, #344563);box-shadow:0 0 0 2px var(--ds-border-focused, #2684FF);}</style><a class="css-4mgr5f" href="/platform/forge/changelog/" data-testid="Changelog" tabindex="0"><style data-emotion="css 178ag6o">.css-178ag6o{opacity:1;-webkit-transition:opacity 0.3s;transition:opacity 0.3s;margin:0 2px;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}</style><span class="css-178ag6o">Changelog</span></a></div><style data-emotion-css="1ozpmrm">.css-1ozpmrm{width:100%;min-width:1px;margin:0px;position:relative;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;}</style><div class="css-1ozpmrm"><div style="display:block;width:100%;position:absolute"></div></div></div></nav><style data-emotion-css="d4blq8">.css-d4blq8{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}.css-d4blq8 > *{margin-right:4px;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}</style><div class="css-d4blq8"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="16" height="16" viewBox="0 0 24 24" role="presentation"><path d="M16.436 15.085l3.94 4.01a1 1 0 01-1.425 1.402l-3.938-4.006a7.5 7.5 0 111.423-1.406zM10.5 16a5.5 5.5 0 100-11 5.5 5.5 0 000 11z" fill="currentColor" fill-rule="evenodd"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button><div class="sc-TuwoP gNpolA"></div><style data-emotion-css="1pys61m">a.css-1pys61m{-webkit-align-items:baseline;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;border-width:0;box-sizing:border-box;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;font-size:inherit;font-style:normal;font-weight:500;max-width:100%;outline:none !important;text-align:center;-webkit-text-decoration:none;text-decoration:none;white-space:nowrap;background:none;border-radius:3px;box-shadow:0 0 0 2px inherit;color:#42526E !important;cursor:default;height:2.2857142857142856em;line-height:2.2857142857142856em;padding:0 8px;-webkit-transition:background 0.1s ease-out,box-shadow 0.15s cubic-bezier(0.47,0.03,0.49,1.38);transition:background 0.1s ease-out,box-shadow 0.15s cubic-bezier(0.47,0.03,0.49,1.38);-webkit-transition-duration:0.1s,0.15s;transition-duration:0.1s,0.15s;vertical-align:middle;width:auto;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Roboto','Oxygen','Ubuntu','Fira Sans','Droid Sans','Helvetica Neue',sans-serif;}a.css-1pys61m::-moz-focus-inner{border:0;margin:0;padding:0;}a.css-1pys61m:hover{-webkit-text-decoration:inherit;text-decoration:inherit;}</style><a href="/support" type="button" class="css-1pys61m"><style data-emotion-css="j8fq0c">.css-j8fq0c{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;max-width:100%;position:relative;}</style><span class="css-j8fq0c"><style data-emotion-css="t5emrf">.css-t5emrf{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;margin:0 4px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-transition:opacity 0.3s;transition:opacity 0.3s;opacity:1;}</style><span class="css-t5emrf">Support</span></span></a><style data-emotion-css="9b4v41">a.css-9b4v41{-webkit-align-items:baseline;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;border-width:0;box-sizing:border-box;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;font-size:inherit;font-style:normal;font-weight:500;max-width:100%;outline:none !important;text-align:center;-webkit-text-decoration:none;text-decoration:none;white-space:nowrap;background:rgba(9,30,66,0.04);border-radius:3px;box-shadow:0 0 0 2px inherit;color:#42526E !important;cursor:default;height:2.2857142857142856em;line-height:2.2857142857142856em;padding:0 8px;-webkit-transition:background 0.1s ease-out,box-shadow 0.15s cubic-bezier(0.47,0.03,0.49,1.38);transition:background 0.1s ease-out,box-shadow 0.15s cubic-bezier(0.47,0.03,0.49,1.38);-webkit-transition-duration:0.1s,0.15s;transition-duration:0.1s,0.15s;vertical-align:middle;width:auto;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Roboto','Oxygen','Ubuntu','Fira Sans','Droid Sans','Helvetica Neue',sans-serif;}a.css-9b4v41::-moz-focus-inner{border:0;margin:0;padding:0;}a.css-9b4v41:hover{-webkit-text-decoration:inherit;text-decoration:inherit;}</style><a href="/account/login?returnTo=%2Fplatform%2Fforge%2F" type="button" class="css-9b4v41"><span class="css-j8fq0c"><span class="css-t5emrf">Log in</span></span></a></div></header></div></div><div class="sc-jptPkM eYXdgj sc-fcTNbh eoVOUX"><div class="sc-hBcjXN inVjNv"><div class="sc-aewfc dIXIPO"><div class="sc-ejGVNB helpjl"><div class="sc-iiUIRa ertFmj"><span class="sc-iIHSe pWIuP"></span><div class="sc-hgRTRy TOtET" role="tablist"><a aria-posinset="1" aria-selected="false" aria-setsize="7" role="tab" href="/platform/forge/cli-reference/" style="text-decoration:none"><div class="sc-gldTML ezMIpz" aria-posinset="1" aria-selected="false" aria-setsize="7" role="tab">CLI</div></a><a aria-posinset="2" aria-selected="false" aria-setsize="7" role="tab" href="/platform/forge/manifest-reference/" style="text-decoration:none"><div class="sc-gldTML ezMIpz" aria-posinset="2" aria-selected="false" aria-setsize="7" role="tab">Manifest</div></a><a aria-posinset="3" aria-selected="false" aria-setsize="7" role="tab" href="/platform/forge/manifest-reference/modules/" style="text-decoration:none"><div class="sc-gldTML ezMIpz" aria-posinset="3" aria-selected="false" aria-setsize="7" role="tab">Modules</div></a><a aria-posinset="4" aria-selected="false" aria-setsize="7" role="tab" href="/platform/forge/function-reference/index/" style="text-decoration:none"><div class="sc-gldTML ezMIpz" aria-posinset="4" aria-selected="false" aria-setsize="7" role="tab">Functions</div></a><a aria-posinset="5" aria-selected="true" aria-setsize="7" role="tab" href="/platform/forge/runtime-reference/storage-api/" style="text-decoration:none"><div class="sc-gldTML gZQRfE" aria-posinset="5" aria-selected="true" aria-setsize="7" role="tab">Storage<span class="sc-iIHSe khmkld"></span></div></a><a aria-posinset="6" aria-selected="false" aria-setsize="7" role="tab" href="/platform/forge/ui-kit/overview/" style="text-decoration:none"><div class="sc-gldTML ezMIpz" aria-posinset="6" aria-selected="false" aria-setsize="7" role="tab">User Interface</div></a><a aria-posinset="7" aria-selected="false" aria-setsize="7" role="tab" href="/platform/forge/events-reference/" style="text-decoration:none"><div class="sc-gldTML ezMIpz" aria-posinset="7" aria-selected="false" aria-setsize="7" role="tab">Events</div></a></div></div><div class="sc-eLdqWK hRPVEy" role="tabpanel"></div></div></div><div class="sc-gVZiCL dehUuJ"><div class="sc-hdNmWC gBQpmb"><div class="sc-fPEBxH hYSqCz"><div class="sc-dOkuiw gmgxDe"><div class="sc-jGFFOr KxHOa"><style data-emotion-css="1f9r6s4">.css-1f9r6s4{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#FAFBFC;border-color:#DFE1E6;color:#091E42;cursor:text;border-radius:3px;border-width:2px;border-style:solid;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1 1 100%;-ms-flex:1 1 100%;flex:1 1 100%;font-size:14px;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;max-width:100%;overflow:hidden;-webkit-transition:background-color 0.2s ease-in-out,border-color 0.2s ease-in-out;transition:background-color 0.2s ease-in-out,border-color 0.2s ease-in-out;word-wrap:break-word;vertical-align:top;pointer-events:auto;}.css-1f9r6s4:hover{background-color:#EBECF0;}.css-1f9r6s4:focus-within{background-color:#FFFFFF;border-color:#4C9AFF;}.css-1f9r6s4[data-disabled]{background-color:#FAFBFC;border-color:#FAFBFC;color:#A5ADBA;cursor:not-allowed;}.css-1f9r6s4[data-disabled]:focus-within{background-color:#F4F5F7;border-color:#4C9AFF;}.css-1f9r6s4[data-disabled]:hover{background-color:#F4F5F7;}.css-1f9r6s4[data-invalid]{background-color:#FAFBFC;border-color:#DE350B;}.css-1f9r6s4[data-invalid]:focus-within{background-color:#FFFFFF;border-color:#4C9AFF;}.css-1f9r6s4[data-invalid]:hover{background-color:#EBECF0;}@media screen and (-ms-high-contrast:active){.css-1f9r6s4[data-invalid]:focus-within{border-color:Highlight;}.css-1f9r6s4:focus-within{border-color:Highlight;}.css-1f9r6s4[data-disabled]{border-color:GrayText;}}</style><div data-disabled="true" data-ds--text-field--container="true" class="css-1f9r6s4"><style data-emotion-css="1yzx7dv">.css-1yzx7dv{background-color:transparent;border:0;box-sizing:border-box;color:inherit;cursor:inherit;font-size:14px;min-width:0;outline:none;width:100%;line-height:1.4285714285714286;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Roboto','Oxygen','Ubuntu','Fira Sans','Droid Sans','Helvetica Neue',sans-serif;}.css-1yzx7dv[data-monospaced]{font-family:'SFMono-Medium','SF Mono','Segoe UI Mono','Roboto Mono','Ubuntu Mono',Menlo,Consolas,Courier,monospace;}.css-1yzx7dv[data-compact]{padding:4px 6px;height:2.00em;}.css-1yzx7dv:not([data-compact]){padding:8px 6px;height:2.57em;}.css-1yzx7dv[disabled]{-webkit-text-fill-color:#A5ADBA;}.css-1yzx7dv::-ms-clear{display:none;}.css-1yzx7dv:invalid{box-shadow:none;}.css-1yzx7dv::placeholder{color:#7A869A;}.css-1yzx7dv::-webkit-input-placeholder:disabled{color:#A5ADBA;}.css-1yzx7dv::-moz-placeholder:disabled{color:#A5ADBA;}.css-1yzx7dv:-ms-input-placeholder:disabled{color:#A5ADBA;}.css-1yzx7dv::placeholder:disabled{color:#A5ADBA;}@media screen and (-ms-high-contrast:active){.css-1yzx7dv[disabled]{color:GrayText;}}</style><input value="Loading..." disabled="" data-ds--text-field--input="true" class="css-1yzx7dv"/></div></div><div class="sideNavLinksScrollable sc-dAOnuy bUjEBB"><ul class="sc-cSYcjD cctkxI"><li class="sc-eweMDZ cndhOS"><a href="/platform/forge/runtime-reference/storage-api/"><span>Overview</span></a></li></ul><div class="sc-cnTzU ieWBpa"><span class="sc-eQGPmX kmEqMv"><style data-emotion="css snhnyn">.css-snhnyn{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;}.css-snhnyn >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-snhnyn >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-snhnyn >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}</style><span role="img" aria-label="Closed" style="--icon-primary-color:currentColor;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-snhnyn"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><path d="M10.294 9.698a.988.988 0 010-1.407 1.01 1.01 0 011.419 0l2.965 2.94a1.09 1.09 0 010 1.548l-2.955 2.93a1.01 1.01 0 01-1.42 0 .988.988 0 010-1.407l2.318-2.297-2.327-2.307z" fill="currentColor" fill-rule="evenodd"/></svg></span></span><a href="/platform/forge/runtime-reference/storage-api-basic/" class="">Key-Value Store</a></div><div class="sc-cnTzU ieWBpa"><span class="sc-eQGPmX kmEqMv"><style data-emotion="css snhnyn">.css-snhnyn{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;}.css-snhnyn >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-snhnyn >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-snhnyn >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}</style><span role="img" aria-label="Open" style="--icon-primary-color:currentColor;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-snhnyn"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><path d="M8.292 10.293a1.009 1.009 0 000 1.419l2.939 2.965c.218.215.5.322.779.322s.556-.107.769-.322l2.93-2.955a1.01 1.01 0 000-1.419.987.987 0 00-1.406 0l-2.298 2.317-2.307-2.327a.99.99 0 00-1.406 0z" fill="currentColor" fill-rule="evenodd"/></svg></span></span><a href="/platform/forge/storage-reference/storage-api-custom-entities/" class="">Custom Entity Store</a></div><ul class="sc-dXLFzO cLJrMK"><li class="sc-eweMDZ kUkhiO"><a href="/platform/forge/runtime-reference/custom-entities/"><span>Defining entities</span></a></li><li class="sc-eweMDZ kUkhiO"><a href="/platform/forge/runtime-reference/storage-api-custom-entities/"><span>Storing entities</span></a></li><li class="sc-eweMDZ lfFGfa"><a href="/platform/forge/runtime-reference/storage-api-query-complex/"><span>Querying data</span></a></li></ul><div class="sc-cnTzU ieWBpa"><span class="sc-eQGPmX kmEqMv"><style data-emotion="css snhnyn">.css-snhnyn{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;}.css-snhnyn >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-snhnyn >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-snhnyn >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}</style><span role="img" aria-label="Closed" style="--icon-primary-color:currentColor;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-snhnyn"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><path d="M10.294 9.698a.988.988 0 010-1.407 1.01 1.01 0 011.419 0l2.965 2.94a1.09 1.09 0 010 1.548l-2.955 2.93a1.01 1.01 0 01-1.42 0 .988.988 0 010-1.407l2.318-2.297-2.327-2.307z" fill="currentColor" fill-rule="evenodd"/></svg></span></span><a href="/platform/forge/storage-reference/sql/" class="">SQL (EAP)</a></div><div class="sc-cnTzU ieWBpa"><span class="sc-eQGPmX kmEqMv"><style data-emotion="css snhnyn">.css-snhnyn{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;}.css-snhnyn >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-snhnyn >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-snhnyn >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}</style><span role="img" aria-label="Closed" style="--icon-primary-color:currentColor;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-snhnyn"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><path d="M10.294 9.698a.988.988 0 010-1.407 1.01 1.01 0 011.419 0l2.965 2.94a1.09 1.09 0 010 1.548l-2.955 2.93a1.01 1.01 0 01-1.42 0 .988.988 0 010-1.407l2.318-2.297-2.327-2.307z" fill="currentColor" fill-rule="evenodd"/></svg></span></span><a href="/platform/forge/storage-reference/storage-cache-api/" class="">Cache (EAP)</a></div></div></div></div></div><div class="sc-dHaUqb fhGBQx"><div class="sc-fPbjcq brvHif"><div class="sc-fjNYmT gscMiQ"><span class="sc-hzOKmB lelYfH"><span class="sc-dzVpKk jWXaOJ"></span></span></div></div><div class="sc-FAiZp dtgjSj"><div class="sc-fguZLD jZSjeZ"><div class="sc-fkyLDJ aEnsw"><h1 id="querying-the-custom-entity-store">Querying the Custom Entity Store<span role="presentation" class="heading-anchor-wrapper"><button class="sc-jUpvKA fYWbTP"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span role="img" aria-label="copy" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"/><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"/></g></svg></span></button></span></h1><div class="sc-ewMkZo XuMHq"><div class="sc-eCXBzT iDivTj" width="192"><div class="sc-Ehqfj kGxrAZ"></div></div></div><p>You can build complex queries against data stored in the <a href="/platform/forge/runtime-reference/storage-api-custom-entities/" target="_self">Custom Entity Store</a> using a wide variety of filters and conditions.</p> <p>To start, import the Forge API package in your app, as follows:</p> <pre><div class="sc-cBrjTV bwcFuI"><div class="sc-gbzWSY gJyXAL"><div class="sc-jMMfwr bXLabE"><div class="sc-jGxEUC cjLyNv"><pre>1 2</pre><pre><code class="javascript">import { storage } from &#x27;@forge/api&#x27;; </code></pre></div></div></div></div></pre> <p>Each installation of your app is subject to the Storage API&#x27;s quotas and limits. See <a href="/platform/forge/platform-quotas-and-limits/#storage-quotas" target="_self">Storage quotas</a> and <a href="/platform/forge/platform-quotas-and-limits/#storage-limits" target="_self">Storage limits</a> for more details.</p> <div class="sc-imapFV dFdozN"><section class="sc-jOVcOr brBXGR"><div class="sc-btewqU fSUEQg"><style data-emotion="css snhnyn">.css-snhnyn{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;}.css-snhnyn &gt;svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-snhnyn &gt;svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-snhnyn &gt;svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}</style><span aria-hidden="true" style="--icon-primary-color:#0747A6;--icon-secondary-color:#DEEBFF" class="css-snhnyn"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill-rule="evenodd"><path d="M2 12c0 5.523 4.477 10 10 10s10-4.477 10-10S17.523 2 12 2 2 6.477 2 12z" fill="currentColor"></path><rect fill="inherit" x="11" y="10" width="2" height="7" rx="1"></rect><circle fill="inherit" cx="12" cy="8" r="1"></circle></g></svg></span></div><div class="sc-hkaZBZ ejtmNK"><div class="sc-RWGNv lfxCWf"> <p>The app storage API requires your app to have the <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>storage:app</code></span></span> scope. See <a href="/platform/forge/add-scopes-to-call-an-atlassian-rest-api" target="_self">Add scopes to call an Atlassian REST API</a> guide to add new scopes to your app.</p> </div></div></section></div> <h2 id="related-information">Related information<span role="presentation" class="heading-anchor-wrapper"><button class="sc-jUpvKA fYWbTP"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span role="img" aria-label="copy" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"/><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"/></g></svg></span></button></span></h2> <p>Before you can store data in the Custom Entity Store, you&#x27;ll need to declare your <a href="/platform/forge/runtime-reference/custom-entities/" target="_self">custom entities</a> and indexes first in your app&#x27;s manifest file. Custom entities are user-defined data structures for storing app data. Forge&#x27;s storage API lets you query data stored in these structures using a wide array of query conditions. These query conditions make it possible to build advanced, complex queries to suit your app&#x27;s operations.</p> <p>For information about storing data to the Custom Entity Store, see <a href="/platform/forge/runtime-reference/storage-api-custom-entities" target="_self">Storing data in custom entities</a> .</p> <p>For a detailed tutorial on storing and querying structured data through custom entities, see <a href="/platform/forge/custom-entities-store-structured-data/" target="_self">Use custom entities to store structured data</a>.</p> <h2 id="basic-methods">Basic methods<span role="presentation" class="heading-anchor-wrapper"><button class="sc-jUpvKA fYWbTP"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span role="img" aria-label="copy" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"/><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"/></g></svg></span></button></span></h2> <p><a id="index" href="" target="_blank"></a></p> <p>All complex queries operate on a <a href="/platform/forge/runtime-reference/custom-entities/#indexes" target="_self">custom entity&#x27;s index</a>. Complex queries follow the same basic signature:</p> <pre><div class="sc-cBrjTV bwcFuI"><div class="sc-gbzWSY gJyXAL"><div class="sc-jMMfwr bXLabE"><div class="sc-jGxEUC cjLyNv"><pre>1 2</pre><pre><code class="javascript">await storage .entity(&quot;&lt;custom-entity&gt;&quot;) .query() .index() </code></pre></div></div></div></div></pre> <p>This structure contains all the <em>required</em> methods for a complex query. The <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>entity</code></span></span> method sets which custom entity to query, and <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>index</code></span></span> sets which of those entity&#x27;s indexes to query. Each query can only target one index from one custom entity.</p> <p>When using indexes that feature a <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>partition</code></span></span>, you must specify a value to match the parameter&#x27;s attribute:</p> <pre><div class="sc-cBrjTV bwcFuI"><div class="sc-gbzWSY gJyXAL"><div class="sc-jMMfwr bXLabE"><div class="sc-jGxEUC cjLyNv"><pre>1 2</pre><pre><code class="javascript">await storage .entity(&quot;&lt;custom-entity&gt;&quot;) .query() .index(&quot;&lt;index-name&gt;&quot;, { partition: [&quot;&lt;value&gt;&quot;] }) </code></pre></div></div></div></div></pre> <p>If your index&#x27;s <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>partition</code></span></span> has multiple attributes, then you must set a value for each attribute. In addition, you must also set each value in the order they are declared in the index. For example, consider the following index:</p> <pre><div class="sc-cBrjTV bwcFuI"><div class="sc-gbzWSY gJyXAL"><div class="sc-jMMfwr bXLabE"><div class="sc-jGxEUC cjLyNv"><pre>1 2</pre><pre><code class="yaml">indexes: - name: by-gender-and-age range: - employmentyear partition: - gender - age </code></pre></div></div></div></div></pre> <p>An appropriate query for this would be:</p> <pre><div class="sc-cBrjTV bwcFuI"><div class="sc-gbzWSY gJyXAL"><div class="sc-jMMfwr bXLabE"><div class="sc-jGxEUC cjLyNv"><pre>1 2</pre><pre><code class="javascript">await storage .entity(&quot;employee&quot;) .query() .index(&quot;by-gender-and-age&quot;, { partition: [&quot;male&quot;,20] }) .where(WhereConditions.isGreaterThan(2003)) </code></pre></div></div></div></div></pre> <p>This query will fetch employees who are:</p> <ul> <li>male</li> <li>20 years old</li> <li>employed after 2003 (that is, <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>employmentyear</code></span></span> is higher than <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>2003</code></span></span>).</li> </ul> <div class="sc-imapFV dFdozN"><section class="sc-jOVcOr drXChn"><div class="sc-btewqU fSUEQg"><style data-emotion="css snhnyn">.css-snhnyn{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;}.css-snhnyn &gt;svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-snhnyn &gt;svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-snhnyn &gt;svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}</style><span aria-hidden="true" style="--icon-primary-color:#FF8B00;--icon-secondary-color:#FFFAE6" class="css-snhnyn"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill-rule="evenodd"><path d="M12.938 4.967c-.518-.978-1.36-.974-1.876 0L3.938 18.425c-.518.978-.045 1.771 1.057 1.771h14.01c1.102 0 1.573-.797 1.057-1.771L12.938 4.967z" fill="currentColor"></path><path d="M12 15a1 1 0 01-1-1V9a1 1 0 012 0v5a1 1 0 01-1 1m0 3a1 1 0 010-2 1 1 0 010 2" fill="inherit"></path></g></svg></span></div><div class="sc-hkaZBZ ejtmNK"><div class="sc-RWGNv lfxCWf"> <p>Every complex query returns up to 10 values by default. You can increase this to a maximum of 100 using <a href="#query-limit" target="_self">query.limit</a>.</p> </div></div></section></div> <h2 id="where">where<span role="presentation" class="heading-anchor-wrapper"><button class="sc-jUpvKA fYWbTP"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span role="img" aria-label="copy" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"/><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"/></g></svg></span></button></span></h2> <p>While <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>index</code></span></span> lets you filter matches to an index&#x27;s <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>partition</code></span></span>, <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>where</code></span></span> lets you filter against an index&#x27;s <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>range</code></span></span>. To use the <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>where</code></span></span> filter:</p> <pre><div class="sc-cBrjTV bwcFuI"><div class="sc-gbzWSY gJyXAL"><div class="sc-jMMfwr bXLabE"><div class="sc-jGxEUC cjLyNv"><pre>1 2</pre><pre><code class="javascript">import { WhereConditions } from &#x27;@forge/api&#x27;; </code></pre></div></div></div></div></pre> <h3 id="method-signature">Method signature<span role="presentation" class="heading-anchor-wrapper"><button class="sc-jUpvKA fYWbTP"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span role="img" aria-label="copy" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"/><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"/></g></svg></span></button></span></h3> <pre><div class="sc-cBrjTV bwcFuI"><div class="sc-gbzWSY gJyXAL"><div class="sc-jMMfwr bXLabE"><div class="sc-jGxEUC cjLyNv"><pre>1 2</pre><pre><code class="javascript">.where(WhereConditions.&lt;condition&gt;(&quot;&lt;value&gt;&quot;)) </code></pre></div></div></div></div></pre> <h3 id="conditions">Conditions<span role="presentation" class="heading-anchor-wrapper"><button class="sc-jUpvKA fYWbTP"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span role="img" aria-label="copy" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"/><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"/></g></svg></span></button></span></h3> <p>The <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>where</code></span></span> filtering method supports the following conditions:</p> <ul> <li><span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>beginsWith</code></span></span></li> <li><span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>between</code></span></span></li> <li><span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>equalsTo</code></span></span></li> <li><span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>isGreaterThan</code></span></span>, <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>isLessThan</code></span></span></li> <li><span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>isGreaterThanOrEqualTo</code></span></span>, <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>isLessThanOrEqualTo</code></span></span></li> </ul> <h2 id="andfilter---orfilter">andFilter / orFilter<span role="presentation" class="heading-anchor-wrapper"><button class="sc-jUpvKA fYWbTP"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span role="img" aria-label="copy" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"/><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"/></g></svg></span></button></span></h2> <p>You can only use the <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>index</code></span></span> and <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>where</code></span></span> methods once per query. The <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>andFilter</code></span></span> and <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>orFilter</code></span></span> allow you add more conditions to a query.</p> <h3 id="method-signature-1">Method signature<span role="presentation" class="heading-anchor-wrapper"><button class="sc-jUpvKA fYWbTP"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span role="img" aria-label="copy" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"/><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"/></g></svg></span></button></span></h3> <p>To use either filtering method:</p> <pre><div class="sc-cBrjTV bwcFuI"><div class="sc-gbzWSY gJyXAL"><div class="sc-jMMfwr bXLabE"><div class="sc-jGxEUC cjLyNv"><pre>1 2</pre><pre><code class="javascript">import { FilterConditions } from &#x27;@forge/api&#x27;; </code></pre></div></div></div></div></pre> <p>Each filtering method use the following signatures:</p> <ul> <li><span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>andFilter</code></span></span>: <em>all</em> conditions must be matched. <pre><div class="sc-cBrjTV bwcFuI"><div class="sc-gbzWSY gJyXAL"><div class="sc-jMMfwr bXLabE"><div class="sc-jGxEUC cjLyNv"><pre>1 2</pre><pre><code class="javascript">.andFilter(&quot;&lt;attribute&gt;&quot;,FilterConditions.&lt;condition&gt;(&quot;&lt;value&gt;&quot;)) </code></pre></div></div></div></div></pre> </li> <li><span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>orFilter</code></span></span>: only <em>one</em> condition must be matched. <pre><div class="sc-cBrjTV bwcFuI"><div class="sc-gbzWSY gJyXAL"><div class="sc-jMMfwr bXLabE"><div class="sc-jGxEUC cjLyNv"><pre>1 2</pre><pre><code class="javascript">.orFilter(&quot;&lt;attribute&gt;&quot;,FilterConditions.&lt;condition&gt;(&quot;&lt;value&gt;&quot;)) </code></pre></div></div></div></div></pre> </li> </ul> <div class="sc-imapFV dFdozN"><section class="sc-jOVcOr brBXGR"><div class="sc-btewqU fSUEQg"><style data-emotion="css snhnyn">.css-snhnyn{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;}.css-snhnyn &gt;svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-snhnyn &gt;svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-snhnyn &gt;svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}</style><span aria-hidden="true" style="--icon-primary-color:#0747A6;--icon-secondary-color:#DEEBFF" class="css-snhnyn"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill-rule="evenodd"><path d="M2 12c0 5.523 4.477 10 10 10s10-4.477 10-10S17.523 2 12 2 2 6.477 2 12z" fill="currentColor"></path><rect fill="inherit" x="11" y="10" width="2" height="7" rx="1"></rect><circle fill="inherit" cx="12" cy="8" r="1"></circle></g></svg></span></div><div class="sc-hkaZBZ ejtmNK"><div class="sc-RWGNv lfxCWf"> <p>Within the same query, you can use multiple <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>andFilter</code></span></span> and <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>orFilter</code></span></span> methods. However, you cannot use <em>both</em> methods within the same query.</p> <p>In addition, the <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>andFilter</code></span></span> and <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>orFilter</code></span></span> methods are <em>in-memory</em> filters. Using them can sometimes produce pages with no results, with cursor pointing to the next page where actual results exist.</p> </div></div></section></div> <h3 id="conditions-1">Conditions<span role="presentation" class="heading-anchor-wrapper"><button class="sc-jUpvKA fYWbTP"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span role="img" aria-label="copy" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"/><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"/></g></svg></span></button></span></h3> <p>Both filtering methods support the following conditions:</p> <ul> <li><span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>beginsWith</code></span></span></li> <li><span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>between</code></span></span></li> <li><span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>equalsTo</code></span></span></li> <li><span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>isGreaterThan</code></span></span>, <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>isLessThan</code></span></span></li> <li><span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>isGreaterThanOrEqualTo</code></span></span>, <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>isLessThanOrEqualTo</code></span></span></li> <li><span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>exists</code></span></span>, <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>doesNotExist</code></span></span></li> <li><span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>contains</code></span></span>, <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>doesNotContain</code></span></span></li> <li><span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>notEqualsTo</code></span></span></li> </ul> <h2 id="sort">sort<span role="presentation" class="heading-anchor-wrapper"><button class="sc-jUpvKA fYWbTP"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span role="img" aria-label="copy" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"/><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"/></g></svg></span></button></span></h2> <p>The <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>sort</code></span></span> method displays your results in either ascending (<span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>ASC</code></span></span>) or descending (<span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>DESC</code></span></span>) order:</p> <pre><div class="sc-cBrjTV bwcFuI"><div class="sc-gbzWSY gJyXAL"><div class="sc-jMMfwr bXLabE"><div class="sc-jGxEUC cjLyNv"><pre>1 2</pre><pre><code class="javascript">.sort(SortOrder.&lt;&quot;ASC|DESC&quot;&gt;) </code></pre></div></div></div></div></pre> <p>By default, results are displayed in ascending order.</p> <h2 id="query-limit">query.limit<span role="presentation" class="heading-anchor-wrapper"><button class="sc-jUpvKA fYWbTP"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span role="img" aria-label="copy" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"/><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"/></g></svg></span></button></span></h2> <p>Returns a new <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>Query</code></span></span> with a limit on how many matching values get returned. The query API returns up to 10 values by default, this can be increased to a maximum of 100.</p> <h3 id="method-signature-2">Method signature<span role="presentation" class="heading-anchor-wrapper"><button class="sc-jUpvKA fYWbTP"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span role="img" aria-label="copy" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"/><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"/></g></svg></span></button></span></h3> <pre><div class="sc-cBrjTV bwcFuI"><div class="sc-gbzWSY gJyXAL"><div class="sc-jMMfwr bXLabE"><div class="sc-jGxEUC cjLyNv"><pre>1 2</pre><pre><code class="javascript">query.limit(limit: number): Query </code></pre></div></div></div></div></pre> <h2 id="query-cursor">query.cursor<span role="presentation" class="heading-anchor-wrapper"><button class="sc-jUpvKA fYWbTP"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span role="img" aria-label="copy" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"/><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"/></g></svg></span></button></span></h2> <p>Returns a new <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>Query</code></span></span> that will start after the provided <a href="/platform/forge/runtime-reference/storage-api/#cursors" target="_self">cursor</a>. Cursors enable your app to fetch subsequent pages of results after completing an initial query.</p> <p>Cursors are returned from the <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>getMany</code></span></span> query API.</p> <h3 id="method-signature-3">Method signature<span role="presentation" class="heading-anchor-wrapper"><button class="sc-jUpvKA fYWbTP"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span role="img" aria-label="copy" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"/><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"/></g></svg></span></button></span></h3> <pre><div class="sc-cBrjTV bwcFuI"><div class="sc-gbzWSY gJyXAL"><div class="sc-jMMfwr bXLabE"><div class="sc-jGxEUC cjLyNv"><pre>1 2</pre><pre><code class="javascript">query.cursor(after: string): Query; </code></pre></div></div></div></div></pre> <h2 id="query-getmany">query.getMany<span role="presentation" class="heading-anchor-wrapper"><button class="sc-jUpvKA fYWbTP"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span role="img" aria-label="copy" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"/><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"/></g></svg></span></button></span></h2> <p>Execute the query and return a list of results up to the provided limit in length. This method returns both the array of results and a cursor that&#x27;s used to fetch subsequent pages of results.</p> <h3 id="method-signature-4">Method signature<span role="presentation" class="heading-anchor-wrapper"><button class="sc-jUpvKA fYWbTP"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span role="img" aria-label="copy" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"/><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"/></g></svg></span></button></span></h3> <pre><div class="sc-cBrjTV bwcFuI"><div class="sc-gbzWSY gJyXAL"><div class="sc-jMMfwr bXLabE"><div class="sc-jGxEUC cjLyNv"><pre>1 2</pre><pre><code class="javascript">query.getMany(): Promise&lt;ListResult&gt;; interface ListResult { results: Result[]; nextCursor?: string; } export interface Result { key: string; value: object; } </code></pre></div></div></div></div></pre> <h2 id="query-getone">query.getOne<span role="presentation" class="heading-anchor-wrapper"><button class="sc-jUpvKA fYWbTP"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span role="img" aria-label="copy" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"/><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"/></g></svg></span></button></span></h2> <p>Execute the query and get the first matching result, if any matches exist. If there is no match, the result resolves to <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>undefined</code></span></span>.</p> <h3 id="method-signature-5">Method signature<span role="presentation" class="heading-anchor-wrapper"><button class="sc-jUpvKA fYWbTP"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span role="img" aria-label="copy" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"/><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"/></g></svg></span></button></span></h3> <pre><div class="sc-cBrjTV bwcFuI"><div class="sc-gbzWSY gJyXAL"><div class="sc-jMMfwr bXLabE"><div class="sc-jGxEUC cjLyNv"><pre>1 2</pre><pre><code class="javascript">query.getOne(): Promise&lt;Result | undefined&gt;; export interface Result { key: string; value: object; } </code></pre></div></div></div></div></pre> <!-- --> <!-- --> <!-- --> <h2 id="example-entity">Example entity<span role="presentation" class="heading-anchor-wrapper"><button class="sc-jUpvKA fYWbTP"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span role="img" aria-label="copy" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"/><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"/></g></svg></span></button></span></h2> <p>The following <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>manifest.yml</code></span></span> excerpt shows a custom entity named <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>employee</code></span></span> with several attributes and indexes:</p> <p><a id="customentitiesexample" href="" target="_blank"></a></p> <pre><div class="sc-cBrjTV bwcFuI"><div class="sc-gbzWSY gJyXAL"><div class="sc-jMMfwr bXLabE"><div class="sc-jGxEUC cjLyNv"><pre>1 2</pre><pre><code class="yaml">app: id: &quot;ari:cloud:ecosystem::app/406d303d-0393-4ec4-ad7c-1435be94583a&quot; storage: entities: - name: employee attributes: surname: type: string age: type: integer employmentyear: type: integer gender: type: string nationality: type: string indexes: - surname - employmentyear - name: by-age range: - age - name: by-age-per-gender partition: - gender range: - age </code></pre></div></div></div></div></pre> <p>This entity also creates four indexes based on the following <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>employee</code></span></span> attributes:</p> <ul> <li><span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>surname</code></span></span></li> <li><span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>employmentyear</code></span></span></li> <li><span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>age</code></span></span> (further optimized for filtering according to different age ranges)</li> <li><span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>age</code></span></span> per <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>gender</code></span></span> (further optimized for filtering according to age ranges for each gender)</li> </ul> <h2 id="example-queries">Example queries<span role="presentation" class="heading-anchor-wrapper"><button class="sc-jUpvKA fYWbTP"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span role="img" aria-label="copy" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"/><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"/></g></svg></span></button></span></h2> <p>Using the <a href="#example-entity" target="_self">previous section&#x27;s</a> example entity and its indexes, the following queries demonstrate the use of each method:</p> <div class="sc-kNBZmU hVUfTU"><table node="[object Object]"><tbody><tr class="sc-hMrMfs jZzqWW"><th class="sc-eNNmBn fOYWQG">Example query</th><th class="sc-eNNmBn fOYWQG">Description</th></tr><tr class="sc-hMrMfs jZzqWW"><td class="sc-eEieub eIoYOg"><pre>await storage .entity(&quot;employee&quot;) .query() .index(&quot;surname&quot;) .getMany()</pre></td><td class="sc-eEieub eIoYOg">Targets the <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>surname</code></span></span> index of the <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>employee</code></span></span> entity.</td></tr><tr class="sc-hMrMfs jZzqWW"><td class="sc-eEieub eIoYOg"><pre>await storage .entity(&quot;employee&quot;) .query() .index(&quot;by-age&quot;) .where(WhereConditions.isGreaterThan(30)) .sort(SortOrder.DESC) .getMany()</pre></td><td class="sc-eEieub eIoYOg"><p>Targets the <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>by-age</code></span></span> index, which uses <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>age</code></span></span> as its <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>range</code></span></span>. From this, the <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>where</code></span></span> method will limit matches to employees above the age of 30.</p> <p>Results will be displayed in descending order.</p> </td></tr><tr class="sc-hMrMfs jZzqWW"><td class="sc-eEieub eIoYOg"><pre>await storage .entity(&quot;employee&quot;) .query() .index(&quot;by-age-per-gender&quot;, { partition: [&quot;female&quot;] }) .getMany()</pre></td><td class="sc-eEieub eIoYOg">Targets the <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>by-age-per-gender</code></span></span> index, and will limit matches to female employees.</td></tr><tr class="sc-hMrMfs jZzqWW"><td class="sc-eEieub eIoYOg"><pre>await storage .entity(&quot;employee&quot;) .query() .index(&quot;by-age-per-gender&quot;, { partition: [&quot;female&quot;] }) .where(WhereConditions.isGreaterThan(30)) .getMany()</pre></td><td class="sc-eEieub eIoYOg">Targets the <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>by-age-per-gender</code></span></span> index, which also uses <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>age</code></span></span> as its <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>range</code></span></span>. From this, the <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>where</code></span></span> method limit matches only to female employees above the age of 30. </td></tr><tr class="sc-hMrMfs jZzqWW"><td class="sc-eEieub eIoYOg"><pre>await storage .entity(&quot;employee&quot;) .query() .index(&quot;by-age-per-gender&quot;, { partition: [&quot;female&quot;] }) .where(WhereConditions.isGreaterThan(30)) .andFilter(&quot;employmentyear&quot;, FilterConditions.isGreaterThan(2020)) .andFilter(&quot;nationality&quot;, FilterConditions.equalsTo(&quot;Australian&quot;)) .getMany()</pre></td><td class="sc-eEieub eIoYOg">Using the <span class="sc-iCwjlJ kAvmrA"><span style="font-family:function () { return &quot;&#x27;SFMono-Medium&#x27;, &#x27;SF Mono&#x27;, &#x27;Segoe UI Mono&#x27;, &#x27;Roboto Mono&#x27;, &#x27;Ubuntu Mono&#x27;, Menlo, Consolas, Courier, monospace&quot;; };font-size:inherit;background:#F4F5F7;color:#172B4D;border-radius:3px;display:inline;overflow-x:auto;white-space:pre-wrap;padding:2px 4px;line-height:inherit"><code>by-age-per-gender</code></span></span> index, limits matches only to female Australian employees above the age of 30 who were also hired after 2020.</td></tr></tbody></table></div></div><div class="sc-hfLElm fCaIvk"><div class="sc-fQkuQJ jNIYUQ"><p class="sc-epGmkI dKWGcc">Rate this page:</p><style data-emotion-css="fwv93l">.css-fwv93l{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;font-size:0;}.css-fwv93l [data-rating-icon-checked]{display:inline-block;}.css-fwv93l [data-rating-icon]{display:none;}.css-fwv93l label:hover ~ label [data-rating-icon-checked][data-rating-icon-checked],.css-fwv93l input:checked ~ label [data-rating-icon-checked]{display:none;}.css-fwv93l label:hover ~ label [data-rating-icon][data-rating-icon],.css-fwv93l input:checked ~ label [data-rating-icon]{display:inline-block;}.css-fwv93l:hover [data-rating-icon-checked][data-rating-icon-checked]{display:inline-block;}.css-fwv93l:hover [data-rating-icon][data-rating-icon]{display:none;}</style><div class="css-fwv93l"><style data-emotion-css="i9qcsw">.css-i9qcsw{border:0 !important;-webkit-clip:rect(1px,1px,1px,1px) !important;clip:rect(1px,1px,1px,1px) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important;}</style><label for="rating-bottom--empty" class="css-i9qcsw"></label><input type="radio" id="rating-bottom--empty" name="rating-bottom" checked="" class="css-i9qcsw"/><label for="rating-bottom--0" style="transition:transform 100ms cubic-bezier(0.15,1,0.3,1)"><div role="presentation"><div><span class="css-i9qcsw">Unusable</span><span aria-hidden="true" data-rating-icon="true"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span aria-hidden="true" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><path d="M12 16.373l3.98 2.193-.76-4.655 3.276-3.347-4.524-.69L12 5.687l-1.972 4.189-4.524.689L8.78 13.91l-.762 4.655L12 16.373zm0 2.283l-3.016 1.662a2 2 0 01-2.939-2.075l.599-3.656-2.57-2.624a2 2 0 011.129-3.377l3.47-.528 1.518-3.224a2 2 0 013.618 0l1.519 3.224 3.47.528a2 2 0 011.127 3.377l-2.569 2.624.599 3.656a2 2 0 01-2.94 2.075L12 18.656z" fill="currentColor"/></svg></span></span><span aria-hidden="true" data-rating-icon-checked="true"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span aria-hidden="true" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><path d="M12.072 17.284l-3.905 2.053a1 1 0 01-1.451-1.054l.745-4.349-3.159-3.08a1 1 0 01.554-1.705l4.366-.635 1.953-3.956a1 1 0 011.794 0l1.952 3.956 4.366.635a1 1 0 01.555 1.705l-3.16 3.08.746 4.349a1 1 0 01-1.45 1.054l-3.906-2.053z" fill="currentColor" fill-rule="evenodd"/></svg></span></span></div></div></label><input type="radio" id="rating-bottom--0" value="1" name="rating-bottom" class="css-i9qcsw"/><label for="rating-bottom--1" style="transition:transform 100ms cubic-bezier(0.15,1,0.3,1)"><div role="presentation"><div><span class="css-i9qcsw">Poor</span><span aria-hidden="true" data-rating-icon="true"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span aria-hidden="true" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><path d="M12 16.373l3.98 2.193-.76-4.655 3.276-3.347-4.524-.69L12 5.687l-1.972 4.189-4.524.689L8.78 13.91l-.762 4.655L12 16.373zm0 2.283l-3.016 1.662a2 2 0 01-2.939-2.075l.599-3.656-2.57-2.624a2 2 0 011.129-3.377l3.47-.528 1.518-3.224a2 2 0 013.618 0l1.519 3.224 3.47.528a2 2 0 011.127 3.377l-2.569 2.624.599 3.656a2 2 0 01-2.94 2.075L12 18.656z" fill="currentColor"/></svg></span></span><span aria-hidden="true" data-rating-icon-checked="true"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span aria-hidden="true" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><path d="M12.072 17.284l-3.905 2.053a1 1 0 01-1.451-1.054l.745-4.349-3.159-3.08a1 1 0 01.554-1.705l4.366-.635 1.953-3.956a1 1 0 011.794 0l1.952 3.956 4.366.635a1 1 0 01.555 1.705l-3.16 3.08.746 4.349a1 1 0 01-1.45 1.054l-3.906-2.053z" fill="currentColor" fill-rule="evenodd"/></svg></span></span></div></div></label><input type="radio" id="rating-bottom--1" value="2" name="rating-bottom" class="css-i9qcsw"/><label for="rating-bottom--2" style="transition:transform 100ms cubic-bezier(0.15,1,0.3,1)"><div role="presentation"><div><span class="css-i9qcsw">Okay</span><span aria-hidden="true" data-rating-icon="true"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span aria-hidden="true" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><path d="M12 16.373l3.98 2.193-.76-4.655 3.276-3.347-4.524-.69L12 5.687l-1.972 4.189-4.524.689L8.78 13.91l-.762 4.655L12 16.373zm0 2.283l-3.016 1.662a2 2 0 01-2.939-2.075l.599-3.656-2.57-2.624a2 2 0 011.129-3.377l3.47-.528 1.518-3.224a2 2 0 013.618 0l1.519 3.224 3.47.528a2 2 0 011.127 3.377l-2.569 2.624.599 3.656a2 2 0 01-2.94 2.075L12 18.656z" fill="currentColor"/></svg></span></span><span aria-hidden="true" data-rating-icon-checked="true"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span aria-hidden="true" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><path d="M12.072 17.284l-3.905 2.053a1 1 0 01-1.451-1.054l.745-4.349-3.159-3.08a1 1 0 01.554-1.705l4.366-.635 1.953-3.956a1 1 0 011.794 0l1.952 3.956 4.366.635a1 1 0 01.555 1.705l-3.16 3.08.746 4.349a1 1 0 01-1.45 1.054l-3.906-2.053z" fill="currentColor" fill-rule="evenodd"/></svg></span></span></div></div></label><input type="radio" id="rating-bottom--2" value="3" name="rating-bottom" class="css-i9qcsw"/><label for="rating-bottom--3" style="transition:transform 100ms cubic-bezier(0.15,1,0.3,1)"><div role="presentation"><div><span class="css-i9qcsw">Good</span><span aria-hidden="true" data-rating-icon="true"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span aria-hidden="true" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><path d="M12 16.373l3.98 2.193-.76-4.655 3.276-3.347-4.524-.69L12 5.687l-1.972 4.189-4.524.689L8.78 13.91l-.762 4.655L12 16.373zm0 2.283l-3.016 1.662a2 2 0 01-2.939-2.075l.599-3.656-2.57-2.624a2 2 0 011.129-3.377l3.47-.528 1.518-3.224a2 2 0 013.618 0l1.519 3.224 3.47.528a2 2 0 011.127 3.377l-2.569 2.624.599 3.656a2 2 0 01-2.94 2.075L12 18.656z" fill="currentColor"/></svg></span></span><span aria-hidden="true" data-rating-icon-checked="true"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span aria-hidden="true" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><path d="M12.072 17.284l-3.905 2.053a1 1 0 01-1.451-1.054l.745-4.349-3.159-3.08a1 1 0 01.554-1.705l4.366-.635 1.953-3.956a1 1 0 011.794 0l1.952 3.956 4.366.635a1 1 0 01.555 1.705l-3.16 3.08.746 4.349a1 1 0 01-1.45 1.054l-3.906-2.053z" fill="currentColor" fill-rule="evenodd"/></svg></span></span></div></div></label><input type="radio" id="rating-bottom--3" value="4" name="rating-bottom" class="css-i9qcsw"/><label for="rating-bottom--4" style="transition:transform 100ms cubic-bezier(0.15,1,0.3,1)"><div role="presentation"><div><span class="css-i9qcsw">Excellent</span><span aria-hidden="true" data-rating-icon="true"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span aria-hidden="true" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><path d="M12 16.373l3.98 2.193-.76-4.655 3.276-3.347-4.524-.69L12 5.687l-1.972 4.189-4.524.689L8.78 13.91l-.762 4.655L12 16.373zm0 2.283l-3.016 1.662a2 2 0 01-2.939-2.075l.599-3.656-2.57-2.624a2 2 0 011.129-3.377l3.47-.528 1.518-3.224a2 2 0 013.618 0l1.519 3.224 3.47.528a2 2 0 011.127 3.377l-2.569 2.624.599 3.656a2 2 0 01-2.94 2.075L12 18.656z" fill="currentColor"/></svg></span></span><span aria-hidden="true" data-rating-icon-checked="true"><style data-emotion="css 1afrefi">.css-1afrefi{display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;line-height:1;width:24px;height:24px;}.css-1afrefi >svg{overflow:hidden;pointer-events:none;max-width:100%;max-height:100%;color:var(--icon-primary-color);fill:var(--icon-secondary-color);vertical-align:bottom;}.css-1afrefi >svg stop{stop-color:currentColor;}@media screen and (forced-colors: active){.css-1afrefi >svg{-webkit-filter:grayscale(1);filter:grayscale(1);--icon-primary-color:CanvasText;--icon-secondary-color:Canvas;}}.css-1afrefi >svg{width:24px;height:24px;}</style><span aria-hidden="true" style="--icon-primary-color:#6B778C;--icon-secondary-color:var(--ds-surface, #FFFFFF)" class="css-1afrefi"><svg width="24" height="24" viewBox="0 0 24 24" role="presentation"><path d="M12.072 17.284l-3.905 2.053a1 1 0 01-1.451-1.054l.745-4.349-3.159-3.08a1 1 0 01.554-1.705l4.366-.635 1.953-3.956a1 1 0 011.794 0l1.952 3.956 4.366.635a1 1 0 01.555 1.705l-3.16 3.08.746 4.349a1 1 0 01-1.45 1.054l-3.906-2.053z" fill="currentColor" fill-rule="evenodd"/></svg></span></span></div></div></label><input type="radio" id="rating-bottom--4" value="5" name="rating-bottom" class="css-i9qcsw"/></div></div><div class="sc-TuwoP gNpolA"></div></div></div></div></div></div><div class="sc-TuwoP gNpolA"></div></div></div><div class="sc-jRuhRL iduyBG"><footer class="sc-jHZirH gPmPZH"><div class="sc-dKEPtC SofWs sc-isBZXS hfYqFa"><a class="sc-dwztqd eBZChs" href="https://www.atlassian.com/"><style data-emotion="css 1eu9lrx">.css-1eu9lrx{display:inline-block;position:relative;color:var(--logo-color);fill:var(--logo-fill);line-height:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:normal;height:24px;}.css-1eu9lrx >svg{height:100%;fill:inherit;}</style><span style="--logo-color:#5E6C84;--logo-fill:#5E6C84" aria-label="Atlassian" role="img" class="css-1eu9lrx"> <svg viewBox="0 0 190 32" height="32" xmlns="http://www.w3.org/2000/svg" focusable="false" aria-hidden="true"> <defs> <linearGradient x1="99.684716%" y1="15.8138128%" x2="39.8444399%" y2="97.4388388%" id="uid381681"> <stop stop-color="#5E6C84" offset="0%"></stop> <stop stop-color="#5E6C84" offset="100%"></stop> </linearGradient> </defs> <g stroke="none" stroke-width="1" fill="#5E6C84" > <path fill="url(#uid381681)" d="M6.90502605,15.6123193 C6.76436383,15.4302139 6.53773035,15.3340846 6.30742588,15.35884 C6.0771214,15.3835955 5.876643,15.525635 5.7787929,15.7333781 L0.0719979599,27.0218487 C-0.0337056449,27.2310259 -0.0224063827,27.4794358 0.101860917,27.6783741 C0.226128216,27.8773125 0.445645594,27.9984148 0.68202605,27.9984369 L8.62844459,27.9984369 C8.88847261,28.0044096 9.12761649,27.8581627 9.23847268,27.6253781 C10.9526159,24.1210252 9.91378448,18.7926722 6.90502605,15.6123193 Z"></path> <path fill="#5E6C84" d="M11.0859556,5.33713587 C8.19309829,9.74089822 7.85921851,15.3267488 10.2073011,20.0371359 L14.0383488,27.6176065 C14.1538739,27.8462194 14.3900332,27.9906411 14.6483769,27.9906653 L22.5933685,27.9906653 C22.829749,27.9906431 23.0492663,27.8695408 23.1735336,27.6706025 C23.2978009,27.4716641 23.3091002,27.2232543 23.2033966,27.014077 C23.2033966,27.014077 12.5147056,5.8619594 12.2460792,5.33290058 C12.1377032,5.11315026 11.9118188,4.97410225 11.6646746,4.97500451 C11.4175304,4.97590676 11.1926893,5.11660025 11.0859556,5.33713587 L11.0859556,5.33713587 Z"></path> <path d="M104.2774,14.3919316 C104.2774,17.1872257 105.588069,19.4065198 110.714802,20.3862846 C113.773504,21.0215787 114.414212,21.5100493 114.414212,22.5187551 C114.414212,23.4985198 113.772077,24.1327551 111.617715,24.1327551 C109.013896,24.0864379 106.462135,23.403307 104.189999,22.1442846 L104.189999,26.6972257 C105.733976,27.4465198 107.772754,28.2822846 111.559566,28.2822846 C116.919251,28.2822846 119.045788,25.9175787 119.045788,22.4033434 M119.045788,22.4033434 C119.045788,19.0892257 117.268858,17.5327551 112.25878,16.4668728 C109.491535,15.8615787 108.821574,15.2566375 108.821574,14.3919316 C108.821574,13.297814 109.811889,12.835814 111.646968,12.835814 C113.860906,12.835814 116.045591,13.4986375 118.113622,14.4208728 L118.113622,10.0691081 C116.130615,9.17615406 113.970906,8.73311319 111.792518,8.7724022 C106.840589,8.7724022 104.2774,10.9048728 104.2774,14.3919316" fill="inherit"></path> <polygon fill="inherit" points="173.129997 9.07000017 173.129997 28.0038825 177.20791 28.0038825 177.20791 13.5657649 178.926691 17.3983531 184.694132 28.0038825 189.820865 28.0038825 189.820865 9.07000017 185.742952 9.07000017 185.742952 21.2891766 184.198975 17.7442355 179.567399 9.07000017"></polygon> <rect fill="inherit" x="142.740005" y="9.07000017" width="4.45677247" height="18.9338824"></rect> <path d="M137.600792,22.4033434 C137.600792,19.0892257 135.823862,17.5327551 130.813784,16.4668728 C128.046539,15.8615787 127.376579,15.2566375 127.376579,14.3919316 C127.376579,13.297814 128.366893,12.835814 130.201972,12.835814 C132.41591,12.835814 134.600595,13.4986375 136.668626,14.4208728 L136.668626,10.0691081 C134.685619,9.17615406 132.52591,8.73311319 130.347522,8.7724022 C125.395593,8.7724022 122.832404,10.9048728 122.832404,14.3919316 C122.832404,17.1872257 124.143073,19.4065198 129.269806,20.3862846 C132.328508,21.0215787 132.969216,21.5100493 132.969216,22.5187551 C132.969216,23.4985198 132.327081,24.1327551 130.172719,24.1327551 C127.568901,24.0864379 125.017139,23.403307 122.745003,22.1442846 L122.745003,26.6972257 C124.28898,27.4465198 126.327758,28.2822846 130.11457,28.2822846 C135.474256,28.2822846 137.600792,25.9175787 137.600792,22.4033434" fill="inherit"></path> <polygon fill="inherit" points="69.6599979 9.07000017 69.6599979 28.0038825 78.8204081 28.0038825 80.2627142 23.9115296 74.1456665 23.9115296 74.1456665 9.07000017"></polygon> <polygon fill="inherit" points="51.5549984 9.07000017 51.5549984 13.1620002 56.5069282 13.1620002 56.5069282 28.0038825 60.9925967 28.0038825 60.9925967 13.1620002 66.2941332 13.1620002 66.2941332 9.07000017"></polygon> <path d="M45.0573091,9.07000017 L39.1785647,9.07000017 L32.5050001,28.0038825 L37.6014102,28.0038825 L38.5474889,24.815059 C40.877531,25.4919503 43.3551322,25.4919503 45.6851743,24.815059 L46.6312529,28.0038825 L51.7287333,28.0038825 L45.0573091,9.07000017 Z M42.1177585,21.4007061 C41.287584,21.4006584 40.4616854,21.2831148 39.6651602,21.0516472 L42.1177585,12.7889413 L44.5703569,21.0544708 C43.7736914,21.2849831 42.9477956,21.4015755 42.1177585,21.4007061 L42.1177585,21.4007061 Z" fill="inherit"></path> <path d="M94.6019534,9.07000017 L88.7235658,9.07000017 L82.0500011,28.0038825 L87.1474815,28.0038825 L88.0935601,24.815059 C90.4236023,25.4919503 92.9012034,25.4919503 95.2312455,24.815059 L96.1773242,28.0038825 L101.274805,28.0038825 L94.6019534,9.07000017 Z M91.6627596,21.4007061 C90.8325851,21.4006584 90.0066865,21.2831148 89.2101613,21.0516472 L91.6627596,12.7889413 L94.1153579,21.0544708 C93.3186924,21.2849831 92.4927966,21.4015755 91.6627596,21.4007061 L91.6627596,21.4007061 Z" fill="inherit"></path> <path d="M163.256954,9.07000017 L157.378566,9.07000017 L150.705002,28.0038825 L155.802482,28.0038825 L156.748561,24.815059 C159.078603,25.4919503 161.556204,25.4919503 163.886246,24.815059 L164.832325,28.0038825 L169.930162,28.0038825 L163.256954,9.07000017 Z M160.315977,21.4007061 C159.485802,21.4006584 158.659903,21.2831148 157.863378,21.0516472 L160.315977,12.7889413 L162.768575,21.0544708 C161.971909,21.2849831 161.146014,21.4015755 160.315977,21.4007061 L160.315977,21.4007061 Z" fill="inherit"></path> </g> </svg></span></a><nav class="sc-dBAPYN ObHvh"><a class="sc-dwztqd eBZChs" href="/changelog/">Changelog</a><a class="sc-dwztqd eBZChs" target="_blank" href="https://status.developer.atlassian.com">System status</a><a class="sc-dwztqd eBZChs" target="_blank" href="https://www.atlassian.com/legal/privacy-policy">Privacy</a><a class="atl-policy-link atl-policy-link-text sc-dwztqd eBZChs" target="_blank" href="https://www.atlassian.com/legal/privacy-policy#additional-disclosures-for-ca-residents">Notice at Collection</a><a class="sc-dwztqd eBZChs" target="_blank" href="/platform/marketplace/atlassian-developer-terms/">Developer Terms</a><a class="sc-dwztqd eBZChs" target="_blank" href="https://www.atlassian.com/legal/trademark">Trademark</a><a class="optanon-toggle-display hide-optanon-link sc-dwztqd eBZChs">Cookie preferences</a><span class="sc-dvpmds cskdDW">漏 <!-- -->2024<!-- --> Atlassian</span></nav></div></footer></div></div><script nonce="0Zl3Y/p1xAn6fsn8ZN/eeBVKH9eWqZKW+KZZwyHZTAw=" type="text/javascript">(function(){var g=function(e,h,f,g){ this.get=function(a){for(var a=a+"=",c=document.cookie.split(";"),b=0,e=c.length;b<e;b++){for(var d=c[b];" "==d.charAt(0);)d=d.substring(1,d.length);if(0==d.indexOf(a))return d.substring(a.length,d.length)}return null}; this.set=function(a,c){var b="",b=new Date;b.setTime(b.getTime()+6048E5);b="; expires="+b.toGMTString();document.cookie=a+"="+c+b+"; path=/; "}; this.check=function(){var a=this.get(f);if(a)a=a.split(":");else if(100!=e)"v"==h&&(e=Math.random()>=e/100?0:100),a=[h,e,0],this.set(f,a.join(":"));else return!0;var c=a[1];if(100==c)return!0;switch(a[0]){case "v":return!1;case "r":return c=a[2]%Math.floor(100/c),a[2]++,this.set(f,a.join(":")),!c}return!0}; this.go=function(){if(this.check()){var a=document.createElement("script");a.type="text/javascript";a.src=g;document.body&&document.body.appendChild(a)}}; this.start=function(){var t=this;"complete"!==document.readyState?window.addEventListener?window.addEventListener("load",function(){t.go()},!1):window.attachEvent&&window.attachEvent("onload",function(){t.go()}):t.go()};}; try{(new g(100,"r","QSI_S_ZN_basBS9dBHxSA2iN","https://znbasbs9dbhxsa2in-atlassian.siteintercept.qualtrics.com/SIE/?Q_ZID=ZN_basBS9dBHxSA2iN")).start()}catch(i){}})();</script><div id="ZN_basBS9dBHxSA2iN"></div></div></div> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10