diff --git a/Dockerfile b/Dockerfile index ebc1aea..b77b8bb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,13 +21,15 @@ RUN apk add build-base &&\ make build-dashboard FROM alpine:latest -WORKDIR /root/ +RUN adduser -D -h /authorizer -u 1000 -k /dev/null authorizer +WORKDIR /authorizer RUN mkdir app dashboard -COPY --from=node-builder /authorizer/app/build app/build -COPY --from=node-builder /authorizer/app/favicon_io app/favicon_io -COPY --from=node-builder /authorizer/dashboard/build dashboard/build -COPY --from=node-builder /authorizer/dashboard/favicon_io dashboard/favicon_io -COPY --from=go-builder /authorizer/build build +COPY --from=node-builder --chown=nobody:nobody /authorizer/app/build app/build +COPY --from=node-builder --chown=nobody:nobody /authorizer/app/favicon_io app/favicon_io +COPY --from=node-builder --chown=nobody:nobody /authorizer/dashboard/build dashboard/build +COPY --from=node-builder --chown=nobody:nobody /authorizer/dashboard/favicon_io dashboard/favicon_io +COPY --from=go-builder --chown=nobody:nobody /authorizer/build build COPY templates templates EXPOSE 8080 +USER authorizer CMD [ "./build/server" ] diff --git a/README.md b/README.md index 2f35fbf..899fd7b 100644 --- a/README.md +++ b/README.md @@ -29,13 +29,15 @@ - ✅ OAuth2 and OpenID compatible APIs - ✅ APIs to update profile securely - ✅ Forgot password flow using email -- ✅ Social logins (Google, Github, Facebook, more coming soon) +- ✅ Social logins (Google, Github, Facebook, LinkedIn, Apple more coming soon) - ✅ Role-based access management - ✅ Password-less login with magic link login +- ✅ Multi factor authentication +- ✅ Email templating +- ✅ Webhooks ## Roadmap -- 2 Factor authentication - VueJS SDK - Svelte SDK - React Native SDK diff --git a/app/package-lock.json b/app/package-lock.json index 26598e3..7397a16 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@authorizerdev/authorizer-react": "^0.26.0-beta.0", + "@authorizerdev/authorizer-react": "^1.0.0", "@types/react": "^17.0.15", "@types/react-dom": "^17.0.9", "esbuild": "^0.12.17", @@ -26,22 +26,22 @@ } }, "node_modules/@authorizerdev/authorizer-js": { - "version": "0.17.0-beta.1", - "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-js/-/authorizer-js-0.17.0-beta.1.tgz", - "integrity": "sha512-jUlFUrs4Ys6LZ5hclPeRt84teygi+bA57d/IpV9GAqOrfifv70jkFeDln4+Bs0mZk74el23Xn+DR9380mqE4Cg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-js/-/authorizer-js-1.0.0.tgz", + "integrity": "sha512-TtXA8y06CIZ5f+nk1tgPiSpGR9neCkGHtmKLqGWjWPdObDfekRU5qMtpC2S2uEljAI53mnueLZKmbd9hrReTag==", "dependencies": { - "node-fetch": "^2.6.1" + "cross-fetch": "^3.1.5" }, "engines": { "node": ">=10" } }, "node_modules/@authorizerdev/authorizer-react": { - "version": "0.26.0-beta.0", - "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-react/-/authorizer-react-0.26.0-beta.0.tgz", - "integrity": "sha512-YfyiGYBmbsp3tLWIxOrOZ/hUTCmdMXVE9SLE8m1xsFsxzJJlUhepp0AMahSbH5EyLj5bchOhOw/rzgpnDZDvMw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-react/-/authorizer-react-1.0.0.tgz", + "integrity": "sha512-lXckUe46LTcH+hFxIxPEewQR1/ktd2awoqZsMZZaa0AjQJoekJaUcouBuX0F66VyQG0qezuyEQrye0Z93Ffgug==", "dependencies": { - "@authorizerdev/authorizer-js": "^0.17.0-beta.1", + "@authorizerdev/authorizer-js": "^1.0.0", "final-form": "^4.20.2", "react-final-form": "^6.5.3", "styled-components": "^5.3.0" @@ -404,6 +404,14 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dependencies": { + "node-fetch": "2.6.7" + } + }, "node_modules/css-color-keywords": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", @@ -852,19 +860,19 @@ }, "dependencies": { "@authorizerdev/authorizer-js": { - "version": "0.17.0-beta.1", - "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-js/-/authorizer-js-0.17.0-beta.1.tgz", - "integrity": "sha512-jUlFUrs4Ys6LZ5hclPeRt84teygi+bA57d/IpV9GAqOrfifv70jkFeDln4+Bs0mZk74el23Xn+DR9380mqE4Cg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-js/-/authorizer-js-1.0.0.tgz", + "integrity": "sha512-TtXA8y06CIZ5f+nk1tgPiSpGR9neCkGHtmKLqGWjWPdObDfekRU5qMtpC2S2uEljAI53mnueLZKmbd9hrReTag==", "requires": { - "node-fetch": "^2.6.1" + "cross-fetch": "^3.1.5" } }, "@authorizerdev/authorizer-react": { - "version": "0.26.0-beta.0", - "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-react/-/authorizer-react-0.26.0-beta.0.tgz", - "integrity": "sha512-YfyiGYBmbsp3tLWIxOrOZ/hUTCmdMXVE9SLE8m1xsFsxzJJlUhepp0AMahSbH5EyLj5bchOhOw/rzgpnDZDvMw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-react/-/authorizer-react-1.0.0.tgz", + "integrity": "sha512-lXckUe46LTcH+hFxIxPEewQR1/ktd2awoqZsMZZaa0AjQJoekJaUcouBuX0F66VyQG0qezuyEQrye0Z93Ffgug==", "requires": { - "@authorizerdev/authorizer-js": "^0.17.0-beta.1", + "@authorizerdev/authorizer-js": "^1.0.0", "final-form": "^4.20.2", "react-final-form": "^6.5.3", "styled-components": "^5.3.0" @@ -1161,6 +1169,14 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "requires": { + "node-fetch": "2.6.7" + } + }, "css-color-keywords": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", diff --git a/app/package.json b/app/package.json index c3234c9..57bed89 100644 --- a/app/package.json +++ b/app/package.json @@ -11,7 +11,7 @@ "author": "Lakhan Samani", "license": "ISC", "dependencies": { - "@authorizerdev/authorizer-react": "^0.26.0-beta.0", + "@authorizerdev/authorizer-react": "^1.0.0", "@types/react": "^17.0.15", "@types/react-dom": "^17.0.9", "esbuild": "^0.12.17", diff --git a/server/email/utils.go b/server/email/utils.go deleted file mode 100644 index 8774a6e..0000000 --- a/server/email/utils.go +++ /dev/null @@ -1 +0,0 @@ -package email