tap-meshstack is a Singer tap for the meshStack Cloud Foundation Platform.
Built with the Meltano Tap SDK for Singer Taps.
At this moment, the tap is only available via GitHub.
To install via meltano.yml, specify this repository via pip_url
plugins:
extractors:
- name: tap-meshstack
namespace: tap_meshstack
pip_url: git+https://github.com/meshcloud/tap-meshstack
executable: tap-meshstackfederation: meshStack federation configapi_url: meshStack federation API URLauth: authentication options, see Authorizationusername: basic auth usernamepassword: basic auth password (plaintext)
kraken: meshStack kraken configapi_url: meshStack kraken API URLauth: authentication options, see Authorizationusername: basic auth usernamepassword: basic auth password (plaintext)
cert_path: path to a public SSL certificate used to verify connection to meshStack. Useful if you are running meshStack Enterprise with certificates signed by a non-public Certificate Authority
A full list of supported settings and capabilities for this tap is available by running:
tap-meshstack --aboutThe tap supports meshStack API authentication with HTTP Basic auth. Please review the official meshStack API documentation section on API Authentication how you can configure the required access.
The tap transforms your meshObject tags to a generic key-values representation that's suitable for ETL. This is required so that ETL pipelines that expect static record schemas can more handle easily handle the dynamic schema nature of tags.
Note that meshObject tag schemas can also be different from object to object in the same collection.
Consider the following example to understand how the transformation works. The meshWorkspace has the following
JSON representation in the meshObject API:
{
"apiVersion": "v1",
"kind": "meshWorkspace",
"metadata": {
"name": "customer",
"createdOn": "2021-01-25T10:28:38Z"
},
"spec": {
"displayName": "admin-customer",
"tags": {
"environment": ["dev", "prod"]
}
}
}The tap transforms this object into the following record representation
{
"apiVersion": "v1",
"kind": "meshWorkspace",
"metadata": {
"name": "customer",
"createdOn": "2021-01-25T10:28:38Z"
},
"spec": {
"displayName": "admin-customer",
"tags": [{
"key": "environment", "values": ["dev", "prod"]
}]
}
}The tap also removes the meshObject _links property as this is seldomly useful in ETL usecases and takes up a lot of
unnecessary data, requiring explicit configuration to remove from records.
You can easily run tap-meshstack by itself or in a pipeline using Meltano.
tap-meshstack --version
tap-meshstack --help
tap-meshstack --config CONFIG --discover > ./catalog.jsonpipx install poetry
poetry installCreate tests within the tap_meshstack/tests subfolder and
then run:
poetry run pytestYou can also test the tap-meshstack CLI interface directly using poetry run:
poetry run tap-meshstack --helpTesting with Meltano
For local development on the tap, specify an executable directly in meltano.yml
executable: /path/to/tap-meshstack/.venv/bin/tap-meshstackSee the dev guide for more instructions on how to use the SDK to develop your own taps and targets.