singer-io / knots Goto Github PK
View Code? Open in Web Editor NEWKNOTS is an intuitive desktop application built to simplify the configuration of Singer pipelines
License: Apache License 2.0
KNOTS is an intuitive desktop application built to simplify the configuration of Singer pipelines
License: Apache License 2.0
Docker Desktop for Windows is installed, when starting KNOTS it only says "Wake up Docker".
When opening a commandline and running "docker -v" it says "Docker version 18.09.3, build 774a1f4"
What am i doing wrong?
Any ideas? :)
How hard would it be to support local taps, or other taps directly from the github source?
right now I imagine I can create and host a docker image of my tap following some spec, and then adding a new record here:
knots/app/backend/constants.js
Lines 26 to 98 in e5d53e0
I'd love to be able to add to these defaults at runtime and have them stored somewhere on my fs so I can use custom taps, and also show me instructions on how to build a KNOTS ready docker image from my tap ๐
See: https://www.electron.build/code-signing/, for requirements.
Set up view for data.world target configuration.
Acceptance criteria:
Design and implement in-memory model for a knot.
Acceptance criteria:
Set up view for RedShift tap discovery execution.
Acceptance criteria:
Set up view for catalog configuration.
Acceptance criteria:
Implement data.world OAuth flow
Acceptance criteria:
Set up view for target installation.
Acceptance criteria:
Users should be able to download a .zip file containing a Makefile and all the necessary configuration for running syncs outside of the Knot app.
Acceptance criteria:
install
, sync
and full-sync
targetsSet project up as an Electron app.
Acceptance criteria:
Allow user to select from existing datasets.
Acceptance criteria:
Please add support for the Google BigQuery Target (as mentioned on Singer.IO: https://github.com/RealSelf/target-bigquery), would love to use this with KNOTS :)
Today, we don't seem to be using Flow correctly. There is room to reuse types more often and lots of FlowFixMe
and FlowIssue
that require attention.
Today, introducing a new tap or target requires that we touch a number of different files.
I'd like us to improve that so that new taps or target can be introduced with the addition of a single module/file. Think about the lifecycle and what methods/functions that module needs to implement in order to properly describe itself (metadata), handle configuration (required, optional and default params) and render the various UI components that we require (selection tile, config form, etc).
Once implemented, this should be properly documented for the benefit of other project contributors (CONTRIBUTING.md).
IMPORTANT: This starts with a design proposal & review
The README states that you can download a .dmg file and use that to install this app, but the link provided just downloads a zip of the repo. How can I actually install this without having to package it myself?
Run tap in discovery mode and show feedback to user.
Acceptance criteria:
Define and implement a mechanism for executing containerized taps and targets.
Acceptance criteria:
Set up view for RedShift tap configuration.
Acceptance criteria:
Define and implement a mechanism for detecting and installing required Docker images on demand.
Acceptance criteria:
Set up view for tap installation.
Acceptance criteria:
Learn more: https://www.electron.build/auto-update/
I have a knot that uses the postgres tap and the data.world target. It runs great from KNOTS but when I generate an export package and attempt to sync from the Makefile, it fails. After a little digging, it appears that the postgres tap requires the use of the --catalog
argument, but Makefiles will always use --properties
; reference. The KNOTS sync command is able to handle such a situation; reference.
Run tap|target and display feedback to user.
Acceptance criteria:
Initially, error handling should be limited to displaying an error message and allowing users to retry or revisit configuration steps.
Set up knot execution screen.
Acceptance criteria:
Hi, error yelling back when trying to configure tap-adwords using Knots desktop:
suds.WebFault: Server raised fault: '[RequestError.UNSUPPORTED_VERSION @ ; trigger:'You are accessing an AdWords API version v201802 that has been discontinued.
seems like it's pulling from outdated file GET https://adwords.google.com/api/adwords/reportdownload/v201802/reportDefinition.xsd
The way we have implemented file operations makes the app prone to reoccurring bugs. This applies to any file in a knot, but let's take catalog.json
as an example, at any point it can live in ./
, ./configs
, ./{knot}/tap
or ./knots/{knot}/tap
(also, what ./
means, changes between dev and prod builds). Instead, I'd like us to change this so:
./knots/{knot}
./tmp/{uuid}
./knots/{knot}
./tmp
is garbage collected aggressively (e.g. when app is opened/closed, when wizard is entered/exited, etc)Allow users to move forwards and backwards through the knot configuration flow.
Acceptance criteria:
Define how Dockerfiles will be managed and images will be built, and implement that for tap-redshift and target-datadotworld.
Acceptance criteria:
Certain taps (mysql, postgres, oracle) support LOG_BASED
as the replication_method, in addition to INCREMENTAL
and FULL_TABLE
. We should study it to understand how the best way to introduce support for it.
Populate catalog configuration form with output from tap discovery.
Acceptance criteria:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.