Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@
language: go

go:
- 1.8
- 1.9
- 1.11.1

env:
- GO111MODULE=on

services:
- docker
Expand Down
4 changes: 3 additions & 1 deletion CONTRIBUTING.md
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@ please read the [code of conduct](CODE_OF_CONDUCT.md).

## Setup

> Install Go and Glide https://github.com/Masterminds/glide
> Install Go 1.11.1
> Install Docker to run tests

GoTrue uses the Go Modules support built into Go 1.11 to build. The easiest is to clone GoTrue in a directory outside of GOPATH, as in the following example:

```sh
$ git clone https://github.com/netlify/gotrue
$ cd gotrue
Expand Down
26 changes: 18 additions & 8 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,15 +1,25 @@
FROM golang:1.9.2
FROM golang:alpine as build
ENV GO111MODULE=on
ENV CGO_ENABLED=0
ENV GOOS=linux

RUN apk add --no-cache make git

WORKDIR /go/src/github.com/netlify/gotrue
COPY . /go/src/github.com/netlify/gotrue/
COPY . /go/src/github.com/netlify/gotrue

RUN make deps build
RUN go build -a -installsuffix cgo -o gotrue


FROM alpine:3.7
RUN adduser -D -u 1000 netlify

RUN apk add --no-cache ca-certificates
RUN adduser -D -u 1000 netlify && mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2
COPY --from=0 /go/src/github.com/netlify/gotrue/gotrue /usr/local/bin/gotrue
COPY --from=0 /go/src/github.com/netlify/gotrue/migrations /usr/local/etc/gotrue/migrations/
RUN chown netlify:netlify /usr/local/bin/gotrue && chown -R netlify:netlify /usr/local/etc/gotrue
COPY --from=build /go/src/github.com/netlify/gotrue/gotrue /usr/local/bin/gotrue
COPY --from=build /go/src/github.com/netlify/gotrue/migrations /usr/local/etc/gotrue/migrations/

USER netlify
ENV GOTRUE_DB_MIGRATIONS_PATH /usr/local/etc/gotrue/migrations
CMD ["gotrue"]

USER netlify
CMD ["gotrue"]
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ build: ## Build the binary.

deps: ## Install dependencies.
@go get -u github.com/gobuffalo/pop/soda
@go get -u github.com/golang/lint/golint
@go get -u github.com/Masterminds/glide && glide install
@go get -u golang.org/x/lint/golint
@go mod download

image: ## Build the Docker image.
docker build .
Expand Down
2 changes: 1 addition & 1 deletion api/admin.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
"github.com/go-chi/chi"
"github.com/netlify/gotrue/models"
"github.com/netlify/gotrue/storage"
uuid "github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"
)

type adminUserParams struct {
Expand Down
2 changes: 1 addition & 1 deletion api/admin_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
jwt "github.com/dgrijalva/jwt-go"
"github.com/netlify/gotrue/conf"
"github.com/netlify/gotrue/models"
uuid "github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
Expand Down
2 changes: 1 addition & 1 deletion api/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
"github.com/netlify/gotrue/storage"
"github.com/netlify/netlify-commons/graceful"
"github.com/rs/cors"
uuid "github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"
"github.com/sebest/xff"
"github.com/sirupsen/logrus"
)
Expand Down
2 changes: 1 addition & 1 deletion api/api_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
"github.com/netlify/gotrue/models"
"github.com/netlify/gotrue/storage"
"github.com/netlify/gotrue/storage/test"
"github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"
"github.com/stretchr/testify/require"
)

Expand Down
2 changes: 1 addition & 1 deletion api/audit_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
jwt "github.com/dgrijalva/jwt-go"
"github.com/netlify/gotrue/conf"
"github.com/netlify/gotrue/models"
uuid "github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
Expand Down
2 changes: 1 addition & 1 deletion api/context.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
jwt "github.com/dgrijalva/jwt-go"
"github.com/netlify/gotrue/conf"
"github.com/netlify/gotrue/models"
uuid "github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"
)

type contextKey string
Expand Down
6 changes: 3 additions & 3 deletions api/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
"runtime/debug"
)

var oauthErrorMap map[int]string = map[int]string{
var oauthErrorMap = map[int]string{
http.StatusBadRequest: "invalid_request",
http.StatusUnauthorized: "unauthorized_client",
http.StatusForbidden: "access_denied",
Expand Down Expand Up @@ -39,7 +39,7 @@ func (e *OAuthError) WithInternalError(err error) *OAuthError {

// WithInternalMessage adds internal message information to the error
func (e *OAuthError) WithInternalMessage(fmtString string, args ...interface{}) *OAuthError {
e.InternalMessage = fmt.Sprintf(fmtString, args)
e.InternalMessage = fmt.Sprintf(fmtString, args...)
return e
}

Expand Down Expand Up @@ -111,7 +111,7 @@ func (e *HTTPError) WithInternalError(err error) *HTTPError {

// WithInternalMessage adds internal message information to the error
func (e *HTTPError) WithInternalMessage(fmtString string, args ...interface{}) *HTTPError {
e.InternalMessage = fmt.Sprintf(fmtString, args)
e.InternalMessage = fmt.Sprintf(fmtString, args...)
return e
}

Expand Down
6 changes: 3 additions & 3 deletions api/external.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
"github.com/netlify/gotrue/api/provider"
"github.com/netlify/gotrue/models"
"github.com/netlify/gotrue/storage"
uuid "github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"
"github.com/sirupsen/logrus"
)

Expand Down Expand Up @@ -96,7 +96,7 @@ func (a *API) internalExternalProviderCallback(w http.ResponseWriter, r *http.Re
}
userData = samlUserData
} else {
oAuthUserData, err := a.oAuthCallback(r, ctx, providerType)
oAuthUserData, err := a.oAuthCallback(ctx, r, providerType)
if err != nil {
return err
}
Expand Down Expand Up @@ -135,7 +135,7 @@ func (a *API) internalExternalProviderCallback(w http.ResponseWriter, r *http.Re
}
}

user, terr = a.signupNewUser(tx, ctx, params)
user, terr = a.signupNewUser(ctx, tx, params)
if terr != nil {
return terr
}
Expand Down
2 changes: 1 addition & 1 deletion api/external_oauth.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ func (a *API) loadOAuthState(w http.ResponseWriter, r *http.Request) (context.Co
return a.loadExternalState(ctx, state)
}

func (a *API) oAuthCallback(r *http.Request, ctx context.Context, providerType string) (*provider.UserProvidedData, error) {
func (a *API) oAuthCallback(ctx context.Context, r *http.Request, providerType string) (*provider.UserProvidedData, error) {
rq := r.URL.Query()

extError := rq.Get("error")
Expand Down
2 changes: 1 addition & 1 deletion api/external_saml_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import (
"github.com/netlify/gotrue/models"
"github.com/russellhaering/gosaml2/types"
dsig "github.com/russellhaering/goxmldsig"
uuid "github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
)
Expand Down
2 changes: 1 addition & 1 deletion api/external_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
jwt "github.com/dgrijalva/jwt-go"
"github.com/netlify/gotrue/conf"
"github.com/netlify/gotrue/models"
uuid "github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
)
Expand Down
2 changes: 1 addition & 1 deletion api/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
"github.com/netlify/gotrue/models"
"github.com/netlify/gotrue/storage"
"github.com/pkg/errors"
"github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"
)

func addRequestID(globalConfig *conf.GlobalConfiguration) middlewareHandler {
Expand Down
2 changes: 1 addition & 1 deletion api/hook_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
"github.com/netlify/gotrue/conf"
"github.com/netlify/gotrue/models"
"github.com/netlify/gotrue/storage/test"
uuid "github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
Expand Down
6 changes: 3 additions & 3 deletions api/hooks.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import (

jwt "github.com/dgrijalva/jwt-go"
"github.com/pkg/errors"
uuid "github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"
"github.com/sirupsen/logrus"

"github.com/netlify/gotrue/conf"
Expand All @@ -34,7 +34,7 @@ const (
LoginEvent = "login"
)

var defaultTimeout time.Duration = time.Second * 5
var defaultTimeout = time.Second * 5

type webhookClaims struct {
jwt.StandardClaims
Expand Down Expand Up @@ -103,7 +103,7 @@ func (w *Webhook) trigger() (io.ReadCloser, error) {
// timed out - try again?
if i == w.Retries-1 {
closeBody(rsp)
return nil, httpError(http.StatusGatewayTimeout, "Failed to perform webhook in time frame (%d seconds)", timeout.Seconds())
return nil, httpError(http.StatusGatewayTimeout, "Failed to perform webhook in time frame (%v seconds)", timeout.Seconds())
}
hooklog.Info("Request timed out")
continue
Expand Down
2 changes: 1 addition & 1 deletion api/instance.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
"github.com/netlify/gotrue/conf"
"github.com/netlify/gotrue/models"
"github.com/pkg/errors"
"github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"
)

func (a *API) loadInstance(w http.ResponseWriter, r *http.Request) (context.Context, error) {
Expand Down
2 changes: 1 addition & 1 deletion api/instance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
"net/http/httptest"
"testing"

"github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"

"github.com/netlify/gotrue/conf"
"github.com/netlify/gotrue/models"
Expand Down
2 changes: 1 addition & 1 deletion api/invite.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ func (a *API) Invite(w http.ResponseWriter, r *http.Request) error {
Aud: aud,
Provider: "email",
}
user, err = a.signupNewUser(tx, ctx, &signupParams)
user, err = a.signupNewUser(ctx, tx, &signupParams)
if err != nil {
return err
}
Expand Down
2 changes: 1 addition & 1 deletion api/invite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
jwt "github.com/dgrijalva/jwt-go"
"github.com/netlify/gotrue/conf"
"github.com/netlify/gotrue/models"
uuid "github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
Expand Down
2 changes: 1 addition & 1 deletion api/middleware.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (

jwt "github.com/dgrijalva/jwt-go"
"github.com/netlify/gotrue/models"
uuid "github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"
)

const (
Expand Down
2 changes: 1 addition & 1 deletion api/provider/saml.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import (
saml2 "github.com/russellhaering/gosaml2"
"github.com/russellhaering/gosaml2/types"
dsig "github.com/russellhaering/goxmldsig"
uuid "github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"
"golang.org/x/oauth2"
)

Expand Down
2 changes: 1 addition & 1 deletion api/recover_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (

"github.com/netlify/gotrue/conf"
"github.com/netlify/gotrue/models"
uuid "github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
Expand Down
4 changes: 2 additions & 2 deletions api/signup.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ func (a *API) Signup(w http.ResponseWriter, r *http.Request) error {
}
} else {
params.Provider = "email"
user, terr = a.signupNewUser(tx, ctx, params)
user, terr = a.signupNewUser(ctx, tx, params)
if terr != nil {
return terr
}
Expand Down Expand Up @@ -93,7 +93,7 @@ func (a *API) Signup(w http.ResponseWriter, r *http.Request) error {
return sendJSON(w, http.StatusOK, user)
}

func (a *API) signupNewUser(conn *storage.Connection, ctx context.Context, params *SignupParams) (*models.User, error) {
func (a *API) signupNewUser(ctx context.Context, conn *storage.Connection, params *SignupParams) (*models.User, error) {
instanceID := getInstanceID(ctx)
config := a.getConfig(ctx)

Expand Down
2 changes: 1 addition & 1 deletion api/signup_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
jwt "github.com/dgrijalva/jwt-go"
"github.com/netlify/gotrue/conf"
"github.com/netlify/gotrue/models"
uuid "github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
Expand Down
5 changes: 3 additions & 2 deletions api/token.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
"github.com/netlify/gotrue/storage"
)

// GoTrueClaims is a struct thats used for JWT claims
type GoTrueClaims struct {
jwt.StandardClaims
Email string `json:"email"`
Expand Down Expand Up @@ -88,7 +89,7 @@ func (a *API) ResourceOwnerPasswordGrant(ctx context.Context, w http.ResponseWri

if cookie != "" && config.Cookie.Duration > 0 {
if terr = a.setCookieToken(config, token.Token, cookie == useSessionCookie, w); terr != nil {
return internalServerError("Failed to set JWT cookie", terr)
return internalServerError("Failed to set JWT cookie. %s", terr)
}
}
return nil
Expand Down Expand Up @@ -145,7 +146,7 @@ func (a *API) RefreshTokenGrant(ctx context.Context, w http.ResponseWriter, r *h

if cookie != "" && config.Cookie.Duration > 0 {
if terr = a.setCookieToken(config, tokenString, cookie == useSessionCookie, w); terr != nil {
return internalServerError("Failed to set JWT cookie", terr)
return internalServerError("Failed to set JWT cookie. %s", terr)
}
}
return nil
Expand Down
2 changes: 1 addition & 1 deletion api/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (

"github.com/netlify/gotrue/models"
"github.com/netlify/gotrue/storage"
uuid "github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"
)

// UserUpdateParams parameters for updating a user
Expand Down
2 changes: 1 addition & 1 deletion api/user_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (

"github.com/netlify/gotrue/conf"
"github.com/netlify/gotrue/models"
uuid "github.com/satori/go.uuid"
"github.com/gobuffalo/uuid"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
Expand Down
2 changes: 1 addition & 1 deletion api/verify.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ func (a *API) Verify(w http.ResponseWriter, r *http.Request) error {

if cookie != "" && config.Cookie.Duration > 0 {
if terr = a.setCookieToken(config, token.Token, cookie == useSessionCookie, w); terr != nil {
return internalServerError("Failed to set JWT cookie", terr)
return internalServerError("Failed to set JWT cookie. %s", terr)
}
}
return nil
Expand Down
Loading