- added `js` alias for `goja` transform function [#335](https://github.com/compose/transporter/pull/335)
-`init` command will now prompt user when `pipeline.js` file already exists [#336](https://github.com/compose/transporter/pull/336)
### Bugfixes
- fixed mongodb, rabbitmq, and rethinkdb adaptors from not trying to read from a file when provided in the `ca_certs` field [#334](https://github.com/compose/transporter/pull/334)
## v0.3.0 [2017-03-21]
### Breaking changes
***PLEASE READ***
Transporter no longer requires a YAML file. All configuration is in the JS file where nodes are defined and a new DSL has been developed. Run the `init` command to see the new changes.
- if using transporter as a library, all packages have been moved out of `pkg` to the top-level
-`eval` command removed
-`list` command removed
- the `namespace` parameter now only expects a single part (the regexp filter), all adaptors have been updated to pull the "database name" from the provided URI
### Features
- NEW RabbitMQ adaptor [#298](https://github.com/compose/transporter/pull/298)
- MongoDB adaptor supports per collection query filter when needing to copy only a subset of data [#301](https://github.com/compose/transporter/pull/301)
-[goja](https://github.com/dop251/goja) added as an option for the JavaScript VM in transformers [#294](https://github.com/compose/transporter/pull/294)
- NEW [native functions](https://github.com/compose/transporter#native-functions)
### Bugfixes
## v0.2.2 [2017-03-20]
### Features
### Bugfixes
- attempted fix for mejson.S conversion to json column in postgres adaptor [#314](https://github.com/compose/transporter/issues/314)
## v0.2.1 [2017-03-07]
### Features
- added RethinkDB -> PostgreSQL integration test
### Bugfixes
- fixed connection leak in PostgreSQL client
## v0.2.0 [2017-02-28]
### Breaking changes
- The etcd adaptor was removed
### Features
- Integration tests are run weekly for the following pipelines:
1. MongoDB -> MongoDB
2. MongoDB -> Elasticsearch
3. MongoDB -> RethinkDB
- RethinkDB SSL support added in [#268](https://github.com/compose/transporter/pull/268)
-`transporter init [source] [sink]` command added in [#279](https://github.com/compose/transporter/pull/279)
### Bugfixes
- MongoDB adaptor could cause the pipeline to stop due to a concurrent flush operation, fixed via [#271](https://github.com/compose/transporter/pull/271)
- When being used as a library, several goroutines were leaking after the pipeline had stopped. Reported by @cognusion in [#265](https://github.com/compose/transporter/issues/265) and addressed via [#268](https://github.com/compose/transporter/pull/268) and [#280](https://github.com/compose/transporter/pull/280)
## v0.1.3 [2017-02-09]
### Breaking changes
- namespace processing no longer expects their the be a "db" portion (i.e. "database.collection")
but an attempt to maintain backwards compatibility is still there for the time being.
[#167](https://github.com/compose/transporter/issues/167) and [#159](https://github.com/compose/transporter/issues/159).
- properly detect oplog access when attempting to use the `tail` option on the MongoDB adaptor.
## v0.1.1 [2015-08-27]
This release contains the first step to getting savable state into adaptors for the ability to resume.
### Features
-[#116](https://github.com/compose/transporter/pull/116): Adaptor state phase 1, begins to address [#33](https://github.com/compose/transporter/issues/33)
This release contains several breaking changes but is a first step towards a stable API/DSL.
### Features
-[#95](https://github.com/compose/transporter/pull/95): add a Noop message type, and the ability to skip messages, fixes [#93](https://github.com/compose/transporter/issues/93)
-[#101](https://github.com/compose/transporter/pull/101): (Phase 1) Multi namespace support, addresses [#78](https://github.com/compose/transporter/issues/78) and [#23](https://github.com/compose/transporter/issues/23)
Transporter allows the user to configure a number of data adaptors as sources or sinks. These can be databases, files or other resources. Data is read from the sources, converted into a message format, and then send down to the sink where the message is converted into a writable format for its destination. The user can also create data transformations in JavaScript which can sit between the source and sink and manipulate or filter the message flow.
ABC allows the user to configure a number of data adaptors as sources or sinks. These can be databases, files or other resources. Data is read from the sources, converted into a message format, and then send down to the sink where the message is converted into a writable format for its destination. The user can also create data transformations in JavaScript which can sit between the source and sink and manipulate or filter the message flow.
Adaptors may be able to track changes as they happen in source data. This "tail" capability allows a Transporter to stay running and keep the sinks in sync.
Adaptors may be able to track changes as they happen in source data. This "tail" capability allows a ABC to stay running and keep the sinks in sync.
#### BETA Feature
As of release `v0.4.0`, transporter contains support for being able to resume operations
As of release `v0.4.0`, ABC contains support for being able to resume operations
after being stopped. The feature is disabled by default and can be enabled with the following:
- follow instructions on http://golang.org/doc/install
- VERY IMPORTANT: Go has a required directory structure which the GOPATH needs to point to. Instructions can be found on http://golang.org/doc/code.html or by typing `go help gopath` in terminal.
- setup the directory structure in $GOPATH
-`cd $GOPATH; mkdir src pkg bin`
- create the github.com path and compose `mkdir -p src/github.com/compose; cd src/github.com/compose`
- clone transporter `git clone https://github.com/compose/transporter; cd transporter`
- now you can build with `go build ./cmd/transporter/...`
At this point you should be able to run transporter via `$GOPATH/bin/transporter`, you may need to add $GOPATH to your PATH environment variable. Something along the lines of `export PATH="$GOPATH/bin:$PATH"` should work.
First step, download and install Go. Go to [https://golang.org/dl/](https://golang.org/dl/) and install the `go1.4.windows-amd64.msi ` file offered.
2) Install Git
Go supports multiple source code control systems and you need to get the tools to handle them. Refer to [https://github.com/golang/go/wiki/GoGetTools](https://github.com/golang/go/wiki/GoGetTools) for the canonical current list.
First and foremost, we need Git...
Go to [http://git-scm.com/downloads](http://git-scm.com/downloads) and download the Windows version. Install that. It's a good idea to select to option to put the Git Bash shell either on your desktop or somewhere equally accessible.
3) Install Mercurial
The other source code control tool you'll need for this build is Mercurial, so go to [http://mercurial.selenic.com/wiki/Download](http://mercurial.selenic.com/wiki/Download) and download `Mercurial-3.2.3 (64-bit msi)`.
4) Make directories
Start the Git Bash shell. We now need to make the go build hierachy:
```
mkdir go
```
We need to set the GOPATH environment variable. This is going to point at the directory we just made and lets Go locate other packages. We'll just set it temporarily here like so:
```
export GOPATH=`pwd`/go/
```
Nowe we can build the rest of the tree:
```
cd go
mkdir pkg bin src
cd src
mkdir github.com
cd github.com
mkdir compose
cd compose
```
5) Clone transporter
We now can download the transporter source into this directory
```
git clone https://github.com/compose/transporter
```
6) Get the dependencies
And with the source downloaded, we can go into the directory and ask it to download all the libraries it depends upon.
```
cd transporter
go get -a ./cmd/transporter
```
7) Build the transporter
Finally, we can issue the build command
```
go build -a ./cmd/transporter
```
and that should give us ```transporter.exe``` in the current directory.