Skip to content

Commit 1bc4cfe

Browse files
authored
Merge pull request #588 from jameskanmsft/patch-5
Refine operations agent schema and update properties
2 parents 98141f2 + 01e57a8 commit 1bc4cfe

1 file changed

Lines changed: 142 additions & 11 deletions

File tree

  • fabric/item/operationsAgents/definition/1.0.0

fabric/item/operationsAgents/definition/1.0.0/schema.json

Lines changed: 142 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,34 +8,37 @@
88
"configuration": {
99
"type": "object",
1010
"title": "Operations Agent Configuration",
11-
"description": "User specified configuration containing goals, instructions, data sources, and actions of the agent.",
11+
"description": "User specified configuration containing instructions, data sources, actions, message destination, and identity of the agent.",
1212
"properties": {
13-
"goals": {
14-
"type": "string",
15-
"description": "Business goals for the agent to accomplish."
16-
},
1713
"instructions": {
1814
"type": "string",
1915
"description": "Explicit instructions or procedures for the agent to follow."
2016
},
2117
"dataSources": {
2218
"type": "object",
19+
"description": "Map of user-chosen data source aliases to data source objects or variable reference strings.",
2320
"additionalProperties": {
24-
"$ref": "#/definitions/dataSource"
21+
"oneOf": [
22+
{ "$ref": "#/definitions/dataSource" },
23+
{ "$ref": "#/definitions/variableReference" }
24+
]
2525
}
2626
},
2727
"actions": {
2828
"type": "object",
29+
"description": "Map of user-chosen action aliases to action objects.",
2930
"additionalProperties": {
3031
"$ref": "#/definitions/action"
3132
}
3233
},
33-
"recipient": {
34-
"type": "string"
34+
"messageDestination": {
35+
"$ref": "#/definitions/messageDestination"
36+
},
37+
"identity": {
38+
"$ref": "#/definitions/agentIdentity"
3539
}
3640
},
3741
"required": [
38-
"goals",
3942
"instructions",
4043
"dataSources",
4144
"actions"
@@ -56,6 +59,11 @@
5659
],
5760
"additionalProperties": false,
5861
"definitions": {
62+
"variableReference": {
63+
"type": "string",
64+
"description": "Reference to a variable in a Fabric variable library, in the form $(/<WorkspaceName>/<LibraryName>/<VariableName>).",
65+
"pattern": "^\\$\\(/[^/]+/[^/]+/[^/]+\\)$"
66+
},
5967
"dataSource": {
6068
"type": "object",
6169
"properties": {
@@ -66,7 +74,8 @@
6674
"type": {
6775
"type": "string",
6876
"enum": [
69-
"KustoDatabase"
77+
"KustoDatabase",
78+
"Ontology"
7079
]
7180
},
7281
"workspaceId": {
@@ -96,23 +105,73 @@
96105
"kind": {
97106
"type": "string",
98107
"enum": [
99-
"PowerAutomateAction"
108+
"PowerAutomateAction",
109+
"FabricJobAction"
100110
]
101111
},
102112
"parameters": {
103113
"type": "array",
104114
"items": {
105115
"$ref": "#/definitions/parameter"
106116
}
117+
},
118+
"connection": {
119+
"$ref": "#/definitions/fabricItemConnection"
107120
}
108121
},
109122
"required": [
110123
"id",
111124
"displayName",
112125
"description",
113126
"kind"
127+
],
128+
"allOf": [
129+
{
130+
"if": {
131+
"properties": { "kind": { "const": "FabricJobAction" } },
132+
"required": ["kind"]
133+
},
134+
"then": {
135+
"required": ["connection"]
136+
}
137+
}
114138
]
115139
},
140+
"fabricItemConnection": {
141+
"type": "object",
142+
"description": "Specifies the Fabric item and job to invoke for a FabricJobAction.",
143+
"properties": {
144+
"jobArtifactId": {
145+
"type": "string",
146+
"format": "uuid",
147+
"description": "Artifact (item) ID of the Fabric item to run the job on."
148+
},
149+
"jobWorkspaceId": {
150+
"type": "string",
151+
"format": "uuid",
152+
"description": "Workspace ID containing the item."
153+
},
154+
"itemType": {
155+
"type": "string",
156+
"description": "The Fabric item type (for example, DataPipeline, Notebook)."
157+
},
158+
"jobType": {
159+
"type": "string",
160+
"description": "The job type to invoke on the item (for example, Pipeline, RunNotebook)."
161+
},
162+
"subItemId": {
163+
"type": "string",
164+
"description": "Identifier for the sub-item being targeted by the job, when applicable."
165+
}
166+
},
167+
"required": [
168+
"jobArtifactId",
169+
"jobWorkspaceId",
170+
"itemType",
171+
"jobType"
172+
],
173+
"additionalProperties": false
174+
},
116175
"parameter": {
117176
"type": "object",
118177
"properties": {
@@ -127,6 +186,78 @@
127186
"name"
128187
],
129188
"additionalProperties": false
189+
},
190+
"messageDestination": {
191+
"description": "Polymorphic destination for agent notifications. Selected by the kind discriminator.",
192+
"oneOf": [
193+
{ "$ref": "#/definitions/recipientDestination" },
194+
{ "$ref": "#/definitions/teamsChannelDestination" }
195+
]
196+
},
197+
"recipientDestination": {
198+
"type": "object",
199+
"properties": {
200+
"kind": {
201+
"type": "string",
202+
"const": "Recipient"
203+
},
204+
"recipient": {
205+
"type": "string",
206+
"description": "The UPN of the recipient."
207+
}
208+
},
209+
"required": [
210+
"kind",
211+
"recipient"
212+
],
213+
"additionalProperties": false
214+
},
215+
"teamsChannelDestination": {
216+
"type": "object",
217+
"properties": {
218+
"kind": {
219+
"type": "string",
220+
"const": "TeamsChannel"
221+
},
222+
"teamId": {
223+
"type": "string",
224+
"description": "The Teams team ID."
225+
},
226+
"channelId": {
227+
"type": "string",
228+
"description": "The Teams channel ID."
229+
}
230+
},
231+
"required": [
232+
"kind",
233+
"teamId",
234+
"channelId"
235+
],
236+
"additionalProperties": false
237+
},
238+
"agentIdentity": {
239+
"type": "object",
240+
"description": "Identity information for the agent, used for agent OBO / app-only scenarios on ALM import/export.",
241+
"properties": {
242+
"principalId": {
243+
"type": "string",
244+
"description": "The principal ID for the agent identity."
245+
},
246+
"blueprintId": {
247+
"type": "string",
248+
"description": "The agent identity blueprint ID."
249+
},
250+
"mode": {
251+
"type": "string",
252+
"enum": ["Delegated"],
253+
"description": "Execution mode."
254+
},
255+
"sponsor": {
256+
"type": "string",
257+
"description": "The UPN of the sponsor user. Required when messageDestination is a non-Recipient kind."
258+
}
259+
},
260+
"additionalProperties": false
130261
}
131262
}
132263
}

0 commit comments

Comments
 (0)