# PTC Windchill

### Overview

The Veza integration for PTC Windchill enables discovery of users, groups, organizations, and projects within the product lifecycle management (PLM) system.

This guide details the steps to configure the Windchill integration on the Veza platform. See [notes and supported entities](#notes-and-supported-entities) for more details.

### Configuring PTC Windchill

To configure the integration, you will need the username and password of a local Windchill user. Veza will connect as this user to gather information about organizations, projects, groups, and other users.

PTC Windchill is a self-managed product deployed in the customer’s environment, and authentication is managed by the web server hosting Windchill.

API authentication for Windchill uses Basic HTTP Authentication. If Windchill is configured with a SAML identity provider for Single Sign-On, ensure that the integration user is able to log in with a username and password.

More information:

* [Create Administrator and End User](https://support.ptc.com/help/windchill/r12.1.2.0/en/index.html#page/Windchill_Help_Center/customization/WCCG_Oview_CustTutorial_CreateAdministrator.html)
* [Authentication](https://support.ptc.com/help/windchill/r12.1.2.0/en/index.html#page/Windchill_Help_Center/WCAdvDeployGuide/WCAdvDepAuth_WCAuthStrategy.html#)
* [SSL/TLS Client Authentication](https://support.ptc.com/help/windchill/r12.1.2.0/en/index.html#page/Windchill_Help_Center/WCAdvDeployGuide/WCAdvDepAuth_ConfigAltAuth_HTTPSClientAuthentication.html#)

### Configuring PTC Windchill on the Veza Platform

To add the integration in Veza:

1. In Veza, go to the **Integrations** page.
2. Click **Add Integration**, search for PTC Windchill, and select it. Then click **Next**.
3. Enter the required configuration options.
4. Click *Create Integration* to save the configuration.

| Configuration Option   | Description                                                                                                                   |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| **Name**               | Enter a friendly name for the integration.                                                                                    |
| **Insight Point**      | Leave default unless using a deployed [Insight Point](/4yItIzMvkpAvMVFAamTf/integrations/connectivity.md) for the connection. |
| **URL**                | Enter the full URL of the PTC Windchill instance.                                                                             |
| **User Name**          | The username to authenticate with the PTC Windchill instance.                                                                 |
| **User Password**      | Enter the password for the integration user.                                                                                  |
| **Discover All Users** | Option to discover all users in the system (optional).                                                                        |
| **Excluded Groups**    | List of group IDs to exclude from discovery(optional).                                                                        |
| **CA Certificate**     | Self-generated CA Certificate for authentication.                                                                             |

### Notes and Supported Entities

#### Windchill Group

| Attribute        | Notes                                                                     |
| ---------------- | ------------------------------------------------------------------------- |
| `ID`             | Unique identifier for the group, derived from `group.ID`.                 |
| `Name`           | The name of the group, derived from `group.Name`.                         |
| `Description`    | Description of the group, if available, derived from `group.Description`. |
| `CreateOnCustom` | Timestamp when the group was created, derived from `group.CreatedOn`.     |

#### Windchill Group User

| Attribute            | Notes                                                                                 |
| -------------------- | ------------------------------------------------------------------------------------- |
| `ID`                 | Unique identifier for the user, derived from `user.ID`.                               |
| `Name`               | Display name for the user, derived from `user.FullName` or `user.Name`.               |
| `CreatedAt`          | Timestamp when the user was created, derived from `user.CreatedOn`.                   |
| `Email`              | User’s email address, derived from `user.EMail`.                                      |
| `Organization`       | Organization name associated with the user, derived from `user.OrganizationName`.     |
| `DistinguishdedName` | Distinguished name of the user, derived from `user.DistinguishedName`.                |
| `Identity`           | User’s identity, derived from `user.Identity`.                                        |
| `UserName`           | Username of the user, derived from `user.Name`.                                       |
| `Identities`         | User’s email identity, included if `user.EMail` is available.                         |
| `Groups`             | Group IDs the user is a member of, appended during group user discovery (`group.ID`). |

> Users are discovered through group memberships by default. To discover users not assigned to any PTC Windchill groups check the **Discovery All Users** option in the integration configuration.

#### Windchill Organization

| Attribute        | Notes                                                                      |
| ---------------- | -------------------------------------------------------------------------- |
| `ID`             | Unique identifier for the organization, derived from `org.ID`.             |
| `Name`           | The name of the organization, derived from `org.Name`.                     |
| `ResourceType`   | Type of the resource, set to `OrganizationResourceType`.                   |
| `Description`    | Description of the organization, derived from `org.Description`.           |
| `CreateOnCustom` | Timestamp when the organization was created, derived from `org.CreatedOn`. |

#### Windchill Project

| Attribute          | Notes                                                                                   |
| ------------------ | --------------------------------------------------------------------------------------- |
| `ID`               | Unique identifier for the project, derived from `project.ID`.                           |
| `Name`             | The name of the project, derived from `project.Name`.                                   |
| `ResourceType`     | Type of the resource, set to `ProjectResourceType`.                                     |
| `Description`      | Description of the project, derived from `project.Description`.                         |
| `PrivateAcess`     | Indicator if the project has private access, derived from `project.PrivateAccess`.      |
| `CreateOnCustom`   | Timestamp when the project was created, derived from `project.CreatedOn`.               |
| `OrganizationName` | Organization name associated with the project, derived from `project.OrganizationName`. |

> Note: Organizations and Projects are collected for informational purposes. Users and groups are not related to Organizations and Projects.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.veza.com/4yItIzMvkpAvMVFAamTf/integrations/integrations/ptc-windchill.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
