# Servicex
To start your Phoenix server:
* Install dependencies with `mix deps.get`
* Create and migrate your database with `mix ecto.create && mix ecto.migrate`
* Start Phoenix endpoint with `mix phx.server`
Now you can visit [`localhost:4000`](http://localhost:4000) from your browser.
Ready to run in production? Please [check our deployment guides](http://www.phoenixframework.org/docs/deployment).
## Usage
add deps
```
{:servicex, "~> 0.0.1"},
```
mix deps.get
add Config
```
# Configures Guardian
config :servicex, Servicex.Authenticator,
issuer: "app_ex",
secret_key: "VlY6rTO8s+oM6/l4tPY0mmpKubd1zLEDSKxOjHA4r90ifZzCOYVY5IBEhdicZStw"
# Configures GuardianDB
config :guardian, Guardian.DB,
repo: AppEx.Repo,
schema_name: "guardian_tokens", # default
#token_types: ["refresh_token"], # store all token types if not set
sweep_interval: 60 # default: 60 minutes
```
add Servicex Repo
```
# Configures Servicex
config :app_ex, Servicex.Repo,
adapter: Ecto.Adapters.Postgres,
username: "postgres",
password: "postgres",
database: "otta_dev",
hostname: "localhost",
pool_size: 10
# Configures Servicex
config :servicex, Servicex.Repo,
adapter: Ecto.Adapters.Postgres,
username: "postgres",
password: "postgres",
database: "otta_dev",
hostname: "localhost",
pool_size: 10
```
add application.ex
```
# Define workers and child supervisors to be supervised
children = [
# Start the Ecto repository
supervisor(AppEx.Repo, []),
# Start the endpoint when the application starts
supervisor(AppExWeb.Endpoint, []),
# Start your own worker by calling: AppEx.Worker.start_link(arg1, arg2, arg3)
# worker(AppEx.Worker, [arg1, arg2, arg3]),
supervisor(Servicex.Repo, []), <-- add here
]
```
add router
```
defmodule AppExWeb.Router do
use AppExWeb, :router
use ServicexWeb, :router <-- add here
# pipline for Servicex add start.
pipeline :guardian_auth do
plug Servicex.AuthenticatePipeline
end
pipeline :grant_check do
plug Servicex.Plug.GrantChecker, repo: AppEx.Repo
end
# pipline for Servicex add start.
# routing for Servicex add start.
scope "/api", ServicexWeb do
pipe_through :api
post "sign-in", AuthenticatorController, :sign_in
end
scope "/api", ServicexWeb do
pipe_through [ :api, :guardian_auth] # Use the default browser stack
get "/user", UserController, :show_me
post "sign-out", AuthenticatorController, :sign_out
end
scope "/api/ops", ServicexWeb do
pipe_through [ :api, :guardian_auth, :grant_check]
resources "/users", UserController, except: [:edit, :new]
resources "/grants", GrantController, except: [:new, :edit]
end
# routing for Servicex add end.
```
## Learn more
* Official website: http://www.phoenixframework.org/
* Guides: http://phoenixframework.org/docs/overview
* Docs: https://hexdocs.pm/phoenix
* Mailing list: http://groups.google.com/group/phoenix-talk
* Source: https://github.com/phoenixframework/phoenix