README.md
# KantaSync Plugin
This plugin for [Kanta](https://github.com/curiosum-dev/kanta) allows easily synchronizing translations from your dev/staging environment, directly into the production.
## Installation
Add KantaSync plugin to your deps list:
```elixir
def deps do
[
{:kanta_sync_plugin, "~> 0.1.0"}
]
end
```
Create a new migration file and add the KantaSync migrations setup:
```elixir
defmodule KantaTest.Repo.Migrations.AddKantaSyncTables do
use Ecto.Migration
def up do
Kanta.Sync.Migration.up(version: 1)
end
def down do
Kanta.Sync.Migration.down(version: 1)
end
end
```
KantaSync plugin creates table `kanta_sync_information` where information about the last fetch from the production is stored, to send only necessary changes instead of a full translations list when synchronizing.
Make sure that you have the Kanta API endpoint configured:
```elixir
scope "/" do
kanta_api("/kanta-api")
end
```
## Environment variables
- `KANTA_API_ENDPOINT`
Full path to Kanta API endpoint.
Example: `KANTA_API_ENDPOINT=https://kanta.curiosum.com/kanta-api`
- `KANTA_SECRET_TOKEN`
Secret token allowing communication between production and staging/dev environments. Should be generated with `mix phx.gen.secret 256`.
Both environments must have the same `KANTA_SECRET_TOKEN` environment variables. You can also disable default authorization mechanism and use your own, by passing `disable_api_authorization: true` option into Kanta's config.