afv-library/skills/configuring-connected-apps/assets/connected-app-jwt.xml
sandipkumar-yadav 37aa84df42
feat: @W-22444026@ Introducing Core Skills, Datacloud Skills, Industries and Utility Skills. (#268)
* Migrating Core Salesforce Skills

* Updating pr comments

* updat reference

* Updating a skill

* Migrating Datacloud skills

* Migrating Industries cloud skills

* Validating - skills fixing

---------

Co-authored-by: Sandip Kumar Yadav <sandipkumar.yadav+sfemu@salesforce.com>
2026-05-14 19:32:15 +05:30

50 lines
1.9 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
Template: Connected App - JWT Bearer Flow
Use Case: Server-to-server integration, CI/CD pipelines, headless automation
Replace placeholders:
- {{APP_NAME}}: Application name (no spaces, alphanumeric + underscore)
- {{CONTACT_EMAIL}}: Administrator contact email
- {{DESCRIPTION}}: Brief description of the app's purpose
- {{CERTIFICATE_NAME}}: Name of the certificate uploaded to Salesforce
Prerequisites:
1. Create a self-signed certificate or use CA-signed certificate
2. Upload certificate to Salesforce (Setup > Certificate and Key Management)
3. Use the certificate name (not file name) in this template
Note: No callback URL needed for JWT Bearer flow
Note: Consumer Secret is optional when using certificate authentication
-->
<ConnectedApp xmlns="http://soap.sforce.com/2006/04/metadata">
<label>{{APP_NAME}}</label>
<contactEmail>{{CONTACT_EMAIL}}</contactEmail>
<description>{{DESCRIPTION}} - JWT Bearer Authentication</description>
<oauthConfig>
<!-- JWT Bearer flow doesn't require callback URL, but Salesforce requires one -->
<callbackUrl>https://localhost/oauth/callback</callbackUrl>
<!-- Certificate for JWT signing -->
<certificate>{{CERTIFICATE_NAME}}</certificate>
<isAdminApproved>true</isAdminApproved>
<isConsumerSecretOptional>true</isConsumerSecretOptional>
<!-- API access scope - typically all that's needed for server-to-server -->
<scopes>Api</scopes>
<!-- RefreshToken not needed for JWT - each request gets new access token -->
</oauthConfig>
<oauthPolicy>
<ipRelaxation>ENFORCE</ipRelaxation>
<refreshTokenPolicy>zero</refreshTokenPolicy>
</oauthPolicy>
<!-- Require connected app to be assigned via permission sets or profiles -->
<permissionSetLicense>
<license>Salesforce</license>
</permissionSetLicense>
</ConnectedApp>