@salesforce/afv-skills 1.41.0 → 1.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills/dx-app-analytics-query/SKILL.md +1 -3
- package/skills/platform-dataspace-access-configure/SKILL.md +1 -3
- package/skills/data360-activate/README.md +0 -38
- package/skills/data360-activate/SKILL.md +0 -127
- package/skills/data360-connect/README.md +0 -57
- package/skills/data360-connect/SKILL.md +0 -163
- package/skills/data360-connect/examples/connections/heroku-postgres.json +0 -15
- package/skills/data360-connect/examples/connections/ingest-api-connection.json +0 -5
- package/skills/data360-connect/examples/connections/ingest-api-schema.json +0 -31
- package/skills/data360-connect/examples/connections/redshift.json +0 -16
- package/skills/data360-connect/examples/connections/sharepoint-unstructured.json +0 -20
- package/skills/data360-connect/examples/connections/snowflake-connection.json +0 -42
- package/skills/data360-harmonize/README.md +0 -31
- package/skills/data360-harmonize/SKILL.md +0 -126
- package/skills/data360-orchestrate/README.md +0 -120
- package/skills/data360-orchestrate/SKILL.md +0 -263
- package/skills/data360-orchestrate/assets/definitions/activation-target.template.json +0 -5
- package/skills/data360-orchestrate/assets/definitions/activation.template.json +0 -7
- package/skills/data360-orchestrate/assets/definitions/calculated-insight.template.json +0 -7
- package/skills/data360-orchestrate/assets/definitions/data-action-target.template.json +0 -5
- package/skills/data360-orchestrate/assets/definitions/data-action.template.json +0 -5
- package/skills/data360-orchestrate/assets/definitions/data-graph.template.json +0 -21
- package/skills/data360-orchestrate/assets/definitions/data-stream.template.json +0 -55
- package/skills/data360-orchestrate/assets/definitions/dmo.template.json +0 -17
- package/skills/data360-orchestrate/assets/definitions/identity-resolution.template.json +0 -30
- package/skills/data360-orchestrate/assets/definitions/mapping.template.json +0 -14
- package/skills/data360-orchestrate/assets/definitions/relationship.template.json +0 -12
- package/skills/data360-orchestrate/assets/definitions/search-index.template.json +0 -9
- package/skills/data360-orchestrate/assets/definitions/segment.template.json +0 -16
- package/skills/data360-orchestrate/references/feature-readiness.md +0 -157
- package/skills/data360-orchestrate/references/plugin-setup.md +0 -138
- package/skills/data360-orchestrate/scripts/bootstrap-plugin.sh +0 -53
- package/skills/data360-orchestrate/scripts/diagnose-org.mjs +0 -511
- package/skills/data360-orchestrate/scripts/generate-manifest.mjs +0 -68
- package/skills/data360-orchestrate/scripts/verify-plugin.sh +0 -58
- package/skills/data360-prepare/README.md +0 -50
- package/skills/data360-prepare/SKILL.md +0 -203
- package/skills/data360-prepare/examples/ingestion-api/.env.example +0 -8
- package/skills/data360-prepare/examples/ingestion-api/README.md +0 -48
- package/skills/data360-prepare/examples/ingestion-api/send-data.py +0 -144
- package/skills/data360-query/README.md +0 -43
- package/skills/data360-query/SKILL.md +0 -128
- package/skills/data360-query/examples/search-indexes/hybrid-structured.json +0 -44
- package/skills/data360-query/examples/search-indexes/vector-knowledge.json +0 -43
- package/skills/data360-segment/README.md +0 -35
- package/skills/data360-segment/SKILL.md +0 -123
package/package.json
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: dx-app-analytics-query
|
|
3
|
-
description: "ISV App Analytics metadata types — AppAnalyticsQueryRequest and AppAnalyticsSettings. Use this skill when the user asks about retrieving managed package usage data, configuring App Analytics simulation mode, querying subscriber snapshots, or understanding the AppAnalyticsQueryRequest lifecycle (New → Pending → Complete → Expired). TRIGGER when: user mentions App Analytics, AppAnalyticsQueryRequest, AppAnalyticsSettings, package usage data, subscriber analytics, ISV analytics, or simulation mode for app analytics. DO NOT TRIGGER when: the task is about standard Salesforce reports/dashboards (use reporting skills), custom SOQL on Account/Contact (use platform-soql-query)
|
|
3
|
+
description: "ISV App Analytics metadata types — AppAnalyticsQueryRequest and AppAnalyticsSettings. Use this skill when the user asks about retrieving managed package usage data, configuring App Analytics simulation mode, querying subscriber snapshots, or understanding the AppAnalyticsQueryRequest lifecycle (New → Pending → Complete → Expired). TRIGGER when: user mentions App Analytics, AppAnalyticsQueryRequest, AppAnalyticsSettings, package usage data, subscriber analytics, ISV analytics, or simulation mode for app analytics. DO NOT TRIGGER when: the task is about standard Salesforce reports/dashboards (use reporting skills), custom SOQL on Account/Contact (use platform-soql-query)."
|
|
4
4
|
metadata:
|
|
5
5
|
cliTools:
|
|
6
6
|
- tool: ["sf"]
|
|
7
7
|
semver: ">=2.0.0"
|
|
8
8
|
relatedSkills:
|
|
9
|
-
- "data360-query"
|
|
10
9
|
- "platform-metadata-deploy"
|
|
11
10
|
- "platform-soql-query"
|
|
12
11
|
version: "1.0"
|
|
@@ -29,7 +28,6 @@ Use `dx-app-analytics-query` when the work involves:
|
|
|
29
28
|
|
|
30
29
|
Delegate elsewhere when the user is:
|
|
31
30
|
- Running standard CRM SOQL queries → platform-soql-query
|
|
32
|
-
- Working with Data Cloud SQL or DMOs → data360-query
|
|
33
31
|
- Building reports/dashboards on standard objects → reporting skills
|
|
34
32
|
- Deploying or retrieving generic metadata XML → platform-metadata-deploy / retrieving-metadata
|
|
35
33
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: platform-dataspace-access-configure
|
|
3
|
-
description: "Use this skill to configure or inspect Salesforce Data Cloud DataSpace access for permission sets. Grants dataspace-level access via MDAPI PermissionSet XML with dataspaceScopes elements, optionally grants object-level access to DMO, DLO, or CIO objects via the Object Access Grants Connect API, and inspects existing scopes via read-only PermissionSet metadata retrieval. TRIGGER when: user needs to create or update a permission set with DataSpace access, grant access to a specific dataspace, list permission sets with access to a DataSpace, configure dataAccessLevel/objectAccessLevel, add RBAC object access grants, or list/remove object access grants for a permission set + DataSpace pair. DO NOT TRIGGER when: the task is a generic permission set without dataspace access (use platform-permission-set-generate), the request is about data ingestion/streams
|
|
3
|
+
description: "Use this skill to configure or inspect Salesforce Data Cloud DataSpace access for permission sets. Grants dataspace-level access via MDAPI PermissionSet XML with dataspaceScopes elements, optionally grants object-level access to DMO, DLO, or CIO objects via the Object Access Grants Connect API, and inspects existing scopes via read-only PermissionSet metadata retrieval. TRIGGER when: user needs to create or update a permission set with DataSpace access, grant access to a specific dataspace, list permission sets with access to a DataSpace, configure dataAccessLevel/objectAccessLevel, add RBAC object access grants, or list/remove object access grants for a permission set + DataSpace pair. DO NOT TRIGGER when: the task is a generic permission set without dataspace access (use platform-permission-set-generate), the request is about data ingestion/streams, or the work involves creating dataspaces themselves rather than granting access to them."
|
|
4
4
|
metadata:
|
|
5
5
|
version: "1.0"
|
|
6
6
|
domains: ["Platform", "Data 360"]
|
|
@@ -65,8 +65,6 @@ Trigger this skill when the user wants to:
|
|
|
65
65
|
|
|
66
66
|
Delegate elsewhere when:
|
|
67
67
|
- The permission set has no DataSpace access at all → `platform-permission-set-generate`
|
|
68
|
-
- The task is creating the DataSpace itself → `data360-orchestrate`
|
|
69
|
-
- The task is ingesting data or configuring streams → `data360-prepare`
|
|
70
68
|
|
|
71
69
|
---
|
|
72
70
|
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# data360-activate
|
|
2
|
-
|
|
3
|
-
Activation and downstream delivery workflows for Salesforce Data Cloud.
|
|
4
|
-
|
|
5
|
-
## Use this skill for
|
|
6
|
-
|
|
7
|
-
- activations
|
|
8
|
-
- activation targets
|
|
9
|
-
- data actions
|
|
10
|
-
- data action targets
|
|
11
|
-
- downstream platform inspection before push
|
|
12
|
-
|
|
13
|
-
## Example requests
|
|
14
|
-
|
|
15
|
-
```text
|
|
16
|
-
"Activate this segment to the downstream platform"
|
|
17
|
-
"Show me what activation targets already exist"
|
|
18
|
-
"Create a data action target for this integration"
|
|
19
|
-
"Help me inspect why this activation is not ready"
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## Common commands
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
sf data360 activation platforms -o myorg 2>/dev/null
|
|
26
|
-
sf data360 activation-target list -o myorg 2>/dev/null
|
|
27
|
-
sf data360 activation list -o myorg 2>/dev/null
|
|
28
|
-
sf data360 data-action-target list -o myorg 2>/dev/null
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## References
|
|
32
|
-
|
|
33
|
-
- [SKILL.md](SKILL.md)
|
|
34
|
-
- [../data360-orchestrate/assets/definitions/activation-target.template.json](../data360-orchestrate/assets/definitions/activation-target.template.json)
|
|
35
|
-
- [../data360-orchestrate/assets/definitions/activation.template.json](../data360-orchestrate/assets/definitions/activation.template.json)
|
|
36
|
-
- [../data360-orchestrate/assets/definitions/data-action-target.template.json](../data360-orchestrate/assets/definitions/data-action-target.template.json)
|
|
37
|
-
- [../data360-orchestrate/assets/definitions/data-action.template.json](../data360-orchestrate/assets/definitions/data-action.template.json)
|
|
38
|
-
- [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md)
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: data360-activate
|
|
3
|
-
description: "Salesforce Data Cloud Act phase. Use this skill when the user manages activations, activation targets, data actions, or downstream delivery of Data Cloud audiences and data. TRIGGER when: user manages activations, activation targets, data actions, or downstream delivery of Data Cloud audiences and data. DO NOT TRIGGER when: the task is segment creation (use data360-segment), data retrieval/search work (use data360-query), or STDM/session tracing (use agentforce-observe)."
|
|
4
|
-
metadata:
|
|
5
|
-
cliTools:
|
|
6
|
-
- tool: ["node"]
|
|
7
|
-
semver: ">=18.0.0"
|
|
8
|
-
- tool: ["sf"]
|
|
9
|
-
semver: ">=2.0.0"
|
|
10
|
-
relatedSkills:
|
|
11
|
-
- "agentforce-observe"
|
|
12
|
-
- "data360-connect"
|
|
13
|
-
- "data360-orchestrate"
|
|
14
|
-
- "data360-prepare"
|
|
15
|
-
- "data360-query"
|
|
16
|
-
- "data360-segment"
|
|
17
|
-
version: "1.0"
|
|
18
|
-
domains: ["Data 360"]
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
# data360-activate: Data Cloud Act Phase
|
|
22
|
-
|
|
23
|
-
Use this skill when the user needs **downstream delivery work**: activations, activation targets, data actions, or pushing Data Cloud outputs into other systems.
|
|
24
|
-
|
|
25
|
-
## When This Skill Owns the Task
|
|
26
|
-
|
|
27
|
-
Use `data360-activate` when the work involves:
|
|
28
|
-
- `sf data360 activation *`
|
|
29
|
-
- `sf data360 activation-target *`
|
|
30
|
-
- `sf data360 data-action *`
|
|
31
|
-
- `sf data360 data-action-target *`
|
|
32
|
-
- verifying downstream delivery setup
|
|
33
|
-
|
|
34
|
-
Delegate elsewhere when the user is:
|
|
35
|
-
- still building the audience or insight → [data360-segment](../data360-segment/SKILL.md)
|
|
36
|
-
- exploring query/search or search indexes → [data360-query](../data360-query/SKILL.md)
|
|
37
|
-
- setting up base connections or ingestion → [data360-connect](../data360-connect/SKILL.md), [data360-prepare](../data360-prepare/SKILL.md)
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## Required Context to Gather First
|
|
42
|
-
|
|
43
|
-
Ask for or infer:
|
|
44
|
-
- target org alias
|
|
45
|
-
- destination platform or downstream system
|
|
46
|
-
- whether the segment already exists and is published
|
|
47
|
-
- whether the user needs create, inspect, update, or delete
|
|
48
|
-
- whether the task is activation-focused or data-action-focused
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
## Core Operating Rules
|
|
53
|
-
|
|
54
|
-
- Verify the upstream segment or insight is healthy before creating downstream delivery assets.
|
|
55
|
-
- Run the shared readiness classifier before mutating activation assets: `node ../data360-orchestrate/scripts/diagnose-org.mjs -o <org> --phase act --json`.
|
|
56
|
-
- Inspect available platforms and targets before mutating activation setup.
|
|
57
|
-
- Keep destination definitions deterministic and reusable where possible.
|
|
58
|
-
- Treat downstream credential and platform constraints as separate validation concerns.
|
|
59
|
-
- Prefer read-only inspection first when the destination state is unclear.
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## Recommended Workflow
|
|
64
|
-
|
|
65
|
-
### 1. Classify readiness for act work
|
|
66
|
-
```bash
|
|
67
|
-
node ../data360-orchestrate/scripts/diagnose-org.mjs -o <org> --phase act --json
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### 2. Inspect destinations first
|
|
71
|
-
```bash
|
|
72
|
-
sf data360 activation platforms -o <org> 2>/dev/null
|
|
73
|
-
sf data360 activation-target list -o <org> 2>/dev/null
|
|
74
|
-
sf data360 data-action-target list -o <org> 2>/dev/null
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### 3. Create the destination before the activation
|
|
78
|
-
```bash
|
|
79
|
-
sf data360 activation-target create -o <org> -f target.json 2>/dev/null
|
|
80
|
-
sf data360 data-action-target create -o <org> -f target.json 2>/dev/null
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
### 4. Create the activation or data action
|
|
84
|
-
```bash
|
|
85
|
-
sf data360 activation create -o <org> -f activation.json 2>/dev/null
|
|
86
|
-
sf data360 data-action create -o <org> -f action.json 2>/dev/null
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### 5. Verify downstream readiness
|
|
90
|
-
```bash
|
|
91
|
-
sf data360 activation list -o <org> 2>/dev/null
|
|
92
|
-
sf data360 activation data -o <org> --name <activation> 2>/dev/null
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## High-Signal Gotchas
|
|
98
|
-
|
|
99
|
-
- Activation design depends on a healthy published upstream segment.
|
|
100
|
-
- Destination configuration usually comes before activation creation.
|
|
101
|
-
- Downstream credential and platform constraints may live outside the Data Cloud CLI alone.
|
|
102
|
-
- Read-only inspection is the safest first move when the destination setup is unclear.
|
|
103
|
-
- `CdpActivationTarget` or `CdpActivationExternalPlatform` means the activation surface is gated for the current org/user; guide the user toward activation setup, permissions, and destination configuration instead of retrying blindly.
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## Output Format
|
|
108
|
-
|
|
109
|
-
```text
|
|
110
|
-
Act task: <activation / activation-target / data-action / data-action-target>
|
|
111
|
-
Destination: <platform or target>
|
|
112
|
-
Target org: <alias>
|
|
113
|
-
Artifacts: <definition files / commands>
|
|
114
|
-
Verification: <listed / created / blocked>
|
|
115
|
-
Next step: <destination validation or downstream testing>
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
## References
|
|
121
|
-
|
|
122
|
-
- [../data360-orchestrate/assets/definitions/activation-target.template.json](../data360-orchestrate/assets/definitions/activation-target.template.json)
|
|
123
|
-
- [../data360-orchestrate/assets/definitions/activation.template.json](../data360-orchestrate/assets/definitions/activation.template.json)
|
|
124
|
-
- [../data360-orchestrate/assets/definitions/data-action-target.template.json](../data360-orchestrate/assets/definitions/data-action-target.template.json)
|
|
125
|
-
- [../data360-orchestrate/assets/definitions/data-action.template.json](../data360-orchestrate/assets/definitions/data-action.template.json)
|
|
126
|
-
- [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md)
|
|
127
|
-
- [../data360-orchestrate/references/feature-readiness.md](../data360-orchestrate/references/feature-readiness.md)
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# data360-connect
|
|
2
|
-
|
|
3
|
-
Connection and connector workflows for Salesforce Data Cloud.
|
|
4
|
-
|
|
5
|
-
## Use this skill for
|
|
6
|
-
|
|
7
|
-
- listing available connector types
|
|
8
|
-
- inspecting configured connections
|
|
9
|
-
- testing a connection
|
|
10
|
-
- browsing source objects, databases, fields, and uploaded schemas
|
|
11
|
-
- preparing connector JSON for Snowflake, SharePoint Unstructured, and Ingestion API sources
|
|
12
|
-
- preparing for stream creation
|
|
13
|
-
|
|
14
|
-
## Key reminders
|
|
15
|
-
|
|
16
|
-
- `connection list` requires `--connector-type`
|
|
17
|
-
- `connection test` may need `--connector-type` for non-Salesforce name resolution
|
|
18
|
-
- use `connection schema-upsert` after creating an Ingestion API connector
|
|
19
|
-
- start with inspection before mutation
|
|
20
|
-
- use `2>/dev/null` to suppress linked-plugin warning noise
|
|
21
|
-
- some connector types can be created by API while downstream stream creation still requires UI flow
|
|
22
|
-
|
|
23
|
-
## Example requests
|
|
24
|
-
|
|
25
|
-
```text
|
|
26
|
-
"Show me which Data Cloud connections already exist in this org"
|
|
27
|
-
"Test my Snowflake Data Cloud connection"
|
|
28
|
-
"What source objects are available on this Salesforce connector?"
|
|
29
|
-
"Help me create an Ingestion API connector and upload its schema"
|
|
30
|
-
"Set up a SharePoint Unstructured connection for document ingestion"
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Common commands
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
sf data360 connection connector-list -o myorg 2>/dev/null
|
|
37
|
-
sf data360 connection list -o myorg --connector-type SalesforceDotCom 2>/dev/null
|
|
38
|
-
sf data360 connection get -o myorg --name SalesforceDotCom_Home 2>/dev/null
|
|
39
|
-
sf data360 connection test -o myorg --name Snowflake_Demo --connector-type SNOWFLAKE 2>/dev/null
|
|
40
|
-
sf data360 connection schema-get -o myorg --name <connector-id> 2>/dev/null
|
|
41
|
-
sf data360 connection create -o myorg -f examples/connections/heroku-postgres.json 2>/dev/null
|
|
42
|
-
sf data360 connection schema-upsert -o myorg --name <connector-id> -f examples/connections/ingest-api-schema.json 2>/dev/null
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## Example payloads
|
|
46
|
-
|
|
47
|
-
- [examples/connections/heroku-postgres.json](examples/connections/heroku-postgres.json)
|
|
48
|
-
- [examples/connections/redshift.json](examples/connections/redshift.json)
|
|
49
|
-
- [examples/connections/sharepoint-unstructured.json](examples/connections/sharepoint-unstructured.json)
|
|
50
|
-
- [examples/connections/snowflake-connection.json](examples/connections/snowflake-connection.json)
|
|
51
|
-
- [examples/connections/ingest-api-connection.json](examples/connections/ingest-api-connection.json)
|
|
52
|
-
- [examples/connections/ingest-api-schema.json](examples/connections/ingest-api-schema.json)
|
|
53
|
-
|
|
54
|
-
## References
|
|
55
|
-
|
|
56
|
-
- [SKILL.md](SKILL.md)
|
|
57
|
-
- [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md)
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: data360-connect
|
|
3
|
-
description: "Salesforce Data Cloud Connect phase. Use this skill when the user manages Data Cloud connections, connectors, or sets up a new source system. TRIGGER when: user manages Data Cloud connections, connectors, connector metadata, tests a connection, browses source objects or databases, or sets up a new source system. DO NOT TRIGGER when: the task is about data streams or DLOs (use data360-prepare), DMOs or identity resolution (use data360-harmonize), retrieval/search (use data360-query), or STDM telemetry (use agentforce-observe)."
|
|
4
|
-
metadata:
|
|
5
|
-
cliTools:
|
|
6
|
-
- tool: ["node"]
|
|
7
|
-
semver: ">=18.0.0"
|
|
8
|
-
- tool: ["sf"]
|
|
9
|
-
semver: ">=2.0.0"
|
|
10
|
-
relatedSkills:
|
|
11
|
-
- "agentforce-observe"
|
|
12
|
-
- "data360-harmonize"
|
|
13
|
-
- "data360-orchestrate"
|
|
14
|
-
- "data360-prepare"
|
|
15
|
-
- "data360-query"
|
|
16
|
-
version: "1.0"
|
|
17
|
-
domains: ["Data 360"]
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
# data360-connect: Data Cloud Connect Phase
|
|
21
|
-
|
|
22
|
-
Use this skill when the user needs **source connection work**: connector discovery, connection metadata, connection testing, source-object browsing, connector schema inspection, or connector-specific setup payloads for external sources.
|
|
23
|
-
|
|
24
|
-
## When This Skill Owns the Task
|
|
25
|
-
|
|
26
|
-
Use `data360-connect` when the work involves:
|
|
27
|
-
- `sf data360 connection *`
|
|
28
|
-
- connector catalog inspection
|
|
29
|
-
- connection creation, update, test, or delete
|
|
30
|
-
- browsing source objects, fields, databases, or schemas
|
|
31
|
-
- identifying connector types already in use
|
|
32
|
-
- preparing connector definitions for Snowflake, SharePoint Unstructured, or Ingestion API sources
|
|
33
|
-
|
|
34
|
-
Delegate elsewhere when the user is:
|
|
35
|
-
- creating data streams or DLOs → [data360-prepare](../data360-prepare/SKILL.md)
|
|
36
|
-
- creating DMOs, mappings, IR rulesets, or data graphs → [data360-harmonize](../data360-harmonize/SKILL.md)
|
|
37
|
-
- writing Data Cloud SQL or search-index workflows → [data360-query](../data360-query/SKILL.md)
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## Required Context to Gather First
|
|
42
|
-
|
|
43
|
-
Ask for or infer:
|
|
44
|
-
- target org alias
|
|
45
|
-
- connector type or source system
|
|
46
|
-
- whether the user wants inspection only or live mutation
|
|
47
|
-
- connection name or ID if one already exists
|
|
48
|
-
- whether credentials are already configured outside the CLI
|
|
49
|
-
- whether the user also expects stream creation right after connection setup
|
|
50
|
-
- whether the source is a database, an unstructured document source, or an Ingestion API feed
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## Core Operating Rules
|
|
55
|
-
|
|
56
|
-
- Verify the plugin runtime first; see [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md).
|
|
57
|
-
- Run the shared readiness classifier before mutating connections: `node ../data360-orchestrate/scripts/diagnose-org.mjs -o <org> --phase connect --json`.
|
|
58
|
-
- Prefer read-only discovery before connection creation.
|
|
59
|
-
- Suppress linked-plugin warning noise with `2>/dev/null` for standard usage.
|
|
60
|
-
- Remember that `connection list` requires `--connector-type`.
|
|
61
|
-
- For `connection test`, pass `--connector-type` when resolving a non-Salesforce connection by name.
|
|
62
|
-
- Discover existing connector types from streams first when the org is unfamiliar.
|
|
63
|
-
- Use curated example payloads before inventing connector-specific credentials or parameters.
|
|
64
|
-
- For connector types outside the curated examples, inspect a known-good UI-created connection via REST before building JSON.
|
|
65
|
-
- Do not promise API-based stream creation for every connector type just because connection creation succeeds.
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## Recommended Workflow
|
|
70
|
-
|
|
71
|
-
### 1. Classify readiness for connect work
|
|
72
|
-
```bash
|
|
73
|
-
node ../data360-orchestrate/scripts/diagnose-org.mjs -o <org> --phase connect --json
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### 2. Discover connector types
|
|
77
|
-
```bash
|
|
78
|
-
sf data360 connection connector-list -o <org> 2>/dev/null
|
|
79
|
-
sf data360 data-stream list -o <org> 2>/dev/null
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### 3. Inspect connections by type
|
|
83
|
-
```bash
|
|
84
|
-
sf data360 connection list -o <org> --connector-type SalesforceDotCom 2>/dev/null
|
|
85
|
-
sf data360 connection list -o <org> --connector-type REDSHIFT 2>/dev/null
|
|
86
|
-
sf data360 connection list -o <org> --connector-type SNOWFLAKE 2>/dev/null
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### 4. Inspect a specific connection or uploaded schema
|
|
90
|
-
```bash
|
|
91
|
-
sf data360 connection get -o <org> --name <connection> 2>/dev/null
|
|
92
|
-
sf data360 connection objects -o <org> --name <connection> 2>/dev/null
|
|
93
|
-
sf data360 connection fields -o <org> --name <connection> 2>/dev/null
|
|
94
|
-
sf data360 connection schema-get -o <org> --name <connection-id> 2>/dev/null
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
### 5. Test or create only after discovery
|
|
98
|
-
```bash
|
|
99
|
-
sf data360 connection test -o <org> --name <connection> --connector-type <type> 2>/dev/null
|
|
100
|
-
sf data360 connection create -o <org> -f connection.json 2>/dev/null
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### 6. Start from curated example payloads for external connectors
|
|
104
|
-
Use the phase-owned examples before inventing a payload from scratch:
|
|
105
|
-
- `examples/connections/heroku-postgres.json`
|
|
106
|
-
- `examples/connections/redshift.json`
|
|
107
|
-
- `examples/connections/sharepoint-unstructured.json`
|
|
108
|
-
- `examples/connections/snowflake-connection.json`
|
|
109
|
-
- `examples/connections/ingest-api-connection.json`
|
|
110
|
-
- `examples/connections/ingest-api-schema.json`
|
|
111
|
-
|
|
112
|
-
Typical Ingestion API setup flow:
|
|
113
|
-
```bash
|
|
114
|
-
sf data360 connection create -o <org> -f examples/connections/ingest-api-connection.json 2>/dev/null
|
|
115
|
-
sf data360 connection schema-upsert -o <org> --name <connector-id> -f examples/connections/ingest-api-schema.json 2>/dev/null
|
|
116
|
-
sf data360 connection schema-get -o <org> --name <connector-id> 2>/dev/null
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### 7. Discover payload fields for unknown connector types
|
|
120
|
-
Create one in the UI, then inspect it directly:
|
|
121
|
-
```bash
|
|
122
|
-
sf api request rest "/services/data/v66.0/ssot/connections/<id>" -o <org>
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
---
|
|
126
|
-
|
|
127
|
-
## High-Signal Gotchas
|
|
128
|
-
|
|
129
|
-
- `connection list` has no true global "list all" mode; query by connector type.
|
|
130
|
-
- The connector catalog name and connection connector type are not always the same label.
|
|
131
|
-
- `connection test` may need `--connector-type` for name resolution when the source is not a default Salesforce connector.
|
|
132
|
-
- An empty connection list usually means "enabled but not configured yet", not "feature disabled".
|
|
133
|
-
- Heroku Postgres, Redshift, Snowflake, SharePoint Unstructured, and Ingestion API all use different credential and parameter shapes; reuse the curated examples instead of guessing.
|
|
134
|
-
- SharePoint Unstructured uses `clientId`, `clientSecret`, and `tokenEndpoint` in the `credentials` array and does not require a `parameters` array.
|
|
135
|
-
- Snowflake uses key-pair auth and can often be created through the API, but downstream stream creation can still remain UI-only.
|
|
136
|
-
- Ingestion API connector setup is incomplete until `connection schema-upsert` has uploaded the object schema.
|
|
137
|
-
- Some external connector credential setup still depends on UI-side configuration or external-system permissions.
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
## Output Format
|
|
142
|
-
|
|
143
|
-
```text
|
|
144
|
-
Connect task: <inspect / create / test / update>
|
|
145
|
-
Connector type: <SalesforceDotCom / REDSHIFT / SNOWFLAKE / SPUnstructuredDocument / IngestApi / ...>
|
|
146
|
-
Target org: <alias>
|
|
147
|
-
Commands: <key commands run>
|
|
148
|
-
Verification: <passed / partial / blocked>
|
|
149
|
-
Next step: <prepare phase or connector follow-up>
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
---
|
|
153
|
-
|
|
154
|
-
## References
|
|
155
|
-
|
|
156
|
-
- [examples/connections/heroku-postgres.json](examples/connections/heroku-postgres.json)
|
|
157
|
-
- [examples/connections/redshift.json](examples/connections/redshift.json)
|
|
158
|
-
- [examples/connections/sharepoint-unstructured.json](examples/connections/sharepoint-unstructured.json)
|
|
159
|
-
- [examples/connections/snowflake-connection.json](examples/connections/snowflake-connection.json)
|
|
160
|
-
- [examples/connections/ingest-api-connection.json](examples/connections/ingest-api-connection.json)
|
|
161
|
-
- [examples/connections/ingest-api-schema.json](examples/connections/ingest-api-schema.json)
|
|
162
|
-
- [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md)
|
|
163
|
-
- [../data360-orchestrate/references/feature-readiness.md](../data360-orchestrate/references/feature-readiness.md)
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"connectorType": "HerokuPostgres",
|
|
3
|
-
"label": "My Heroku DB",
|
|
4
|
-
"name": "My_Heroku_DB",
|
|
5
|
-
"method": "Ingress",
|
|
6
|
-
"credentials": [
|
|
7
|
-
{ "paramName": "credentialType", "value": "UsernamePasswordAuthentication" },
|
|
8
|
-
{ "paramName": "user", "value": "<HEROKU_DB_USER>" },
|
|
9
|
-
{ "paramName": "password", "value": "<HEROKU_DB_PASSWORD>" }
|
|
10
|
-
],
|
|
11
|
-
"parameters": [
|
|
12
|
-
{ "paramName": "jdbc_connection_url", "value": "<HOST>:<PORT>" },
|
|
13
|
-
{ "paramName": "DATABASE", "value": "<DATABASE_NAME>" }
|
|
14
|
-
]
|
|
15
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemas": [
|
|
3
|
-
{
|
|
4
|
-
"label": "<OBJECT_NAME>",
|
|
5
|
-
"name": "<OBJECT_NAME>",
|
|
6
|
-
"schemaType": "IngestApi",
|
|
7
|
-
"fields": [
|
|
8
|
-
{
|
|
9
|
-
"name": "Id",
|
|
10
|
-
"label": "Id",
|
|
11
|
-
"dataType": "Text"
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
"name": "Name",
|
|
15
|
-
"label": "Name",
|
|
16
|
-
"dataType": "Text"
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
"name": "Timestamp",
|
|
20
|
-
"label": "Timestamp",
|
|
21
|
-
"dataType": "DateTime"
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"name": "Value",
|
|
25
|
-
"label": "Value",
|
|
26
|
-
"dataType": "Number"
|
|
27
|
-
}
|
|
28
|
-
]
|
|
29
|
-
}
|
|
30
|
-
]
|
|
31
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"connectorType": "REDSHIFT",
|
|
3
|
-
"label": "My Redshift",
|
|
4
|
-
"name": "My_Redshift",
|
|
5
|
-
"method": "Ingress",
|
|
6
|
-
"credentials": [
|
|
7
|
-
{ "paramName": "authenticationOption", "value": "usernameAndPassword" },
|
|
8
|
-
{ "paramName": "username", "value": "<REDSHIFT_USER>" },
|
|
9
|
-
{ "paramName": "password", "value": "<REDSHIFT_PASSWORD>" }
|
|
10
|
-
],
|
|
11
|
-
"parameters": [
|
|
12
|
-
{ "paramName": "url", "value": "<HOST>:<PORT>" },
|
|
13
|
-
{ "paramName": "database", "value": "<DATABASE_NAME>" },
|
|
14
|
-
{ "paramName": "hasPrivateNetworkRoute", "value": "false" }
|
|
15
|
-
]
|
|
16
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"connectorType": "SPUnstructuredDocument",
|
|
3
|
-
"label": "My SharePoint Docs",
|
|
4
|
-
"name": "My_SharePoint_Docs",
|
|
5
|
-
"method": "Ingress",
|
|
6
|
-
"credentials": [
|
|
7
|
-
{
|
|
8
|
-
"paramName": "clientId",
|
|
9
|
-
"value": "<AZURE_APP_CLIENT_ID>"
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
"paramName": "clientSecret",
|
|
13
|
-
"value": "<AZURE_APP_CLIENT_SECRET>"
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
"paramName": "tokenEndpoint",
|
|
17
|
-
"value": "https://login.microsoftonline.com/<AZURE_TENANT_ID>/oauth2/v2.0/token"
|
|
18
|
-
}
|
|
19
|
-
]
|
|
20
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"connectorType": "SNOWFLAKE",
|
|
3
|
-
"label": "Snowflake Demo",
|
|
4
|
-
"name": "Snowflake_Demo",
|
|
5
|
-
"method": "Ingress",
|
|
6
|
-
"credentials": [
|
|
7
|
-
{
|
|
8
|
-
"paramName": "credentialType",
|
|
9
|
-
"value": "KeyPairAuthentication"
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
"paramName": "user",
|
|
13
|
-
"value": "<SNOWFLAKE_USERNAME>"
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
"paramName": "privateKey",
|
|
17
|
-
"value": "<YOUR_PRIVATE_KEY_WITHOUT_BEGIN_END_HEADERS>"
|
|
18
|
-
}
|
|
19
|
-
],
|
|
20
|
-
"parameters": [
|
|
21
|
-
{
|
|
22
|
-
"paramName": "accountUrl",
|
|
23
|
-
"value": "https://<ORG_ID>-<ACCOUNT_ID>.snowflakecomputing.com"
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"paramName": "database",
|
|
27
|
-
"value": "<DATABASE_NAME>"
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"paramName": "warehouse",
|
|
31
|
-
"value": "<WAREHOUSE_NAME>"
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"paramName": "region",
|
|
35
|
-
"value": "<AWS_REGION>"
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
"paramName": "hasPrivateNetworkRoute",
|
|
39
|
-
"value": "false"
|
|
40
|
-
}
|
|
41
|
-
]
|
|
42
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# data360-harmonize
|
|
2
|
-
|
|
3
|
-
Schema harmonization and unification workflows for Salesforce Data Cloud.
|
|
4
|
-
|
|
5
|
-
## Use this skill for
|
|
6
|
-
|
|
7
|
-
- DMOs (Data Model Objects)
|
|
8
|
-
- Field mappings
|
|
9
|
-
- Relationships
|
|
10
|
-
- Identity resolution
|
|
11
|
-
- Unified profiles
|
|
12
|
-
- Data graphs
|
|
13
|
-
- Universal ID lookup
|
|
14
|
-
|
|
15
|
-
## Example requests
|
|
16
|
-
|
|
17
|
-
```text
|
|
18
|
-
"Map this DLO to ssot__Individual__dlm"
|
|
19
|
-
"Help me create an identity resolution ruleset"
|
|
20
|
-
"Why are unified profiles not appearing?"
|
|
21
|
-
"Show me the DMO fields before I create mappings"
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Common commands
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
sf data360 dmo list --all -o myorg 2>/dev/null
|
|
28
|
-
sf data360 query describe -o myorg --table ssot__Individual__dlm 2>/dev/null
|
|
29
|
-
sf data360 dmo mapping-list -o myorg --source Contact_Home__dll --target ssot__Individual__dlm 2>/dev/null
|
|
30
|
-
sf data360 identity-resolution list -o myorg 2>/dev/null
|
|
31
|
-
```
|