You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> This project is currently in a development phase and not ready for production use.
6
-
> While we actively use these tools internally, our aim is to share and collaborate with the broader community to refine and enhance their capabilities.
7
-
> We are in the process of gradually open-sourcing the code, removing internal dependencies to make it universally applicable.
8
-
> At this stage, it serves as a source of inspiration and a basis for collaboration.
9
-
> We welcome feedback, suggestions, and contributions through pull requests.
4
+
> **WARNING**
5
+
> This project is in active development and not yet production-ready. We welcome feedback, suggestions, and contributions via pull requests.
10
6
11
-
If wish to use this project for your team, please contact us at hello@networg.com for a personalized onboarding experience and customization to meet your specific needs.
7
+
TALXIS CLI (`txc`) is a modular, extensible .NET global tool for automating development, data, and solution management tasks—especially for Power Platform and enterprise projects. It is designed to help developers scaffold, transform and manage code and data in local repositories.
12
8
13
-
## Goal
9
+
**MCP Server Support:**
14
10
11
+
This CLI can also be consumed as a Model Context Protocol (MCP) server by installing the related .NET tool `txc-mcp`. This enables integration with tools and workflows that support the MCP standard.
15
12
16
-
The goal of the TALXIS CLI (`txc`) is to provide a modular, extensible .NET global tool that helps Power Platform developers automate tasks across their local code repositories and data manipulation.
13
+
- For setup and usage instructions, see [`src/TALXIS.CLI.MCP/README.md`](src/TALXIS.CLI.MCP/README.md) in this repository.
14
+
15
+
---
17
16
18
17
## Installation
19
18
20
-
You can install the TALXIS CLI as a .NET global tool using the following command:
19
+
Install as a .NET global tool:
21
20
22
21
```sh
23
22
dotnet tool install --global TALXIS.CLI
24
23
```
25
24
26
-
After installation, you can run the CLI using the `txc` command from any terminal.
27
-
28
-
To update the TALXIS CLI to the latest version, use the following command:
25
+
Update to the latest version:
29
26
30
27
```sh
31
28
dotnet tool update --global TALXIS.CLI
32
29
```
33
30
34
-
## Command Groups
31
+
After installation, use the CLI via the `txc` command in any terminal.
35
32
36
-
The CLI is organized into modular command groups. Each group provides a set of related commands.
33
+
---
37
34
38
-
### Data Commands (`txc data`)
35
+
##Command Groups & Usage
39
36
40
-
Data-related utilities for ETL, Power Query, and automation scenarios.
37
+
The CLI is organized into modular command groups. Each group provides a set of related commands.
41
38
42
-
#### `convert` command
39
+
### Data Commands (`txc data`)
40
+
Data utilities for modeling, migration, ETL, and integration scenarios.
43
41
44
-
Converts tables from an Excel `.xlsx` file into a structured CMT format. Each table in the spreadsheet is exported as an `<entity>` in the XML, with columns as fields and rows as records.
42
+
-**`txc data transform`**: Data-related utilities for ETL, Power Query, and migration.
43
+
-**`txc data transform server start [--port <port>]`**: Starts a local HTTP server for ETL/data transformation tasks. Default port: 50505.
44
+
-**Endpoints:**
45
+
-`POST /ComputePrimaryKey` — Deterministically computes a GUID primary key from entity and alternate keys.
45
46
46
-
**Usage:**
47
+
-**`txc data package`**: Configuration migration tool (CMT) for moving data between environments.
48
+
-**`txc data package convert --input <file.xlsx> --output <file.xml>`**: Converts tables from an Excel `.xlsx` file to a CMT data package XML.
47
49
48
-
```sh
49
-
txc data convert --input <export.xlsx> --output <data.xml>
50
-
```
50
+
-**`txc data model`**: Data modeling utilities (see CLI help for available features).
51
51
52
-
#### `transform-server` command
52
+
### Workspace Commands (`txc workspace`)
53
+
Develop and manage solution components in your local workspace.
53
54
54
-
Starts a simple local HTTP server exposing endpoints for ETL/data transformation tasks. Useful for integrating with Power Query or other local ETL tools.
-**`txc workspace component list`**: List available component templates.
57
+
-**`txc workspace component create <ShortName> [--output <path>] [--param key=value ...]`**: Scaffold a component from a template, passing parameters as needed.
58
+
-**`txc workspace component explain <Name>`**: Show details about a component template.
59
+
-**`txc workspace component parameter list <ShortName>`**: List parameters required for a specific component template.
55
60
56
-
**Usage:**
61
+
### Docs Commands (`txc docs`)
62
+
Knowledge base and documentation for TALXIS CLI and its usage.
57
63
58
-
```sh
59
-
txc data transform-server [--port <port>]
60
-
```
61
-
62
-
- `--port` (optional): Port to run the server on. Defaults to `50505` if not specified.
64
+
---
63
65
64
-
**Example:**
66
+
## Example Usage
65
67
66
68
```sh
67
-
txc data transform-server --port 50505
68
-
```
69
+
# Start the data transformation server on default port
70
+
$ txc data transform server start
69
71
72
+
# Convert Excel to CMT XML
73
+
$ txc data package convert --input export.xlsx --output data.xml
70
74
71
-
**Endpoints:**
75
+
# List available workspace components
76
+
$ txc workspace component list
72
77
73
-
- `POST /ComputePrimaryKey` — Accepts a JSON body with the following structure (case-insensitive):
$ txc workspace component parameter list mycomponent
83
83
```
84
84
85
-
**About Alternate Keys:**
86
-
87
-
Alternate keys are a set of attributes (fields) on a record that, together, uniquely identify that record and never change for its lifetime. For the ComputePrimaryKey endpoint, alternate keys are used to calculate a deterministic primary key (GUID) for each record. This ensures that:
88
-
89
-
- The same record will always get the same primary key, even if the migration is run multiple times.
90
-
- Records can be upserted (inserted or updated) reliably, because their identity is stable and based on business data, not on system-generated IDs.
91
-
- In Microsoft Dataverse, the primary key must be a GUID, so we use alternate keys to generate a GUID that is unique and repeatable for each record.
92
-
93
-
This approach is especially useful for data migrations, deduplication and integration with external systems.
94
-
95
-
The `alternateKeys` object supports any number of key-value pairs, and values can be of any JSON type (string, number, etc). These keys should be attributes that never change for a record and together uniquely identify it. The endpoint returns a deterministic GUID as `{ "primaryKey": "..."}`. The `entity` parameter is used as a prefix to avoid collisions between entities.
96
-
97
-
- `POST /ComputePrimaryKey` — Accepts a JSON body with the following structure (case-insensitive):
98
-
99
-
```json
100
-
{
101
-
"entity": "talxis_salesorder",
102
-
"alternateKeys": {
103
-
"talxis_customernumber": 1234,
104
-
"talxis_sapnumber": "SO34344"
105
-
}
106
-
}
107
-
```
108
-
109
-
The `alternateKeys` object supports any number of key-value pairs, and values can be of any JSON type (string, number, etc). The endpoint returns a deterministic GUID as `{ "primaryKey": "..."}`. The `entity` parameter is used as a prefix to avoid collisions between entities.
110
-
111
-
**Sample request:**
112
-
113
-
```sh
114
-
curl -X POST http://localhost:50505/ComputePrimaryKey \
We are happy to collaborate with developers and contributors interested in enhancing Power Platform development processes. If you have feedback, suggestions, or would like to contribute, please feel free to submit issues or pull requests.
123
-
124
-
### Local building and debugging
85
+
---
125
86
126
-
To build and debug the CLI locally:
87
+
## Local Development & Debugging
127
88
128
89
1. Clone the repository and restore dependencies:
129
90
```sh
@@ -137,10 +98,21 @@ To build and debug the CLI locally:
137
98
```
138
99
3. Run the CLI directly (for example, to test the data transform server):
139
100
```sh
140
-
dotnet run --project src/TALXIS.CLI -- data transform-server
101
+
dotnet run --project src/TALXIS.CLI -- data transformserver start
141
102
```
142
-
4. You can also debug using Visual Studio or VS Code by opening the solution and setting breakpoints as needed.
103
+
4. Debug using Visual Studio or VS Code as needed.
104
+
105
+
---
106
+
107
+
## Versioning & Release
108
+
109
+
- Versioning is managed in `Directory.Build.props` (Microsoft-style versioning).
110
+
- Releases are published to NuGet.org via GitHub Actions.
111
+
112
+
---
113
+
114
+
## Collaboration
143
115
144
-
### Releasing a new version
116
+
We welcome collaboration! For feedback, suggestions, or contributions, please submit issues or pull requests.
145
117
146
-
This project uses explicit Microsoft-style versioning (e.g., 1.0.0.0) set in the `Directory.Build.props` file. A GitHub Actions workflow publishes new releases to NuGet.org.
118
+
For onboarding or customization, contact us at hello@networg.com.
Copy file name to clipboardExpand all lines: src/TALXIS.CLI.Data/TransformServerStartCliCommand.cs
+2-1Lines changed: 2 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -3,12 +3,13 @@
3
3
namespaceTALXIS.CLI.Data;
4
4
5
5
[CliCommand(
6
+
Name="start",
6
7
Description="Starts a local HTTP server exposing endpoints for ETL/data transformation tasks. Useful for integrating with Power Query or other local ETL tools. "+
7
8
"\n\nAvailable endpoints:"+
8
9
"\n POST /ComputePrimaryKey — Accepts a JSON body with 'entity' and 'alternateKeys' to return a deterministic GUID primary key. "+
9
10
"\n The 'alternateKeys' are a set of attributes that together uniquely identify a record and never change for its lifetime. "
10
11
)]
11
-
publicclassTransformServerCliCommand
12
+
publicclassTransformServerStartCliCommand
12
13
{
13
14
[CliOption(Description="Optional. Port to run the server on (default: 50505)")]
0 commit comments