meadow-integration 1.0.4 → 1.0.6
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/.dockerignore +11 -0
- package/Docker-Build.sh +2 -0
- package/Docker-Compose.sh +2 -0
- package/Docker-Push.sh +2 -0
- package/Docker-Tag.sh +2 -0
- package/Dockerfile +28 -0
- package/Dockerfile_LUXURYCode +23 -0
- package/README.md +139 -25
- package/docker-compose.yml +16 -0
- package/docs/README.md +65 -18
- package/docs/{cover.md → _cover.md} +3 -2
- package/docs/_sidebar.md +52 -7
- package/docs/_topbar.md +2 -0
- package/docs/api/clone-rest-client.md +278 -0
- package/docs/api/connection-manager.md +179 -0
- package/docs/api/guid-map.md +234 -0
- package/docs/api/integration-adapter.md +283 -0
- package/docs/api/operation.md +241 -0
- package/docs/api/sync-entity-initial.md +227 -0
- package/docs/api/sync-entity-ongoing.md +244 -0
- package/docs/api/sync.md +213 -0
- package/docs/api/tabular-check.md +213 -0
- package/docs/api/tabular-transform.md +316 -0
- package/docs/architecture.md +423 -0
- package/docs/cli/comprehensionarray.md +111 -0
- package/docs/cli/comprehensionintersect.md +132 -0
- package/docs/cli/csvcheck.md +111 -0
- package/docs/cli/csvtransform.md +170 -0
- package/docs/cli/data-clone.md +277 -0
- package/docs/cli/jsonarraytransform.md +166 -0
- package/docs/cli/load-comprehension.md +129 -0
- package/docs/cli/objectarraytocsv.md +159 -0
- package/docs/cli/overview.md +96 -0
- package/docs/cli/serve.md +102 -0
- package/docs/cli/tsvtransform.md +144 -0
- package/docs/data-clone/configuration.md +357 -0
- package/docs/data-clone/connection-manager.md +206 -0
- package/docs/data-clone/docker.md +290 -0
- package/docs/data-clone/overview.md +173 -0
- package/docs/data-clone/sync-modes.md +186 -0
- package/docs/implementation-reference.md +311 -0
- package/docs/overview.md +156 -0
- package/docs/quickstart.md +233 -0
- package/docs/rest/comprehension-push.md +209 -0
- package/docs/rest/comprehension.md +506 -0
- package/docs/rest/csv.md +255 -0
- package/docs/rest/entity-generation.md +158 -0
- package/docs/rest/json-array.md +243 -0
- package/docs/rest/overview.md +120 -0
- package/docs/rest/status.md +63 -0
- package/docs/rest/tsv.md +241 -0
- package/docs/retold-catalog.json +93 -3
- package/docs/retold-keyword-index.json +23683 -1901
- package/package.json +13 -10
- package/scripts/run.sh +18 -0
- package/source/Meadow-Integration.js +15 -1
- package/source/cli/Default-Meadow-Integration-Configuration.json +37 -2
- package/source/cli/Meadow-Integration-CLI-Program.js +4 -1
- package/source/cli/commands/Meadow-Integration-Command-DataClone.js +284 -0
- package/source/services/clone/Meadow-Service-ConnectionManager.js +251 -0
- package/source/services/clone/Meadow-Service-Operation.js +196 -0
- package/source/services/clone/Meadow-Service-RestClient.js +364 -0
- package/source/services/clone/Meadow-Service-Sync-Entity-Initial.js +367 -0
- package/source/services/clone/Meadow-Service-Sync-Entity-Ongoing.js +457 -0
- package/source/services/clone/Meadow-Service-Sync.js +142 -0
- /package/docs/examples/bookstore/{mapping_books_Author.json → mapping_books_author.json} +0 -0
- /package/docs/examples/bookstore/{mapping_books_Book.json → mapping_books_book.json} +0 -0
package/.dockerignore
ADDED
package/Docker-Build.sh
ADDED
package/Docker-Push.sh
ADDED
package/Docker-Tag.sh
ADDED
package/Dockerfile
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
FROM node:20-bookworm AS base
|
|
2
|
+
MAINTAINER steven velozo <steven@velozo.com>
|
|
3
|
+
|
|
4
|
+
RUN apt-get update && apt-get -y --force-yes install curl vim nano less \
|
|
5
|
+
tmux uuid-runtime
|
|
6
|
+
|
|
7
|
+
# Setup node.js global tools
|
|
8
|
+
RUN npm install -g nodemon --unsafe-perm
|
|
9
|
+
|
|
10
|
+
ADD package.json /service_root/package.json
|
|
11
|
+
RUN cd /service_root && npm install --omit=dev
|
|
12
|
+
|
|
13
|
+
ADD source /service_root/source
|
|
14
|
+
ADD scripts /service_root/scripts
|
|
15
|
+
|
|
16
|
+
WORKDIR /service_root
|
|
17
|
+
|
|
18
|
+
# Don't leave local artifacts around
|
|
19
|
+
RUN rm -rf package-lock.json .git test
|
|
20
|
+
|
|
21
|
+
# Default config file for Docker deployments
|
|
22
|
+
RUN if [ -f ./Meadow-Config-Docker.json ]; then mv ./Meadow-Config-Docker.json ./source/cli/Default-Meadow-Integration-Configuration.json; fi
|
|
23
|
+
|
|
24
|
+
FROM base AS production
|
|
25
|
+
|
|
26
|
+
RUN date -u +"%Y-%m-%dT%H:%M:%SZ" > ./build.date
|
|
27
|
+
|
|
28
|
+
CMD ["scripts/run.sh"]
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
FROM codercom/code-server:latest
|
|
2
|
+
|
|
3
|
+
USER root
|
|
4
|
+
|
|
5
|
+
RUN apt-get update && apt-get install -y vim curl tmux
|
|
6
|
+
|
|
7
|
+
# Install NVM / Node
|
|
8
|
+
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
|
|
9
|
+
RUN bash -c "source /root/.nvm/nvm.sh && nvm install 20 && nvm alias default 20"
|
|
10
|
+
|
|
11
|
+
# Install VSCode extensions
|
|
12
|
+
RUN code-server --install-extension hbenl.vscode-mocha-test-adapter
|
|
13
|
+
RUN code-server --install-extension hbenl.vscode-test-adapter-converter
|
|
14
|
+
RUN code-server --install-extension hbenl.vscode-test-explorer
|
|
15
|
+
RUN code-server --install-extension oderwat.indent-rainbow
|
|
16
|
+
RUN code-server --install-extension dbaeumer.vscode-eslint
|
|
17
|
+
RUN code-server --install-extension eamodio.gitlens
|
|
18
|
+
|
|
19
|
+
VOLUME ["/home/coder/.config"]
|
|
20
|
+
VOLUME ["/home/coder/.vscode"]
|
|
21
|
+
VOLUME ["/home/coder/meadow-integration"]
|
|
22
|
+
|
|
23
|
+
WORKDIR /home/coder/meadow-integration
|
package/README.md
CHANGED
|
@@ -51,19 +51,30 @@ npm start -- csvtransform ./docs/examples/data/books.csv \
|
|
|
51
51
|
npm start -- comprehensionintersect Set1.json -i Set2.json -e "MyEntity" -o merged.json
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
+
### Clone Data from a Remote API
|
|
55
|
+
|
|
56
|
+
```shell
|
|
57
|
+
npm start -- data-clone \
|
|
58
|
+
--api_server "https://my-meadow-api.example.com/1.0/" \
|
|
59
|
+
--api_username admin --api_password secret \
|
|
60
|
+
--db_host 127.0.0.1 --db_name my_local_db \
|
|
61
|
+
--schema_path ./schema/Model-Extended.json
|
|
62
|
+
```
|
|
63
|
+
|
|
54
64
|
## CLI Commands
|
|
55
65
|
|
|
56
|
-
| Command | Description |
|
|
57
|
-
|
|
58
|
-
| `csvcheck` | Analyze a CSV file for statistics |
|
|
59
|
-
| `csvtransform` | Transform a CSV into a comprehension |
|
|
60
|
-
| `tsvtransform` | Transform a TSV into a comprehension |
|
|
61
|
-
| `jsonarraytransform` | Transform a JSON array into a comprehension |
|
|
62
|
-
| `comprehensionintersect` | Merge two comprehension files |
|
|
63
|
-
| `comprehensionarray` | Convert object comprehension to array |
|
|
64
|
-
| `objectarraytocsv` | Export a JSON array to CSV |
|
|
65
|
-
| `load_comprehension` | Push a comprehension to Meadow REST APIs |
|
|
66
|
-
| `
|
|
66
|
+
| Command | Aliases | Description |
|
|
67
|
+
|---------|---------|-------------|
|
|
68
|
+
| `csvcheck` | | Analyze a CSV file for statistics |
|
|
69
|
+
| `csvtransform` | | Transform a CSV into a comprehension |
|
|
70
|
+
| `tsvtransform` | | Transform a TSV into a comprehension |
|
|
71
|
+
| `jsonarraytransform` | | Transform a JSON array into a comprehension |
|
|
72
|
+
| `comprehensionintersect` | | Merge two comprehension files |
|
|
73
|
+
| `comprehensionarray` | | Convert object comprehension to array |
|
|
74
|
+
| `objectarraytocsv` | | Export a JSON array to CSV |
|
|
75
|
+
| `load_comprehension` | | Push a comprehension to Meadow REST APIs |
|
|
76
|
+
| `data-clone` | `clone`, `sync` | Clone data from a Meadow API to a local database |
|
|
77
|
+
| `serve` | | Start the REST API server |
|
|
67
78
|
|
|
68
79
|
## REST API Server
|
|
69
80
|
|
|
@@ -178,24 +189,124 @@ For multi-record generation (e.g. splitting comma-separated authors), use Solver
|
|
|
178
189
|
## Architecture
|
|
179
190
|
|
|
180
191
|
```
|
|
181
|
-
External Data (CSV / TSV / JSON)
|
|
182
|
-
|
|
|
183
|
-
v
|
|
184
|
-
TabularTransform Service
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
192
|
+
External Data (CSV / TSV / JSON) Meadow REST API (Source)
|
|
193
|
+
| |
|
|
194
|
+
v v
|
|
195
|
+
TabularTransform Service CloneRestClient Service
|
|
196
|
+
-- column mapping via Pict templates -- authenticate & read entities
|
|
197
|
+
| |
|
|
198
|
+
v v
|
|
199
|
+
Comprehension Object Sync Service (Initial / Ongoing)
|
|
200
|
+
-- entity records keyed by GUID -- compare server vs local state
|
|
201
|
+
| |
|
|
202
|
+
v v
|
|
203
|
+
Integration Adapter ConnectionManager Service
|
|
204
|
+
-- marshal to Meadow schema -- MySQL or MSSQL connection pool
|
|
205
|
+
| |
|
|
206
|
+
v v
|
|
207
|
+
GUID Map Local Database
|
|
208
|
+
-- track external <-> Meadow IDs -- tables created from schema
|
|
194
209
|
|
|
|
195
210
|
v
|
|
196
|
-
Meadow REST API
|
|
211
|
+
Meadow REST API (Destination)
|
|
212
|
+
-- batch upsert / single upsert
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Data Synchronization
|
|
216
|
+
|
|
217
|
+
The `data-clone` command synchronizes entity data from a remote Meadow REST API into a local MySQL or MSSQL database. It authenticates with the source API, connects to a local database, loads a Meadow schema, and syncs each entity defined in the schema.
|
|
218
|
+
|
|
219
|
+
### Services
|
|
220
|
+
|
|
221
|
+
| Service | Description |
|
|
222
|
+
|---------|-------------|
|
|
223
|
+
| **ConnectionManager** | Manages database connection pools for MySQL and MSSQL. Handles table creation and index management on the local database. |
|
|
224
|
+
| **CloneRestClient** | Authenticates with a remote Meadow API and provides methods for reading, creating, updating, upserting, and deleting entities. Includes built-in entity caching and paginated batch downloads. |
|
|
225
|
+
| **Sync** | Orchestrates entity synchronization. Loads a Meadow schema, creates local tables if they do not exist, and iterates through each entity to sync records. |
|
|
226
|
+
|
|
227
|
+
### Sync Modes
|
|
228
|
+
|
|
229
|
+
| Mode | Description |
|
|
230
|
+
|------|-------------|
|
|
231
|
+
| **Initial** | Compares the max entity ID on the server against the local database and downloads all records with IDs greater than the local maximum. Designed for first-time bulk population. |
|
|
232
|
+
| **Ongoing** | Walks through all server records page by page, comparing `UpdateDate` timestamps. Creates missing records locally and updates records whose server timestamp is newer than the local copy. |
|
|
233
|
+
|
|
234
|
+
### CLI Options
|
|
235
|
+
|
|
236
|
+
```
|
|
237
|
+
data-clone [options]
|
|
238
|
+
|
|
239
|
+
Options:
|
|
240
|
+
-a, --api_server <url> Source Meadow API server URL
|
|
241
|
+
-u, --api_username <user> API username for authentication
|
|
242
|
+
-p, --api_password <pass> API password for authentication
|
|
243
|
+
-d, --db_provider <provider> Database provider: MySQL or MSSQL (default: MySQL)
|
|
244
|
+
-dh, --db_host <host> Database host address
|
|
245
|
+
-dp, --db_port <port> Database port
|
|
246
|
+
-du, --db_username <user> Database username
|
|
247
|
+
-dw, --db_password <pass> Database password
|
|
248
|
+
-dn, --db_name <name> Database name
|
|
249
|
+
-sp, --schema_path <path> Path to Meadow extended schema JSON file
|
|
250
|
+
-s, --sync_mode <mode> Sync mode: Initial or Ongoing (default: Initial)
|
|
251
|
+
-w, --post_run_delay <min> Minutes to wait after sync before exiting (default: 0)
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### Configuration
|
|
255
|
+
|
|
256
|
+
The `data-clone` command reads configuration from a `.meadow.config.json` file. The CLI searches for this file starting from the current working directory and cascading up to the home directory (powered by `pict-service-commandlineutility` auto-gather). Command-line options override values from the config file.
|
|
257
|
+
|
|
258
|
+
```json
|
|
259
|
+
{
|
|
260
|
+
"Source": {
|
|
261
|
+
"ServerURL": "https://my-meadow-api.example.com/1.0/",
|
|
262
|
+
"UserID": "admin",
|
|
263
|
+
"Password": "secret"
|
|
264
|
+
},
|
|
265
|
+
"Destination": {
|
|
266
|
+
"Provider": "MySQL",
|
|
267
|
+
"MySQL": {
|
|
268
|
+
"server": "127.0.0.1",
|
|
269
|
+
"port": 3306,
|
|
270
|
+
"user": "root",
|
|
271
|
+
"password": "",
|
|
272
|
+
"database": "meadow",
|
|
273
|
+
"connectionLimit": 20
|
|
274
|
+
},
|
|
275
|
+
"MSSQL": {
|
|
276
|
+
"server": "127.0.0.1",
|
|
277
|
+
"port": 1433,
|
|
278
|
+
"user": "sa",
|
|
279
|
+
"password": "",
|
|
280
|
+
"database": "meadow",
|
|
281
|
+
"ConnectionPoolLimit": 20
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
"SchemaPath": "./schema/Model-Extended.json",
|
|
285
|
+
"Sync": {
|
|
286
|
+
"DefaultSyncMode": "Initial",
|
|
287
|
+
"PageSize": 100,
|
|
288
|
+
"SyncEntityList": [],
|
|
289
|
+
"SyncEntityOptions": {}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
Set `SyncEntityList` to an array of entity names to sync only a subset of the schema. When empty, all entities in the schema are synced.
|
|
295
|
+
|
|
296
|
+
### Docker
|
|
297
|
+
|
|
298
|
+
A `Dockerfile` and `docker-compose.yml` are provided for running `data-clone` in a container. The Docker image is based on `node:20-bookworm` and runs the sync via the `scripts/run.sh` entrypoint.
|
|
299
|
+
|
|
300
|
+
```shell
|
|
301
|
+
# Build the image
|
|
302
|
+
docker build -t retold/meadow-integration .
|
|
303
|
+
|
|
304
|
+
# Run with docker-compose (connects to a meadow_backend network)
|
|
305
|
+
docker-compose up
|
|
197
306
|
```
|
|
198
307
|
|
|
308
|
+
Place a `.meadow.config.json` in the mounted volume or use `Meadow-Config-Docker.json` at the project root (it is automatically copied into the container as the default configuration during the Docker build).
|
|
309
|
+
|
|
199
310
|
## Documentation
|
|
200
311
|
|
|
201
312
|
Full documentation is available at `docs/index.html` (powered by pict-docuserve):
|
|
@@ -219,8 +330,11 @@ npm test
|
|
|
219
330
|
|
|
220
331
|
- [meadow](https://github.com/stevenvelozo/meadow) - Data access and ORM
|
|
221
332
|
- [meadow-endpoints](https://github.com/stevenvelozo/meadow-endpoints) - Auto-generated REST endpoints
|
|
333
|
+
- [meadow-connection-mysql](https://github.com/stevenvelozo/meadow-connection-mysql) - MySQL database provider for Meadow
|
|
334
|
+
- [meadow-connection-mssql](https://github.com/stevenvelozo/meadow-connection-mssql) - MSSQL database provider for Meadow
|
|
222
335
|
- [orator](https://github.com/stevenvelozo/orator) - API server abstraction
|
|
223
336
|
- [fable](https://github.com/stevenvelozo/fable) - Application services framework
|
|
337
|
+
- [pict-service-commandlineutility](https://github.com/stevenvelozo/pict-service-commandlineutility) - CLI framework with cascading configuration
|
|
224
338
|
|
|
225
339
|
## License
|
|
226
340
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
version: '2'
|
|
2
|
+
|
|
3
|
+
services:
|
|
4
|
+
meadow-integration-clone:
|
|
5
|
+
image: retold/meadow-integration:latest
|
|
6
|
+
volumes:
|
|
7
|
+
- "${RETOLD_DIR:-./}:/service_root"
|
|
8
|
+
environment:
|
|
9
|
+
- RUN_LOCAL_DEV=true
|
|
10
|
+
networks:
|
|
11
|
+
- back
|
|
12
|
+
|
|
13
|
+
networks:
|
|
14
|
+
back:
|
|
15
|
+
external:
|
|
16
|
+
name: meadow_backend
|
package/docs/README.md
CHANGED
|
@@ -4,6 +4,8 @@ A suite of tools for managing data into a centralized non-specific schema format
|
|
|
4
4
|
|
|
5
5
|
These tools are built to be usable from the command-line, as a web service, or within your own codebase. This module presents these behaviors both as a suite of externally usable fable services, a command-line utility to leverage them and a set of web service behaviors.
|
|
6
6
|
|
|
7
|
+
In addition to data transformation, Meadow Integration includes a **Data Clone** pipeline for replicating entity data from a remote Meadow REST API into a local MySQL or MSSQL database.
|
|
8
|
+
|
|
7
9
|
## What is a Comprehension?
|
|
8
10
|
|
|
9
11
|
A **Comprehension** is a JSON object that stores entity records keyed by their GUID. It acts as an intermediate data format for integrating records from external systems (CSV, TSV, JSON) into Meadow entities.
|
|
@@ -78,38 +80,83 @@ npx meadow-integration csvtransform ./books.csv -m mapping.json -o books.json
|
|
|
78
80
|
npx meadow-integration comprehensionintersect Set1.json -i Set2.json -e "MyEntity" -o merged.json
|
|
79
81
|
```
|
|
80
82
|
|
|
83
|
+
### 5. Clone data from a remote API
|
|
84
|
+
|
|
85
|
+
Create a `.meadow.config.json` in your working directory:
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"Source": {
|
|
90
|
+
"ServerURL": "https://api.example.com/1.0/",
|
|
91
|
+
"UserID": "sync-user",
|
|
92
|
+
"Password": "sync-password"
|
|
93
|
+
},
|
|
94
|
+
"Destination": {
|
|
95
|
+
"Provider": "MySQL",
|
|
96
|
+
"MySQL": {
|
|
97
|
+
"server": "127.0.0.1",
|
|
98
|
+
"port": 3306,
|
|
99
|
+
"user": "root",
|
|
100
|
+
"password": "",
|
|
101
|
+
"database": "meadow_clone"
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"SchemaPath": "./schema/Model-Extended.json"
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Then run the clone:
|
|
109
|
+
|
|
110
|
+
```shell
|
|
111
|
+
npx meadow-integration data-clone
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
For incremental updates after the initial clone:
|
|
115
|
+
|
|
116
|
+
```shell
|
|
117
|
+
npx meadow-integration data-clone -s Ongoing
|
|
118
|
+
```
|
|
119
|
+
|
|
81
120
|
## Architecture
|
|
82
121
|
|
|
83
122
|
```
|
|
84
|
-
External Data (CSV / TSV / JSON)
|
|
85
|
-
|
|
|
86
|
-
v
|
|
87
|
-
TabularTransform Service
|
|
88
|
-
(column mapping via Pict templates)
|
|
89
|
-
|
|
|
90
|
-
v
|
|
91
|
-
Comprehension Object
|
|
92
|
-
(Entity records keyed by GUID)
|
|
93
|
-
|
|
|
94
|
-
v
|
|
95
|
-
Integration Adapter
|
|
96
|
-
(marshal to Meadow schema)
|
|
97
|
-
|
|
|
98
|
-
v
|
|
99
|
-
GUID Map
|
|
100
|
-
(track external <-> Meadow IDs)
|
|
101
|
-
|
|
|
123
|
+
External Data (CSV / TSV / JSON) Remote Meadow REST API
|
|
124
|
+
| |
|
|
125
|
+
v v
|
|
126
|
+
TabularTransform Service CloneRestClient
|
|
127
|
+
(column mapping via Pict templates) (authenticated HTTP)
|
|
128
|
+
| |
|
|
129
|
+
v v
|
|
130
|
+
Comprehension Object Sync Service
|
|
131
|
+
(Entity records keyed by GUID) (Initial or Ongoing mode)
|
|
132
|
+
| |
|
|
133
|
+
v v
|
|
134
|
+
Integration Adapter ConnectionManager
|
|
135
|
+
(marshal to Meadow schema) (MySQL or MSSQL pool)
|
|
136
|
+
| |
|
|
137
|
+
v v
|
|
138
|
+
GUID Map Local Database
|
|
139
|
+
(track external <-> Meadow IDs) (tables auto-created
|
|
140
|
+
| from Meadow schema)
|
|
102
141
|
v
|
|
103
142
|
Meadow REST API
|
|
104
143
|
(batch upsert / single upsert)
|
|
105
144
|
```
|
|
106
145
|
|
|
146
|
+
The left side is the **Data Transformation** pipeline: external files are parsed, transformed into comprehensions, and pushed to a Meadow API. The right side is the **Data Synchronization** pipeline: entity data is pulled from a remote Meadow API and written to a local database.
|
|
147
|
+
|
|
148
|
+
Both pipelines share the Fable service provider pattern for dependency injection, logging, and configuration.
|
|
149
|
+
|
|
107
150
|
## Next Steps
|
|
108
151
|
|
|
152
|
+
- [Overview](overview.md) -- Full feature overview and when to use each tool
|
|
153
|
+
- [Quick Start Guide](quickstart.md) -- Step-by-step walkthrough of all workflows
|
|
154
|
+
- [Architecture](architecture.md) -- System design with mermaid diagrams
|
|
109
155
|
- [CLI Reference](cli-reference.md) -- All commands and their options
|
|
110
156
|
- [REST API Reference](rest-api-reference.md) -- All REST endpoints with curl examples
|
|
111
157
|
- [Mapping Files](mapping-files.md) -- How to write column mapping configurations
|
|
112
158
|
- [Comprehensions](comprehensions.md) -- The comprehension data format in detail
|
|
113
159
|
- [Programmatic API](programmatic-api.md) -- Using services directly in your code
|
|
114
160
|
- [Integration Adapter](integration-adapter.md) -- Pushing data to Meadow REST APIs
|
|
161
|
+
- [Data Clone Overview](data-clone/overview.md) -- Synchronizing remote APIs to local databases
|
|
115
162
|
- [Examples](examples-walkthrough.md) -- Walkthrough of all runnable examples
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
# Meadow Integration <small>1.
|
|
1
|
+
# Meadow Integration <small>1.1</small>
|
|
2
2
|
|
|
3
|
-
> Data integration toolkit for transforming
|
|
3
|
+
> Data integration toolkit for transforming, synchronizing, and managing data with Meadow entity comprehensions
|
|
4
4
|
|
|
5
5
|
- Transform tabular data into structured entity records
|
|
6
6
|
- Merge multiple data sources by shared keys
|
|
7
7
|
- Multi-entity extraction from single sources using Solvers
|
|
8
|
+
- Synchronize remote Meadow APIs to local databases
|
|
8
9
|
- CLI utility, programmatic API, and REST integration
|
|
9
10
|
|
|
10
11
|
[GitHub](https://github.com/stevenvelozo/meadow-integration)
|
package/docs/_sidebar.md
CHANGED
|
@@ -1,19 +1,64 @@
|
|
|
1
1
|
- Getting Started
|
|
2
2
|
|
|
3
3
|
- [Introduction](/)
|
|
4
|
-
- [Quick Start](
|
|
4
|
+
- [Quick Start](quickstart.md)
|
|
5
|
+
- [Overview](overview.md)
|
|
5
6
|
|
|
6
|
-
-
|
|
7
|
+
- Architecture
|
|
8
|
+
|
|
9
|
+
- [Design](architecture.md)
|
|
10
|
+
- [Implementation Reference](implementation-reference.md)
|
|
11
|
+
|
|
12
|
+
- Data Transformation
|
|
7
13
|
|
|
8
14
|
- [Comprehensions](comprehensions.md)
|
|
9
15
|
- [Mapping Files](mapping-files.md)
|
|
10
16
|
|
|
11
|
-
-
|
|
17
|
+
- Data Synchronization
|
|
18
|
+
|
|
19
|
+
- [Data Clone Overview](data-clone/overview.md)
|
|
20
|
+
- [Connection Manager](data-clone/connection-manager.md)
|
|
21
|
+
- [Sync Modes](data-clone/sync-modes.md)
|
|
22
|
+
- [Configuration](data-clone/configuration.md)
|
|
23
|
+
- [Docker Deployment](data-clone/docker.md)
|
|
24
|
+
|
|
25
|
+
- CLI Reference
|
|
26
|
+
|
|
27
|
+
- [CLI Overview](cli/overview.md)
|
|
28
|
+
- [csvcheck](cli/csvcheck.md)
|
|
29
|
+
- [csvtransform](cli/csvtransform.md)
|
|
30
|
+
- [tsvtransform](cli/tsvtransform.md)
|
|
31
|
+
- [jsonarraytransform](cli/jsonarraytransform.md)
|
|
32
|
+
- [comprehensionintersect](cli/comprehensionintersect.md)
|
|
33
|
+
- [comprehensionarray](cli/comprehensionarray.md)
|
|
34
|
+
- [objectarraytocsv](cli/objectarraytocsv.md)
|
|
35
|
+
- [load_comprehension](cli/load-comprehension.md)
|
|
36
|
+
- [data-clone](cli/data-clone.md)
|
|
37
|
+
- [serve](cli/serve.md)
|
|
38
|
+
|
|
39
|
+
- REST API Reference
|
|
40
|
+
|
|
41
|
+
- [REST Overview](rest/overview.md)
|
|
42
|
+
- [Status](rest/status.md)
|
|
43
|
+
- [CSV Operations](rest/csv.md)
|
|
44
|
+
- [TSV Operations](rest/tsv.md)
|
|
45
|
+
- [JSON Array Operations](rest/json-array.md)
|
|
46
|
+
- [Comprehension Operations](rest/comprehension.md)
|
|
47
|
+
- [Entity Generation](rest/entity-generation.md)
|
|
48
|
+
- [Comprehension Push](rest/comprehension-push.md)
|
|
49
|
+
|
|
50
|
+
- API Reference
|
|
12
51
|
|
|
13
|
-
- [
|
|
14
|
-
- [
|
|
15
|
-
- [
|
|
16
|
-
- [
|
|
52
|
+
- [ConnectionManager](api/connection-manager.md)
|
|
53
|
+
- [CloneRestClient](api/clone-rest-client.md)
|
|
54
|
+
- [Sync](api/sync.md)
|
|
55
|
+
- [SyncEntityInitial](api/sync-entity-initial.md)
|
|
56
|
+
- [SyncEntityOngoing](api/sync-entity-ongoing.md)
|
|
57
|
+
- [Operation](api/operation.md)
|
|
58
|
+
- [IntegrationAdapter](api/integration-adapter.md)
|
|
59
|
+
- [GUIDMap](api/guid-map.md)
|
|
60
|
+
- [TabularCheck](api/tabular-check.md)
|
|
61
|
+
- [TabularTransform](api/tabular-transform.md)
|
|
17
62
|
|
|
18
63
|
- Examples
|
|
19
64
|
|
package/docs/_topbar.md
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# Meadow Integration
|
|
2
2
|
|
|
3
3
|
- [Overview](README.md)
|
|
4
|
+
- [Architecture](architecture.md)
|
|
4
5
|
- [CLI Reference](cli-reference.md)
|
|
5
6
|
- [API Reference](programmatic-api.md)
|
|
7
|
+
- [Data Clone](data-clone/overview.md)
|
|
6
8
|
- [Examples](examples-walkthrough.md)
|
|
7
9
|
- [GitHub](https://github.com/stevenvelozo/meadow-integration)
|