Announcements

REMINDER: Sign up for the Foundry Newsletter to receive a summary of new products, features, and improvements across the platform directly to your inbox. For more information on how to subscribe, see the Foundry Newsletter and Product Feedback channels announcement.

Share your thoughts about these announcements in our Developer Community Forum ↗.


Synchronize object property edits with support for Ontology Actions in Notepad

Date published: 2025-02-13

Notepad users can now edit object properties directly in Notepad documents with Ontology Actions, making it easier to keep documents in sync with Ontology changes. Ontology Actions allow users to edit object properties with preconfigured inline edits in object card and object property widgets, allowing text properties to be edited and saved to the Ontology without switching between applications.

Object property widgets

To make Ontology edits in Notepad object property widgets, the object property must have configured inline edits. Hover over the property to display a menu that enables editing text properties, modifying the object with Actions, and opening the object in Object Explorer.

An object property widget with the option to edit or approve a summary.

An object property widget, with the option to edit or approve a summary.

Object card widgets

In object card widgets, hover over the widget to display an Actions menu in the top-right corner that enables submitting Actions on the displayed object. Hover over properties with configured inline edits to display the edit option.

An object card widget with an Actions menu in the top-right corner.

An object card widget, with an Actions menu in the top-right corner.

An object card widget displaying an inline summary edit.

An object card widget displaying an inline summary edit.

Leverage Ontology Actions in Notepad to maintain document coherence with ongoing Ontology updates, ensure real-time synchronization of object property changes, and streamline document workflows.

Learn more about object property and object card widgets in Notepad.


Discover new Foundry and AIP training content on Palantir Learn

Date published: 2025-02-13

We are excited to announce the launch of four new courses on learn.palantir.com ↗️ along with content updates within our training tracks ↗️ for 2025. To help you understand how to navigate training content on Palantir, review our one-page Getting started with Palantir Learn ↗️ guide.

New courses launched in January 2025

Training tracks with new examples, videos, and partner-developed content

We have recently updated the Training Tracks ↗️ on learn.palantir.com ↗️ with the latest courses, use case examples, videos, and partner-developed content available. Use these persona-based collections of training resources as your one-stop shop for all related Foundry training material.

The AI Engineer training track featured on learn.palantir.com.

The AI Engineer training track featured on learn.palantir.com.

Get started with the Palantir Learn guide

New to the Palantir training program? Use this one-page guide ↗️ to familiarize yourself with our various training resources and recommended learning program. The guide can be downloaded as a PDF to easily share within your organization.

Look out for more Palantir announcements as we continue to quickly evolve our training program. If you have questions on training content, issues, or suggestions for new content, contact training-feedback@palantir.com ↗️.


Enable custom retrieval with Function-backed context in AIP Agent Studio [Beta]

Date published: 2025-02-13

AIP Agents now support custom retrieval Functions, a pro-code feature that enables builders to configure their own logic for context retrieval on each query. This is ideal for situations where the retrieval methods provided out-of-the-box through Ontology context or document context do not satisfy a given use case. For example, if a user wants to run a semantic search over multiple Ontology object types, the user can configure a Function for it even though it is not currently supported in AIP Agent Studio.

You can now use Function-backed context to perform custom retrieval on each query in AIP Agent Studio.

You can now use Function-backed context to perform custom retrieval on each query in AIP Agent Studio.

Write a custom retrieval Function

Users can write custom retrieval Functions in TypeScript in the Code Repositories application. To do so, navigate to a TypeScript repository and import the AipAgentsContextRetrieval function interface. Then, write a function that satisfies the interface as shown below. Note that the function must have messages as the only required input in order to satisfy the contract.

Copied!
1 2 3 4 5 6 7 8 9 10 @AipAgentsContextRetrieval() public exampleRetrievalFunction(messages: MessageList): RetrievedContext { let combinedText: string[] = []; messages.forEach((message) => { ' ... }) return { retrievedPrompt: "..." } }

The retrieval Function must output a string, which will be pasted into the LLM system prompt by AIP Agents to answer user queries. After publishing your Function, choose Function-backed context in Agent Studio under the Retrieval context panel to select a Function for retrieval.

You can select the context and a Function for retrieval in Retrieval context.

You can select the context and a Function for retrieval in Retrieval context.

Application variables in retrieval Functions

Custom retrieval Functions can also take in the values of application variables on the agent as input. To configure this, add optional arguments to the Function definition. Currently, only string and object set application variables are supported, so the Function input must be one of these types.

Copied!
1 2 3 4 @AipAgentsContextRetrieval() public movieRetrievalFunction(messages: MessageList, movieTitle?: string, movieSet?: ObjectSet<Movie>): RetrievedContext { ... }

Use the API name for object types. This can be found in Ontology Manager.

You can then set a mapping between the application variables on the agent, and function inputs that match their respective types.

To create application variables navigate to the application variables panel in Agent Studio.

To create application variables, navigate to the application variables panel in Agent Studio.

Custom citations

In addition to support for custom retrieval Functions, AIP Agents now support custom citations. This means that if the LLM responds with citations in a specified format, the AIP Agent frontend will display citation bubbles that enable users to easily verify and explore information sources. With Function-backed context, users can take advantage of this by having their Function return a string that prompts the LLM to write citations in this given format. The supported citation formats are the following:

  • Ontology object citations should be returned in the following format:

    <citation><key>ri.phonograph2.object-set...</key></citation>
    

    where the <key></key> tags encapsulate the object RID. Selecting the citation bubble will link to the Object Explorer view for that object.

  • Document (PDF) citations should be returned in the following format:

    <citation><mediaSetKey>ri.mio.main.media-set...</mediaSetKey><mediaItemKey>ri.mio.main.media-item...</mediaItemKey></citation>
    

    Selecting the citation bubble will open a dialog that displays the first page of the document.

  • External URL citations should be returned in the following format:

    <citation><name>My Website</name><href>www.mywebsite.com</href></citation>
    

    The citation bubble will display the provided name, (for example: My website) and selecting it will link to the provided URL (for example: www.mywebsite.com).

In this example the Function accepts a set of document chunks that are represented as Ontology objects. It then conducts a semantic search on these objects and returns the five most relevant ones formatted according to the citation style mentioned above.

In this example, the Function accepts a set of document chunks that are represented as Ontology objects. It then conducts a semantic search on these objects and returns the five most relevant ones, formatted according to the citation style mentioned above.

What's next for AIP Agent Studio?

Users will soon also be able to write retrieval Functions in AIP Logic, which offers a walk-up usable interface for developing no-code LLM-powered functions. To take advantage of this in the meantime, we recommend writing a TypeScript function that satisfies the interface and calls the Logic function under the hood.

Learn more about retrieval context in AIP Agent Studio.


Bootstrap development with TypeScript OSDK Templates [Experimental]

Date published: 2025-02-11

OSDK Templates is an experimental feature designed to accelerate and bootstrap development, saving time and reducing setup complexities. Using a customized TypeScript OSDK Template as a preconfigured starting point, developers can rapidly start building projects with built-in OSDK packages. By leveraging OSDK Templates, you can ensure consistency across TypeScript projects, or incorporate essential tools and best practices from the outset.

Use TypeScript OSDK Templates to streamline the following use cases:

  • Running a bootcamp or a workshop in which all developers need to bootstrap their code with a preconfigured OSDK application.
  • Providing an example for users to kickstart their work.
  • Enforcing a set of UI standards for all React projects.
  • Providing a React template that uses a shared set of Ontology resources. Review the note on using Ontology resources below.

Build an OSDK Template

To create an OSDK Template, first create a TypeScript Developer Console application and select the option to Bootstrap using VS Code in Foundry under the Start developing section. This will create a repository for your application code, allowing you to develop the application exactly as you intend users to experience it. Be sure to debug and test your application before creating a template.

When you are satisfied with your application code, create a template using the following steps:

  1. Replace variable instances with handlebars like so: {{SAMPLE_VARIABLE}}. Sample variables are listed below:
{{FOUNDRY_HOSTNAME}}="yourdomain.palantirfoundry.com" // .env files, .npmrc, foundry.config.json
{{APPLICATION_CLIENT_ID}}="1564cead075af0e23eb1799ac0f6381f" // .env files
{{APPLICATION_PACKAGE_NAME}}="osdk-sample-app-20" // package.json and any code file which references the package
{{APPLICATION_RID}}="ri.third-party-applications.main.application.7ebc94b7-bad3-45a9-a063-d7fc0ccd2873" // foundry.config.json
{{REPOSITORY_RID}}="ri.stemma.main.repository.35d25ea4-973d-4112-a7d3-04c31efa1875" // .npmrc setting.sh
  • Note that your application package should not include @ or a trailing /sdk. The version in the package.json must be set to latest or 0.1.0.

  • You can also add custom handlebars as input parameters when the package is deployed, as shown below:

{{AGENT_RID}}="ri.aip-agents..agent.f4a3033a-8b8d-4313-a365-3d8d7099fa95"
  1. Commit your changes. The CI check will fail at this point, but this is expected behavior.

  2. Navigate to Marketplace to create a new product from your repository.

  3. Name your product, choose Repository under Add by resource type and select the repository you created. The chosen repository will be displayed under Repositories in the Content section.

A list of repositories added as dependencies to the template in Marketplace.

A list of repositories added as dependencies to the template in Marketplace.

  1. Select + Add Repository on the top right of the Repositories list under Content to include Developer Console as a dependency. We recommend not including Ontology resources in the package for reasons explained below in using Ontology resources.

Your package is now ready to be distributed on Marketplace.

A note on using Ontology resources

OSDK applications use API names to link to Ontology resources, so your code will contain API names from the Ontology used by your template.

For example, the API name of the loaded object types below is Aircraft:

Copied!
1 const response: Result<PageResult<Osdk.Instance>> = await client(Aircraft).fetchPageWithErrors({ $pageSize: 30 });

We do not recommend including Ontology resources in your package. Marketplace will attempt to install them during deployment and create duplicate Ontology resources with different API names, which will lead code to break.

To avoid this, we recommend one of the following options:

  • If the template application does not need to use Ontology resources, you can build a progressive web application (PWA) template that can work with any Ontology resource. You can also build a React template that adopts customers' design styles for OSDK-backed applications.

  • If users need to access a shared Ontology, they will be prompted to input the necessary Ontology resources during template installation, allowing Ontology resources to be referenced in code.

Distribute packages on Marketplace

Users can find your packaged template in the relevant Marketplace store. When installing the template from Marketplace, a new repository and a linked Developer Console application will be automatically created for the user. When using this package for bootstrapping, the Bootstrap option must be selected during installation. Improvements to user discovery for OSDK Templates are currently in development to facilitate surfacing templates.

We created OSDK Templates to accelerate the initial phases of development and help you focus on building, rather than on setup tasks. We encourage you to share feedback with Palantir Support channels and on our Developer Community ↗️ using the ontology-sdk tag ↗️ .

Learn more about OSDK and Marketplace.


Configure row-level permissions on objects in Pipeline Builder

Date published: 2025-02-06

Row-level permission configuration is now available for objects in Pipeline Builder. Apply row-level permission policies to objects using Restricted Views to ensure users only see the objects they are permitted to access.

Why use Restricted Views?

While Markings and roles provide robust access controls, certain workflows demand more specific permissioning. For example, an Organization might want to ensure that its sales representatives can only view details of customers that are assigned to their branch. Restricted Views offer this additional level of control by limiting dataset access to the rows users are authorized to see.

Set up granular security policies

You can now set up detailed security policies by navigating to the output object and selecting Configure granular security.

The output object configuration panel in Pipeline Builder with the option to add granular security permissions.

The output object configuration panel in Pipeline Builder, with the option to add granular security permissions.

Then, select Create granular security policy to start configuring your policy.

Configure your granular security policy to apply to specific column user property or value conditions.

Configure your granular security policy to apply to a specific column, user property, or value condition.

Make sure to save changes and deploy on the main branch so that Restricted Views and their associated security policies take effect.

Share your thoughts with us

With this powerful feature, enhance your access control systems and ensure secure data handling across your projects. Let us know your thoughts through Palantir Support channels and our Developer Community using the pipeline-builder tag.

To further explore Restricted View policies and best practices, refer to our detailed documentation on Restricted View policies.


Workshop feature highlights from 2024

Date published: 2025-02-04

Over the past year, many new features and improvements have been added to Workshop to both increase the point-and-click expressiveness of the application builder toolkit and add powerful, new pro-code extensibility options for developers.

A visual collage of Workshop features released in 2024.

The list below does not cover every recent enhancement to Workshop, but is intended to provide a summary of notable highlights from 2024. For more information on any of these features, review the documentation linked inline below:

  • Custom widgets allow developers to embed third-party, custom-built components into Workshop applications for the first time. These custom widgets can share variable state and trigger events with their parent Workshop application to integrate seamlessly with native Workshop features.
  • Module interface enables builders to easily configure the input variables accepted of a given module and acts as the effective API for the module.
  • URL routing allows builders to serialize variable state and module state into the URL. This enables easier link sharing between users and also helps a module maintain its state on a browser reload.
  • Loop layout allows builders to create dynamic, reusable views by looping over an object set and displaying an instance of a custom embedded module per object.
  • Kiosk mode enables secure, long-lived user sessions in Workshop. For example, allowlisted applications can be run in Kiosk mode for continuous display on a command center screen, or to enable a shared monitor to display an operational dashboard 24/7.
  • Autosave preserves module edits automatically so builders can edit their applications without worrying about unexpectedly losing progress.
  • Module rebasing helps builders merge Workshop application updates from main into the local changes they have made within a branch. This feature, alongside branching, unlocks simultaneous collaborative application building in Workshop.
  • Copy-paste of components and widgets across modules greatly speeds the application building process by making Workshop configuration more reusable.
  • Struct variables are a new composite variable type that can be returned from functions and used by builders to decrease network calls and boost the performance of their Workshop applications.
  • New variable re-computation options provide builders more control over on when specific variables in their applications should recalculate; for instance, recalculation can occur automatically, when specifically triggered by an event, or only on initial load.
  • The Calendar widget provides a way to visualize date- or timestamp-backed objects (such as work schedules or flight events) within an interactive calendar.
  • Allowed URLs and protocols let administrators specify a list of external URLs and schemes to which users can safely navigate without triggering the display of an external link warning.
  • Gaia cross-app interactions enable pairing a Gaia map to a Workshop application to seamlessly share state and create powerful geospatial workflow.
  • Vega charts allow builders to create fully customizable and interactive visualizations in Workshop using the open-source Vega ↗ and Vega-Lite ↗ grammars.
  • Translations give builders the ability to localize Workshop applications into multiple languages, either manually or with the help of AIP Assist-powered translations for enabled enrollments.
  • Right-to-left text lets builders adjust text directionality in their applications to accommodate multiple language orientations.
  • The Audio player & capture widget enables audio-based workflows and supports the upload and playback of audio files.
  • Module headers increase the visualization expressiveness possible in Workshop by providing additional customization, coloring, branding and general styling options for application headers. Both horizontal and vertical module headers are now supported.
  • Tab styles offer improved out-of-the-box theming and styling options for the Tabs widget.
  • Resizable sections allow users to freely resize parts of a Workshop application while in View mode in order to better customize a module to their needs.
  • Horizontal filters within the Filter List widget offer a more compact layout option to one of Workshop’s most popular widgets.
  • The Action table lets users create and modify multiple objects via a directly editable, Action-backed table. Uploading of structured data like CSV or XLSX files is also supported to enable faster data import and creation.
  • Object edit history widget now supports displaying the edits history (changelog) for objects indexed into Object Storage v2.
  • Advanced text search provides more advanced search operations within the Filter List widget, including new search syntax, wildcard operators, and the ability to chain multiple search operations together.
  • PDF annotation enables more complex document tagging workflows by allowing users to create, display, and interact with text and area annotations.
  • Image annotation powers image tagging workflows by allowing users to tag and capture visual areas of interest.
  • Custom and media exports allow builders to configure bespoke, one-click exports that match their desired text output format, such as JSON or CSV. Additional export options for media are also now available.
  • Upload new media allows users to upload media to objects as media set-backed properties via Actions.
  • Semantic search workflow configuration has been simplified by allowing semantic search filters to be configurable directly within Workshop’s point-and-click Object Set Definition panel.

Exclude groups from access request forms

Date published: 2025-02-04

Project Owners can now exclude specific groups from access request forms. When a group is excluded for a Project, users will not be able to request to join the group.

By default, all groups with a role in a Project appear in the access request form. Excluding groups from access request forms prevents accidental membership requests to groups like administrator groups, while still allowing necessary access through designated Projects.

Excluding groups is a per-Project setting, offering flexibility. A group can be excluded from most Projects but included in specific ones. Users can request access to the group in those specific Projects. If approved, they will gain access to all Projects where the group has a role.

To exclude groups from the access request flow for a Project, navigate to the Access panel > Settings > Project access requests.

The access requests settings of a selected Project.

The access requests settings of a selected Project.

Project Owners can select Manage and then select the groups to exclude from the request flow. If you are not an Owner on the Project, you can select View to see which groups are excluded, but you will not be able to make any changes.

Search for and select groups to exclude from Project access requests.

Search for and select groups to exclude from Project access requests.

Learn more about excluding groups from access request forms.


Kiosk mode enables long-lived, read-only display of Workshop applications [GA]

Date published: 2025-02-04

Kiosk mode is now generally available for Workshop applications. Kiosk mode offers builders the ability to launch secure, long-lived, restricted sessions for Workshop applications, allowing them to be safely displayed for extended periods of time. For example, allowlisted applications can be run in Kiosk mode for continuous display on a command center screen, or to enable a shared monitor to display an operational dashboard 24/7.

An example of a Workshop module in Kiosk mode.

To ensure safe display of a module when a Workshop application is in Kiosk mode, the module's permissions will be scoped down to only include entities directly accessible within the module and to limit the content viewable within the active session.

Kiosk mode settings may be configured and managed on the Organization level within the Control Panel, allowing administrators to manage:

  • Which modules may enable Kiosk mode
  • Which group(s) of users may launch Kiosk mode sessions
  • The list of all historical and currently active Kiosk mode sessions

To learn more about how to configure and enable Kiosk mode for your Workshop applications, details on how Kiosk mode permission scope is determined, and the restrictions and controls Kiosk mode offers, review our documentation.