Documentation ¶
Overview ¶
Package blacksmith is the package to create applications on top of Blacksmith.
Blacksmith is a low-code platform offering a complete and consistent approach for self-managed data engineering. Blacksmith allows software engineers to write low-code ETL using the Go language. It also allows data engineers to write templated SQL for TLT and database migrations on top of one or multiple databases.
Any team that is building — or think about building — a data engineering platform knows the tremendous amount of work needed to properly accomplish this mission. Think of Blacksmith as the central piece of your data engineering workflow, leading you to save months of customized and professional work.
A new application can be generated using the Blacksmith CLI:
$ blacksmith generate application --name <name> [--path <path>]
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type License ¶ added in v0.14.0
type License struct { // Key is the subscription license key. This information can also be set using // the environment variable `BLACKSMITH_LICENSE_KEY` Key string `json:"-"` // Token is the subscription license token. This information can also be set // using the environment variable `BLACKSMITH_LICENSE_TOKEN`. Token string `json:"-"` }
License holds the license details for using Blacksmith Enterprise Edition.
type Options ¶
type Options struct { // Logger allows you to use a logrus Logger across all Blacksmith adapters and // the application built on top of it. Logger *logrus.Logger `json:"-"` // Supervisor is the options passed to use the supervisor adapter. // The supervisor is optional. Supervisor *supervisor.Options `json:"supervisor"` // Wanderer is the options passed to use the wanderer adapter. // The wanderer is optional. Wanderer *wanderer.Options `json:"wanderer"` // Store is the options passed to use the store adapter. Store *store.Options `json:"store"` // PubSub is the options passed to use the pubsub adapter. // The pusub is optional. PubSub *pubsub.Options `json:"pubsub"` // Gateway is the options passed to use the gateway service. Gateway *service.Options `json:"gateway"` // Scheduler is the options passed to use the scheduler service. Scheduler *service.Options `json:"scheduler"` // Sources is a slice of Blacksmith sources. Sources []source.Source `json:"-"` // Destinations is a slice of Blacksmith destinations. Destinations []destination.Destination `json:"-"` // License holds the license details for using Blacksmith Enterprise Edition. // This is not necessary for using the Standard Edition. License *License `json:"-"` }
Options is the options a user can pass to create a new application.
Directories ¶
Path | Synopsis |
---|---|
adapter
|
|
pubsub
Package pubsub provides the development kit for working with Publish / Subscribe mechanism between the gateway and scheduler services.
|
Package pubsub provides the development kit for working with Publish / Subscribe mechanism between the gateway and scheduler services. |
store
Package store provides the development kit for working with a database-as-a-queue, so the jobs queue can be persisted in a datastore.
|
Package store provides the development kit for working with a database-as-a-queue, so the jobs queue can be persisted in a datastore. |
supervisor
Package supervisor provides the development kit for running Blacksmith applications in a distributed environment.
|
Package supervisor provides the development kit for running Blacksmith applications in a distributed environment. |
wanderer
Package wanderer provides the development kit for working with database migrations.
|
Package wanderer provides the development kit for working with database migrations. |
Package destination provides the development kit for working with third-party services that will receive events from Blacksmith.
|
Package destination provides the development kit for working with third-party services that will receive events from Blacksmith. |
Package flow is a middleman between sources and destinations.
|
Package flow is a middleman between sources and destinations. |
helper
|
|
errors
Package errors provides the error interface used by Blacksmith and the adapters.
|
Package errors provides the error interface used by Blacksmith and the adapters. |
logger
Package logger contains tools such as defaults and hooks for working with logrus (github.com/sirupsen/logrus) correctly inside Blacksmith.
|
Package logger contains tools such as defaults and hooks for working with logrus (github.com/sirupsen/logrus) correctly inside Blacksmith. |
rest
Package rest provides utilities shared across the gateway and scheduler adapters to build REST APIs.
|
Package rest provides utilities shared across the gateway and scheduler adapters to build REST APIs. |
gateway
Package gateway provides the development kit for exposing a service receiving incoming events from registered triggers.
|
Package gateway provides the development kit for exposing a service receiving incoming events from registered triggers. |
scheduler
Package scheduler provides the development kit for working with a scheduler that receives events from the gateway and pubsub packages and, used in tandem with the store package, is in charge of the reliability of the event delivery to destinations.
|
Package scheduler provides the development kit for working with a scheduler that receives events from the gateway and pubsub packages and, used in tandem with the store package, is in charge of the reliability of the event delivery to destinations. |
Package source provides the development kit for extracting data from cloud services, databases, or any kind of application able to send data or push notifications.
|
Package source provides the development kit for extracting data from cloud services, databases, or any kind of application able to send data or push notifications. |
Package version provides the version details of Blacksmith alongside the Go version used to run the application.
|
Package version provides the version details of Blacksmith alongside the Go version used to run the application. |
Package warehouse lets a Blacksmith source or destination be considered as a data warehouse.
|
Package warehouse lets a Blacksmith source or destination be considered as a data warehouse. |