diff --git a/go.mod b/go.mod index 020a888e7..034b5ee2c 100644 --- a/go.mod +++ b/go.mod @@ -6,18 +6,28 @@ require ( contrib.go.opencensus.io/exporter/jaeger v0.2.0 contrib.go.opencensus.io/exporter/ocagent v0.6.0 contrib.go.opencensus.io/exporter/zipkin v0.1.1 + github.com/coreos/etcd v3.3.18+incompatible // indirect + github.com/gogo/protobuf v1.3.1 // indirect + github.com/grpc-ecosystem/grpc-gateway v1.12.1 // indirect + github.com/lucas-clemente/quic-go v0.14.0 // indirect github.com/micro/cli v0.2.0 github.com/micro/go-micro v1.18.0 github.com/micro/micro v1.18.0 + github.com/nats-io/jwt v0.3.2 // indirect + github.com/onsi/ginkgo v1.10.3 // indirect github.com/openzipkin/zipkin-go v0.2.2 github.com/owncloud/ocis-graph v0.0.0-20191227120927-91e17d0cdeb1 github.com/owncloud/ocis-hello v0.0.0-20200104020928-c9b97a86a3e9 github.com/owncloud/ocis-konnectd v0.0.0-20191227185917-046fec203337 github.com/owncloud/ocis-ocs v0.0.0-20191224113758-20455a2e9013 - github.com/owncloud/ocis-phoenix v0.0.0-20200109152733-819c7bec7b70 + github.com/owncloud/ocis-phoenix v0.0.0-20200113080457-21e730fd76fa github.com/owncloud/ocis-pkg v1.2.1-0.20191217084055-eab942498596 - github.com/owncloud/ocis-reva v0.0.0-20191220070520-aabd71f6d16b + github.com/owncloud/ocis-reva v0.0.0-20200107084202-6cc46af428bf github.com/owncloud/ocis-webdav v0.0.0-20191227185841-c5c77e241249 github.com/spf13/viper v1.6.1 go.opencensus.io v0.22.2 + go.uber.org/atomic v1.5.1 // indirect + go.uber.org/multierr v1.4.0 // indirect + golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f // indirect + golang.org/x/tools v0.0.0-20191205225056-3393d29bb9fe // indirect ) diff --git a/go.sum b/go.sum index b7f3b1f03..7bbfc1f92 100644 --- a/go.sum +++ b/go.sum @@ -49,7 +49,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/GoogleCloudPlatform/cloudsql-proxy v0.0.0-20190605020000-c4ba1fdf4d36/go.mod h1:aJ4qN3TfrelA6NZ6AXsXRfmEVaYin3EDbSPJrKS8OXo= -github.com/Jeffail/gabs v1.4.0/go.mod h1:6xMvQMK4k33lb7GUUpaAPh6nKMmemQeg5d4gn7/bOXc= github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= @@ -105,6 +104,8 @@ github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN github.com/aws/aws-sdk-go v1.25.31/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.26.3 h1:szQdfJcUBAhQT0zZEx4sxoDuWb7iScoucxCiVxDmaBk= github.com/aws/aws-sdk-go v1.26.3/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.26.7 h1:ObjEnmzvSdYy8KVd3me7v/UMyCn81inLy2SyoIPoBkg= +github.com/aws/aws-sdk-go v1.26.7/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -121,10 +122,6 @@ github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBW github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA= github.com/bradfitz/iter v0.0.0-20140124041915-454541ec3da2/go.mod h1:PyRFw1Lt2wKX4ZVSQ2mk+PeDa1rxyObEDlApuIsUKuo= github.com/bradfitz/iter v0.0.0-20190303215204-33e6a9893b0c/go.mod h1:PyRFw1Lt2wKX4ZVSQ2mk+PeDa1rxyObEDlApuIsUKuo= -github.com/butonic/ldapserver v0.0.0-20181029101309-daacf7e8e416/go.mod h1:YDlLfPqM3s1bL6u5ubJqZHGPBKa+nBKJNcI/WzSzdKU= -github.com/butonic/ldapserver v0.0.0-20191209092749-8fb2e7a4a628/go.mod h1:e7mxHN5D0UWtmhNZCWwrJrh7hM7mp0lD5BCkgWX/NR0= -github.com/butonic/ldapserver v0.0.0-20191210075802-e693a1c5bba4/go.mod h1:L8QmErc0NLGLo/G26Drod/D3Wo59GSs3Y07ERAgh84I= -github.com/butonic/zerologr v0.0.0-20191210074216-d798ee237d84/go.mod h1:Jw3eYm4TLfPMNKzimBDxXceOJhFF7Oix/zd2PTK3UrM= github.com/bwmarrin/discordgo v0.19.0/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/bwmarrin/discordgo v0.20.1 h1:Ihh3/mVoRwy3otmaoPDUioILBJq4fdWkpsi83oj2Lmk= github.com/bwmarrin/discordgo v0.20.1/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= @@ -191,8 +188,12 @@ github.com/creack/pty v1.1.7 h1:6pwm8kMQKCmgUg0ZHTm5+/YvRK0s3THD/28+T6/kk4A= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/cs3org/go-cs3apis v0.0.0-20191128165347-19746c015c83 h1:9bcp1jc6+36XUfuOae/w0BVrbzeVKBp/OqhTfCal40U= github.com/cs3org/go-cs3apis v0.0.0-20191128165347-19746c015c83/go.mod h1:IsVGyZrOLUQD48JIhlM/xb3Vz6He5o2+W0ZTfUGY+IU= +github.com/cs3org/go-cs3apis v0.0.0-20191218073906-e3405ff6775e h1:cPcpOoPLdsIV2Bw1xMJCIw4ZAejtQqA6J0U56YHOJeQ= +github.com/cs3org/go-cs3apis v0.0.0-20191218073906-e3405ff6775e/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= github.com/cs3org/reva v0.0.2-0.20191217083445-dee8d1c71f95 h1:wrx5iQTS50W4gFDyYfR+kRuVlrSw4oXr22msH+uPjb0= github.com/cs3org/reva v0.0.2-0.20191217083445-dee8d1c71f95/go.mod h1:lwilkLiV0vnGiyypVxDJZUbGjnAzVo0cgDCKxy/eLpw= +github.com/cs3org/reva v0.0.2-0.20200113091553-573316b69083 h1:Xp7hPQErf6VZa+wLCpz+kNH/NF1MlB7nzWJFmmeJtjE= +github.com/cs3org/reva v0.0.2-0.20200113091553-573316b69083/go.mod h1:tQpaKA+gbZIxWfWjHazXK07EN9eHaB58x4I7HSu3VJw= github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -224,6 +225,7 @@ github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/exoscale/egoscale v0.18.1/go.mod h1:Z7OOdzzTOz1Q1PjQXumlz9Wn/CddH0zSYdCF3rnBKXE= @@ -263,10 +265,11 @@ github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-ldap/ldap v3.0.2+incompatible/go.mod h1:qfd9rJvER9Q0/D/Sqn1DfHRoBp40uXYvFoEVrNEPqRc= github.com/go-log/log v0.1.0 h1:wudGTNsiGzrD5ZjgIkVZ517ugi2XRe9Q/xRCzwEO4/U= github.com/go-log/log v0.1.0/go.mod h1:4mBwpdRMFLiuXZDCwU2lKQFsoSCo72j3HqBK9d81N2M= +github.com/go-log/log v0.2.0 h1:z8i91GBudxD5L3RmF0KVpetCbcGWAV7q1Tw1eRwQM9Q= +github.com/go-log/log v0.2.0/go.mod h1:xzCnwajcues/6w7lne3yK2QU7DBPW7kqbgPGG5AF65U= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= -github.com/go-logr/stdr v0.0.0-20190808155957-db4f46c40425/go.mod h1:NO1vneyJDqKVgJYnxhwXWWmQPOvNM391IG3H8ql3jiA= github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= @@ -303,7 +306,6 @@ github.com/golang/groupcache v0.0.0-20191002201903-404acd9df4cc h1:55rEp52jU6bky github.com/golang/groupcache v0.0.0-20191002201903-404acd9df4cc/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9 h1:uHTyIjqVhYRhLbJ8nIiOJHkEZZ+5YoOsAbD3sk82NiE= github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= @@ -473,13 +475,11 @@ github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/linode/linodego v0.10.0/go.mod h1:cziNP7pbvE3mXIPneHj0oRY8L1WtGEIKlZ8LANE4eXA= github.com/liquidweb/liquidweb-go v1.6.0/go.mod h1:UDcVnAMDkZxpw4Y7NOHkqoeiGacVLEIG/i5J9cyixzQ= -github.com/lor00x/goldap v0.0.0-20180618054307-a546dffdd1a3/go.mod h1:37YR9jabpiIxsb8X9VCIx8qFOjTDIIrIHHODa8C4gz0= github.com/lucas-clemente/quic-go v0.12.1/go.mod h1:UXJJPE4RfFef/xPO5wQm0tITK8gNfqwTxjbE7s3Vb8s= github.com/lucas-clemente/quic-go v0.13.1 h1:CxtJTXQIh2aboCPk0M6vf530XOov6DZjVBiSE3nSj8s= github.com/lucas-clemente/quic-go v0.13.1/go.mod h1:Vn3/Fb0/77b02SGhQk36KzOUmXgVpFfizUfW5WMaqyU= github.com/lucas-clemente/quic-go v0.14.0 h1:xmWt9+sRgvAAXmi2S9lrikUtNUPwxeOy400LD+I3Qw0= github.com/lucas-clemente/quic-go v0.14.0/go.mod h1:Vn3/Fb0/77b02SGhQk36KzOUmXgVpFfizUfW5WMaqyU= -github.com/lyft/protoc-gen-star v0.4.12/go.mod h1:mE8fbna26u7aEA2QCVvvfBU/ZrPgocG1206xAFPcs94= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= @@ -516,7 +516,6 @@ github.com/micro/go-micro v1.18.0 h1:gP70EZVHpJuUIT0YWth192JmlIci+qMOEByHm83XE9E github.com/micro/go-micro v1.18.0/go.mod h1:klwUJL1gkdY1MHFyz+fFJXn52dKcty4hoe95Mp571AA= github.com/micro/go-plugins v1.5.1 h1:swcFD7ynCTUo98APqIEIbPu2XMd6yVGTnI8PqdnCwOQ= github.com/micro/go-plugins v1.5.1/go.mod h1:jcxejzJCAMH731cQHbS/hncyKe0rxAbzKkibj8glad4= -github.com/micro/grpc-go v0.0.0-20190130160115-549af9fb4bf2/go.mod h1://clyXyptX/KfdauimE3DJIvC/TKOioMd9rb5blDZmI= github.com/micro/mdns v0.3.0 h1:bYycYe+98AXR3s8Nq5qvt6C573uFTDPIYzJemWON0QE= github.com/micro/mdns v0.3.0/go.mod h1:KJ0dW7KmicXU2BV++qkLlmHYcVv7/hHnbtguSWt9Aoc= github.com/micro/micro v1.16.0 h1:qCZV20WoTOtJ1IyLU/a0A0BMSertfu+iOj/2AJ4Uvrk= @@ -606,8 +605,6 @@ github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+ github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.7.1 h1:K0jcRCwNQM3vFGh1ppMtDh/+7ApJrjldlX8fA0jDTLQ= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= @@ -626,8 +623,6 @@ github.com/ory/fosite v0.30.2/go.mod h1:Lq9qQ9Sl6mcea2Tt8J7PU+wUeFYPZ+vg7N3zPVKG github.com/ory/go-convenience v0.1.0 h1:zouLKfF2GoSGnJwGq+PE/nJAE6dj2Zj5QlTgmMTsTS8= github.com/ory/go-convenience v0.1.0/go.mod h1:uEY/a60PL5c12nYz4V5cHY03IBmwIAEm8TWB0yn9KNs= github.com/ovh/go-ovh v0.0.0-20181109152953-ba5adb4cf014/go.mod h1:joRatxRJaZBsY3JAOEMcoOp05CnZzsx4scTxi95DHyQ= -github.com/owncloud/ocis-devldap v0.0.0-20191205143003-809a64c36b1e/go.mod h1:+m1W0stgQP8XEJM0nzTyRG3/u2Fwvv5IPrRrlMhJGPA= -github.com/owncloud/ocis-devldap v0.0.0-20191211134532-3663b31971b9/go.mod h1:EPl4nVGMcQsP0Ddz24BJlwaLPPfVdgJ8Of2mTDHE4Gg= github.com/owncloud/ocis-graph v0.0.0-20191227120927-91e17d0cdeb1 h1:Zamh3nQI2moI/rfbuNHwog0KXU9osNLVkUM2BfcHA0g= github.com/owncloud/ocis-graph v0.0.0-20191227120927-91e17d0cdeb1/go.mod h1:7fIggCksf10Nlu0KhU9U9KeY+v7n47OHLjWMRrNxlg8= github.com/owncloud/ocis-hello v0.0.0-20200104020928-c9b97a86a3e9 h1:BAQw8hKbjghqQL8yOHyZywHaT9YMyKxlGqkwx+/daKo= @@ -636,16 +631,16 @@ github.com/owncloud/ocis-konnectd v0.0.0-20191227185917-046fec203337 h1:ZGqMcrWZ github.com/owncloud/ocis-konnectd v0.0.0-20191227185917-046fec203337/go.mod h1:b9DxRrJvAsmFzoB/ETqNPAaRIGlkUwXSCM0Z7rF84m4= github.com/owncloud/ocis-ocs v0.0.0-20191224113758-20455a2e9013 h1:NZnmuAzcXmOM7AXgFVjdWFBQHzM1LpjXxaZOTriTe6U= github.com/owncloud/ocis-ocs v0.0.0-20191224113758-20455a2e9013/go.mod h1:uxMnXanRGabyExSbqGTkMTWVriv3HrdSivUfh2lxozE= -github.com/owncloud/ocis-phoenix v0.0.0-20200109152733-819c7bec7b70 h1:ARqN9hmp/2EojDgWXqAY+k7oDizJ9PzlKUczrCtTdkU= -github.com/owncloud/ocis-phoenix v0.0.0-20200109152733-819c7bec7b70/go.mod h1:xPa4BmtS+Hcsgx5veyfNxeLnjqitXJ7YRWLR2ZJg91A= +github.com/owncloud/ocis-phoenix v0.0.0-20200113080457-21e730fd76fa h1:SjMcrp6MvBss0QfCuqIOXj7xT2shzo9GuKhUagmwnLo= +github.com/owncloud/ocis-phoenix v0.0.0-20200113080457-21e730fd76fa/go.mod h1:xPa4BmtS+Hcsgx5veyfNxeLnjqitXJ7YRWLR2ZJg91A= github.com/owncloud/ocis-pkg v1.1.0/go.mod h1:EfbeXoe60Me2lB/AWjYl8UFNv4isqCPP6lokd5R7nyM= github.com/owncloud/ocis-pkg v1.2.0 h1:eP0AOSEXAgiblL2yOpNOmriKhDXN+mai+4belBJRkWU= github.com/owncloud/ocis-pkg v1.2.0/go.mod h1:EfbeXoe60Me2lB/AWjYl8UFNv4isqCPP6lokd5R7nyM= github.com/owncloud/ocis-pkg v1.2.1-0.20191216110718-ef1320072cd7/go.mod h1:YbsEi4rWRqnDpN1U8MDJ6Ys+cWn2lskTYgyKgOmCrFk= github.com/owncloud/ocis-pkg v1.2.1-0.20191217084055-eab942498596 h1:3aMNmuDCIdKsaa4YdVTQEBJMjGz8KiuIB/+xlJUCT3k= github.com/owncloud/ocis-pkg v1.2.1-0.20191217084055-eab942498596/go.mod h1:Wo0QfOmhadh2vNcUoQIsw2yaOT3zeftk+xaOOwP3y88= -github.com/owncloud/ocis-reva v0.0.0-20191220070520-aabd71f6d16b h1:hZResTC65ZTCR3ha1KALHll99ToKbEnZfkpvkE9MgKs= -github.com/owncloud/ocis-reva v0.0.0-20191220070520-aabd71f6d16b/go.mod h1:zFjvLZGrAEctL8MwIrEjuBp3zrjs+VuZrTfAfXANZ+k= +github.com/owncloud/ocis-reva v0.0.0-20200107084202-6cc46af428bf h1:JRJsRWRvLmxxR5f8I4tlkLlN1ALWY7Db9LoBndlR/cc= +github.com/owncloud/ocis-reva v0.0.0-20200107084202-6cc46af428bf/go.mod h1:wCErA+9UG1jHQa6EnS3gHY+5FGpTiUwfFfQzY+xZtpM= github.com/owncloud/ocis-webdav v0.0.0-20191227185841-c5c77e241249 h1:CuQ+tn5yTZHs2GgAI/VxgbuEnMtSuCPyuJucQB9usiI= github.com/owncloud/ocis-webdav v0.0.0-20191227185841-c5c77e241249/go.mod h1:2lMqOO/rcHqn5V4/W8pOSemqwnogUnrfBR5m6a/VZJc= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= @@ -754,6 +749,8 @@ github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= +github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= @@ -801,7 +798,6 @@ github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtX github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v0.0.0-20170224212429-dcecefd839c4/go.mod h1:50wTf68f99/Zt14pr046Tgt3Lp2vLyFZKzbFXTOabXw= github.com/vultr/govultr v0.1.4/go.mod h1:9H008Uxr/C4vFNGLqKx232C206GL0PBHzOP0809bGNA= -github.com/webhippie/protoc-gen-microweb v0.0.0-20191209132523-6ef5e3b3e9cc/go.mod h1:hUpH8ouhZm6bNiTOnLOH5hkPy3wTe2AWnulODUGAOiU= github.com/willf/bitset v1.1.9/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= @@ -874,12 +870,11 @@ golang.org/x/crypto v0.0.0-20190927123631-a832865fa7ad/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191108234033-bd318be0434a h1:R/qVym5WAxsZWQqZCwDY/8sdVKV1m1WgU4/S5IRQAzc= golang.org/x/crypto v0.0.0-20191108234033-bd318be0434a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd h1:GGJVjV8waZKRHrgwvtH66z9ZGVurTD1MT0n1Bb+q4aM= -golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876 h1:sKJQZMuxjOAR/Uo2LBfU90onWEf1dF4C+0hPJCc9Mpc= +golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -926,8 +921,6 @@ golang.org/x/net v0.0.0-20191014212845-da9a3fd4c582/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20191028085509-fe3aa8a45271/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191109021931-daa7c04131f5/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191112182307-2180aed22343/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191126235420-ef20fe5d7933/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191204025024-5ee1b9f4859a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191207000613-e7e4b65ae663 h1:Dd5RoEW+yQi+9DMybroBctIdyiwuNT7sJFMC27/6KxI= golang.org/x/net v0.0.0-20191207000613-e7e4b65ae663/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 h1:efeOvDhwQ29Dj3SdAV/MJf8oukgn+8D8WgaCaRMchF8= @@ -988,8 +981,8 @@ golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4 h1:Hynbrlo6LbYI3H1IqXpkVDOcX/3HiPdhVEuyj5a59RM= golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e h1:9vRrk9YW2BTzLP0VCB9ZDjU4cPqkg+IDWL7XgxA1yxQ= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200103143344-a1369afcdac7 h1:/W9OPMnnpmFXHYkcp2rQsbFUbRlRzfECQjmAFiOyHE8= +golang.org/x/sys v0.0.0-20200103143344-a1369afcdac7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1062,10 +1055,8 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a h1:Ob5/580gVHBJZgXnff1cZDbG+xLtMVE5mDRTe+nIsX4= google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115221424-83cc0476cb11/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191205163323-51378566eb59/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216205247-b31c10ee225f h1:0RYv5T9ZdroAqqfM2taEB0nJrArv0X1JpIdgUmY4xg8= -google.golang.org/genproto v0.0.0-20191216205247-b31c10ee225f/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb h1:ADPHZzpzM4tk4V4S5cnCrr5SwzvlrPRmqqCuJDB8UTs= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -1079,6 +1070,8 @@ google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.25.1 h1:wdKvqQk7IttEw92GoRyKG2IDrUIpgpj6H6m81yfeMW0= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= gopkg.in/DataDog/dd-trace-go.v1 v1.19.0/go.mod h1:DVp8HmDh8PuTu2Z0fVVlBsyWaC++fzwVCaGWylTe3tg= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= @@ -1102,6 +1095,8 @@ gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.44.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.51.1 h1:GyboHr4UqMiLUybYjd22ZjQIKEJEpgtLXtuGbR21Oho= +gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo= gopkg.in/jcmturner/dnsutils.v1 v1.0.1/go.mod h1:m3v+5svpVOhtFAP/wSz+yzh4Mc0Fg7eRhxkJMWSIz9Q= gopkg.in/jcmturner/goidentity.v3 v3.0.0/go.mod h1:oG2kH0IvSYNIu80dVAyu/yoefjq1mNfM5bm88whjWx4= @@ -1120,7 +1115,6 @@ gopkg.in/square/go-jose.v2 v2.1.9/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76 gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.3.1 h1:SK5KegNXmKmqE342YYN2qPHEnUYeoMiXXl1poUlI+o4= gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/square/go-jose.v2 v2.4.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98= gopkg.in/src-d/go-git-fixtures.v3 v3.5.0/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g= gopkg.in/src-d/go-git.v4 v4.13.1/go.mod h1:nx5NYcxdKxq5fpltdHnPa2Exj4Sx0EclMWZQbYDu2z8= diff --git a/pkg/command/phoenix_ocis.go b/pkg/command/phoenix_ocis.go index f3c335667..a681ed142 100644 --- a/pkg/command/phoenix_ocis.go +++ b/pkg/command/phoenix_ocis.go @@ -3,6 +3,8 @@ package command import ( + "os" + svcconfig "github.com/owncloud/ocis-phoenix/pkg/config" "github.com/owncloud/ocis/pkg/config" ) @@ -11,14 +13,21 @@ func configurePhoenix(cfg *config.Config) *svcconfig.Config { cfg.Phoenix.Log.Level = cfg.Log.Level cfg.Phoenix.Log.Pretty = cfg.Log.Pretty cfg.Phoenix.Log.Color = cfg.Log.Color - cfg.Phoenix.Tracing.Enabled = false - cfg.Phoenix.HTTP.Addr = "localhost:9100" - cfg.Phoenix.HTTP.Root = "/" + + if len(os.Getenv("PHOENIX_OIDC_METADATA_URL")) == 0 { + os.Setenv("PHOENIX_OIDC_METADATA_URL", "http://localhost:20080/.well-known/openid-configuration") + } + if len(os.Getenv("PHOENIX_OIDC_AUTHORITY")) == 0 { + os.Setenv("PHOENIX_OIDC_AUTHORITY", "http://localhost:20080") + } + if len(os.Getenv("PHOENIX_WEB_CONFIG_SERVER")) == 0 { + os.Setenv("PHOENIX_WEB_CONFIG_SERVER", "http://localhost:20080") + } cfg.Phoenix.Phoenix.Config.Apps = []string{ - "draw-io", + //"draw-io", "files", - "markdown-viewer", - "media-viewer", + "markdown-editor", + //"media-viewer", "pdf-viewer", } diff --git a/pkg/command/phoenix_simple.go b/pkg/command/phoenix_simple.go index 4066f22db..e56969635 100644 --- a/pkg/command/phoenix_simple.go +++ b/pkg/command/phoenix_simple.go @@ -3,6 +3,8 @@ package command import ( + "os" + svcconfig "github.com/owncloud/ocis-phoenix/pkg/config" "github.com/owncloud/ocis/pkg/config" ) @@ -11,15 +13,24 @@ func configurePhoenix(cfg *config.Config) *svcconfig.Config { cfg.Phoenix.Log.Level = cfg.Log.Level cfg.Phoenix.Log.Pretty = cfg.Log.Pretty cfg.Phoenix.Log.Color = cfg.Log.Color - cfg.Phoenix.Tracing.Enabled = false - cfg.Phoenix.HTTP.Addr = "localhost:9100" - cfg.Phoenix.HTTP.Root = "/" + + // TODO they will be overriden in the extensions service.Init(), tracked in https://github.com/owncloud/ocis/issues/81 + //cfg.Phoenix.Phoenix.Config.OpenIDConnect.Authority = "http://localhost:9135" + //cfg.Phoenix.Phoenix.Config.OpenIDConnect.MetadataURL = "http://localhost:9135/.well-known/openid-configuration" + + if len(os.Getenv("PHOENIX_OIDC_METADATA_URL")) == 0 { + os.Setenv("PHOENIX_OIDC_METADATA_URL", "http://localhost:9135/.well-known/openid-configuration") + } + if len(os.Getenv("PHOENIX_OIDC_AUTHORITY")) == 0 { + os.Setenv("PHOENIX_OIDC_AUTHORITY", "http://localhost:9135") + } + // disable built in apps cfg.Phoenix.Phoenix.Config.Apps = []string{} // enable ocis-hello extension cfg.Phoenix.Phoenix.Config.ExternalApps = []svcconfig.ExternalApp{ svcconfig.ExternalApp{ - Name: "hello", + ID: "hello", Path: "http://localhost:9105/hello.js", Config: map[string]interface{}{ "url": "http://localhost:9105", diff --git a/pkg/command/reva.go b/pkg/command/reva.go index 18520503d..070b796f6 100644 --- a/pkg/command/reva.go +++ b/pkg/command/reva.go @@ -1,5 +1,3 @@ -// +build !simple - package command import ( @@ -18,8 +16,10 @@ func RevaCommand(cfg *config.Config) cli.Command { Category: "Extensions", Flags: flagset.ServerWithConfig(cfg.Reva), Action: func(c *cli.Context) error { + scfg := configureReva(cfg) + return cli.HandleAction( - command.Server(cfg.Reva).Action, + command.Server(scfg).Action, c, ) }, diff --git a/pkg/command/reva_ocis.go b/pkg/command/reva_ocis.go new file mode 100644 index 000000000..b4d1f048b --- /dev/null +++ b/pkg/command/reva_ocis.go @@ -0,0 +1,533 @@ +// +build !simple + +package command + +import ( + svcconfig "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis/pkg/config" +) + +func configureReva(cfg *config.Config) *svcconfig.Config { + cfg.Reva.Log.Level = cfg.Log.Level + cfg.Reva.Log.Pretty = cfg.Log.Pretty + cfg.Reva.Log.Color = cfg.Log.Color + + // reva will use a global namespace, for that to work we need to start three storage providers + // - / for the root listing + // - /home which always points to the users home dir + // - /oc for a global view + // in addition to that we need a frontend with + // - an openid connect provider + // - the webdav api + // - the ocs api + // - the .well-know endpoint for oidc configuration + cfg.Reva.Reva.Configs = map[string]interface{}{ + "frontend": map[string]interface{}{ + "grpc": map[string]interface{}{ + "address": "0.0.0.0:20099", + "services": map[string]interface{}{ + "authprovider": map[string]interface{}{ + "auth_manager": "oidc", + "auth_managers": map[string]interface{}{ + "oidc": map[string]interface{}{ + "issuer": "http://localhost:20080", + }, + }, + }, + }, + "interceptors": map[string]interface{}{ + "auth": map[string]interface{}{ + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.Reva.JWTSecret, + }, + }, + }, + }, + }, + "http": map[string]interface{}{ + "address": "0.0.0.0:20080", + "middlewares": map[string]interface{}{ + "auth": map[string]interface{}{ + "gateway": "localhost:19000", + "credential_chain": []string{"basic", "bearer"}, + "token_strategy": "header", + "token_writer": "header", + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.Reva.JWTSecret, + }, + }, + }, + "cors": map[string]interface{}{ + "allowed_origins": []string{"*"}, + "allowed_methods": []string{ + "OPTIONS", + "GET", + "PUT", + "POST", + "DELETE", + "MKCOL", + "PROPFIND", + "PROPPATCH", + "MOVE", + "COPY", + "REPORT", + "SEARCH", + }, + "allowed_headers": []string{ + "Origin", + "Accept", + "Depth", + "Content-Type", + "X-Requested-With", + "Authorization", + "Ocs-Apirequest", + "If-Match", + "If-None-Match", + "Destination", + "Overwrite", + }, + "allow_credentials": true, + "options_passthrough": false, + }, + }, + "services": map[string]interface{}{ + "wellknown": map[string]interface{}{ + "issuer": "http://localhost:20080", + "authorization_endpoint": "http://localhost:20080/oauth2/auth", + "token_endpoint": "http://localhost:20080/oauth2/token", + "revocation_endpoint": "http://localhost:20080/oauth2/auth", + "introspection_endpoint": "http://localhost:20080/oauth2/introspect", + "userinfo_endpoint": "http://localhost:20080/oauth2/userinfo", + }, + "oidcprovider": map[string]interface{}{ + "prefix": "oauth2", + "gateway": "localhost:19000", + "issuer": "http://localhost:20080", + "clients": map[string]interface{}{ + "phoenix": map[string]interface{}{ + "id": "phoenix", + "redirect_uris": []string{"http://localhost:9100/oidc-callback.html", "http://localhost:9100/"}, + "grant_types": []string{"implicit", "refresh_token", "authorization_code", "password", "client_credentials"}, + "response_types": []string{"code"}, // use authorization code flow, see https://developer.okta.com/blog/2019/05/01/is-the-oauth-implicit-flow-dead for details + "scopes": []string{"openid", "profile", "email", "offline"}, + "public": true, // force PKCS for public clients + }, + // TODO add cli command for token fetching + "cli": map[string]interface{}{ + "id": "cli", + "client_secret": "$2a$10$IxMdI6d.LIRZPpSfEwNoeu4rY3FhDREsxFJXikcgdRRAStxUlsuEO", // = "foobar" + // use hardcoded port credentials for cli + "redirect_uris": []string{"http://localhost:18080/callback"}, + "grant_types": []string{"implicit", "refresh_token", "authorization_code", "password", "client_credentials"}, + "response_types": []string{"code"}, // use authorization code flow, see https://developer.okta.com/blog/2019/05/01/is-the-oauth-implicit-flow-dead for details + "scopes": []string{"openid", "profile", "email", "offline"}, + }, + }, + }, + "ocdav": map[string]interface{}{ + "prefix": "", + "chunk_folder": "/var/tmp/revad/chunks", + "gateway": "localhost:19000", + "files_namespace": "/", + "webdav_namespace": "/", + }, + "ocs": map[string]interface{}{ + "gateway": "localhost:19000", + "config": map[string]interface{}{ + "version": "1.8", + "website": "reva", + "host": "http://localhost:20080", + "contact": "admin@localhost", + "ssl": "false", + }, + "capabilities": map[string]interface{}{ + "capabilities": map[string]interface{}{ + "core": map[string]interface{}{ + "poll_interval": 60, + "webdav_root": "remote.php/webdav", + "status": map[string]interface{}{ + "installed": true, + "maintenance": false, + "needsDbUpgrade": false, + "version": "10.0.11.5", + "versionstring": "10.0.11", + "edition": "community", + "productname": "reva", + "hostname": "", + }, + }, + "checksums": map[string]interface{}{ + "supported_types": []string{"SHA256"}, + "preferred_upload_type": "SHA256", + }, + "files": map[string]interface{}{ + "private_links": false, + "bigfilechunking": false, + "blacklisted_files": []string{}, + "undelete": true, + "versioning": true, + }, + "dav": map[string]interface{}{ + "chunking": "1.0", + }, + "files_sharing": map[string]interface{}{ + "api_enabled": true, + "resharing": true, + "group_sharing": true, + "auto_accept_share": true, + "share_with_group_members_only": true, + "share_with_membership_groups_only": true, + "default_permissions": 22, + "search_min_length": 3, + "public": map[string]interface{}{ + "enabled": true, + "send_mail": true, + "social_share": true, + "upload": true, + "multiple": true, + "supports_upload_only": true, + "password": map[string]interface{}{ + "enforced": true, + "enforced_for": map[string]interface{}{ + "read_only": true, + "read_write": true, + "upload_only": true, + }, + }, + "expire_date": map[string]interface{}{ + "enabled": true, + }, + }, + "user": map[string]interface{}{ + "send_mail": true, + }, + "user_enumeration": map[string]interface{}{ + "enabled": true, + "group_members_only": true, + }, + "federation": map[string]interface{}{ + "outgoing": true, + "incoming": true, + }, + }, + "notifications": map[string]interface{}{ + "endpoints": []string{"list", "get", "delete"}, + }, + }, + "version": map[string]interface{}{ + "edition": "reva", + "major": 10, + "minor": 0, + "micro": 11, + "string": "10.0.11", + }, + }, + }, + }, + }, + }, + "gateway": map[string]interface{}{ + "grpc": map[string]interface{}{ + "address": "0.0.0.0:19000", + "interceptors": map[string]interface{}{ + "auth": map[string]interface{}{ + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.Reva.JWTSecret, + }, + }, + }, + }, + "services": map[string]interface{}{ + "gateway": map[string]interface{}{ + // registries + "authregistrysvc": "localhost:19000", + "storageregistrysvc": "localhost:19000", + "appregistrysvc": "localhost:19000", + // user metadata + "preferencessvc": "localhost:18000", + "userprovidersvc": "localhost:18000", + // sharing + "usershareprovidersvc": "localhost:17000", + "publicshareprovidersvc": "localhost:17000", + "ocmshareprovidersvc": "localhost:17000", + "commit_share_to_storage_grant": true, + // other + "datagateway": "http://localhost:19001/data", + "transfer_shared_secret": "replace-me-with-a-transfer-secret", + "transfer_expires": 6, // give it a moment + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.Reva.JWTSecret, + }, + }, + }, + "authregistry": map[string]interface{}{ + "driver": "static", + "drivers": map[string]interface{}{ + "static": map[string]interface{}{ + "rules": map[string]interface{}{ + "basic": "localhost:18000", + "bearer": "localhost:20099", + }, + }, + }, + }, + "storageregistry": map[string]interface{}{ + "driver": "static", + "drivers": map[string]interface{}{ + "static": map[string]interface{}{ + "rules": map[string]interface{}{ + "/home": "localhost:12000", + "/oc": "localhost:11000", + "123e4567-e89b-12d3-a456-426655440000": "localhost:11000", + "/": "localhost:11100", + "123e4567-e89b-12d3-a456-426655440001": "localhost:11100", + }, + }, + }, + }, + }, + }, + "http": map[string]interface{}{ + "address": "0.0.0.0:19001", + "middlewares": map[string]interface{}{ + "auth": map[string]interface{}{ + "gateway": "localhost:19000", + "credential_chain": []string{"basic", "bearer"}, + "token_strategy": "header", + "token_writer": "header", + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.Reva.JWTSecret, + }, + }, + }, + }, + "services": map[string]interface{}{ + "datagateway": map[string]interface{}{ + "prefix": "data", + "gateway": "", + "transfer_shared_secret": "replace-me-with-a-transfer-secret", + }, + }, + }, + }, + "shares": map[string]interface{}{ + "grpc": map[string]interface{}{ + "address": "0.0.0.0:17000", + "interceptors": map[string]interface{}{ + "auth": map[string]interface{}{ + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.Reva.JWTSecret, + }, + }, + }, + }, + "services": map[string]interface{}{ + "usershareprovider": map[string]interface{}{ + "driver": "memory", + }, + "publicshareprovider": map[string]interface{}{ + "driver": "memory", + }, + }, + }, + }, + "storage-home": map[string]interface{}{ + "grpc": map[string]interface{}{ + "address": "0.0.0.0:12000", + "interceptors": map[string]interface{}{ + "auth": map[string]interface{}{ + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.Reva.JWTSecret, + }, + }, + }, + }, + "services": map[string]interface{}{ + "storageprovider": map[string]interface{}{ + "driver": "owncloud", + "drivers": map[string]interface{}{ + "owncloud": map[string]interface{}{ + "datadirectory": "/var/tmp/reva/data", + }, + }, + "path_wrapper": "context", + "path_wrappers": map[string]interface{}{ + "context": map[string]interface{}{ + "prefix": "", + }, + }, + "mount_path": "/home", + "mount_id": "123e4567-e89b-12d3-a456-426655440000", + "expose_data_server": true, + "data_server_url": "http://localhost:12001/data", + "available_checksums": map[string]interface{}{ + "md5": 100, + "unset": 1000, + }, + }, + }, + }, + "http": map[string]interface{}{ + "address": "0.0.0.0:12001", + "middlewares": map[string]interface{}{ + "auth": map[string]interface{}{ + "gateway": "localhost:19000", + "credential_chain": []string{"basic", "bearer"}, + "token_strategy": "header", + "token_writer": "header", + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.Reva.JWTSecret, + }, + }, + }, + }, + "services": map[string]interface{}{ + "dataprovider": map[string]interface{}{ + "prefix": "data", + "driver": "owncloud", + "drivers": map[string]interface{}{ + "owncloud": map[string]interface{}{ + "datadirectory": "/var/tmp/reva/data", + }, + }, + "temp_folder": "/var/tmp/", + }, + }, + }, + }, + "storage-oc": map[string]interface{}{ + "grpc": map[string]interface{}{ + "address": "0.0.0.0:11000", + "interceptors": map[string]interface{}{ + "auth": map[string]interface{}{ + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.Reva.JWTSecret, + }, + }, + }, + }, + "services": map[string]interface{}{ + "storageprovider": map[string]interface{}{ + "driver": "owncloud", + "drivers": map[string]interface{}{ + "owncloud": map[string]interface{}{ + "datadirectory": "/var/tmp/reva/data", + }, + }, + "mount_path": "/oc", + "mount_id": "123e4567-e89b-12d3-a456-426655440000", + "expose_data_server": true, + "data_server_url": "http://localhost:11001/data", + "available_checksums": map[string]interface{}{ + "md5": 100, + "unset": 1000, + }, + }, + }, + }, + "http": map[string]interface{}{ + "address": "0.0.0.0:11001", + "middlewares": map[string]interface{}{ + "auth": map[string]interface{}{ + "gateway": "localhost:19000", + "credential_chain": []string{"basic", "bearer"}, + "token_strategy": "header", + "token_writer": "header", + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.Reva.JWTSecret, + }, + }, + }, + }, + "services": map[string]interface{}{ + "dataprovider": map[string]interface{}{ + "prefix": "data", + "driver": "owncloud", + "drivers": map[string]interface{}{ + "owncloud": map[string]interface{}{ + "datadirectory": "/var/tmp/reva/data", + }, + }, + "temp_folder": "/var/tmp/", + }, + }, + }, + }, + "storage-root": map[string]interface{}{ + "grpc": map[string]interface{}{ + "address": "0.0.0.0:11100", + "interceptors": map[string]interface{}{ + "auth": map[string]interface{}{ + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.Reva.JWTSecret, + }, + }, + }, + }, + "services": map[string]interface{}{ + "storageprovider": map[string]interface{}{ + "driver": "local", + "drivers": map[string]interface{}{ + "local": map[string]interface{}{ + "root": "/var/tmp/reva/root", + }, + }, + "mount_path": "/", + "mount_id": "123e4567-e89b-12d3-a456-426655440001", + "available_checksums": map[string]interface{}{ + "md5": 100, + "unset": 1000, + }, + }, + }, + }, + }, + "users": map[string]interface{}{ + "grpc": map[string]interface{}{ + "address": "0.0.0.0:18000", + "interceptors": map[string]interface{}{ + "auth": map[string]interface{}{ + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.Reva.JWTSecret, + }, + }, + }, + }, + "services": map[string]interface{}{ + "authprovider": map[string]interface{}{ + "auth_manager": "demo", + }, + "userprovider": map[string]interface{}{ + "driver": "demo", + }, + }, + }, + }, + } + + return cfg.Reva +} diff --git a/pkg/command/reva_simple.go b/pkg/command/reva_simple.go new file mode 100644 index 000000000..446a43bf6 --- /dev/null +++ b/pkg/command/reva_simple.go @@ -0,0 +1,263 @@ +// +build simple + +package command + +import ( + svcconfig "github.com/owncloud/ocis-reva/pkg/config" + "github.com/owncloud/ocis/pkg/config" +) + +func configureReva(cfg *config.Config) *svcconfig.Config { + cfg.Reva.Log.Level = cfg.Log.Level + cfg.Reva.Log.Pretty = cfg.Log.Pretty + cfg.Reva.Log.Color = cfg.Log.Color + + cfg.Reva.Reva.Configs = map[string]interface{}{ + "oidcprovider": map[string]interface{}{ + "core": map[string]interface{}{ + "max_cpus": cfg.Reva.Reva.MaxCPUs, + "tracing_enabled": cfg.Reva.Tracing.Enabled, + "tracing_endpoint": cfg.Reva.Tracing.Endpoint, + "tracing_collector": cfg.Reva.Tracing.Collector, + "tracing_service_name": cfg.Reva.Tracing.Service, + }, + "log": map[string]interface{}{ + "level": cfg.Reva.Reva.LogLevel, + //TODO mode = "console" # "console" or "json" + //TODO output = "./standalone.log" + }, + "http": map[string]interface{}{ + "network": cfg.Reva.Reva.HTTP.Network, + "address": cfg.Reva.Reva.HTTP.Addr, + "enabled_services": []string{ + "oidcprovider", + "wellknown", + "prometheus", + "ocs", // TODO remove when phoenix no longer tries to fetch the capabilities + }, + "enabled_middlewares": []string{ + "cors", + "auth", + }, + "middlewares": map[string]interface{}{ + "auth": map[string]interface{}{ + "gateway": cfg.Reva.Reva.GRPC.Addr, + "credential_chain": []string{"basic", "bearer"}, + "token_strategy": "header", + "token_writer": "header", + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.Reva.JWTSecret, + }, + }, + "skip_methods": []string{ + "/favicon.ico", + "/oauth2", + "/.well-known", + "/metrics", // for prometheus metrics + }, + }, + "cors": map[string]interface{}{ + "allowed_origins": []string{"*"}, + "allowed_methods": []string{ + "OPTIONS", + "GET", + "PUT", + "POST", + "DELETE", + "MKCOL", + "PROPFIND", + "PROPPATCH", + "MOVE", + "COPY", + "REPORT", + "SEARCH", + }, + "allowed_headers": []string{ + "Origin", + "Accept", + "Depth", + "Content-Type", + "X-Requested-With", + "Authorization", + "Ocs-Apirequest", + "If-Match", + "If-None-Match", + "Destination", + "Overwrite", + }, + "allow_credentials": true, + "options_passthrough": false, + }, + }, + "services": map[string]interface{}{ + // TODO investigate: service must be here as well, otherwise eg wellknown won't get started + // TODO we hardcoded the url because the config option is used to tell the server which address to bind to, + // which is 0.0.0.0:9135 by default, but the iss needs to use a hostname + "wellknown": map[string]interface{}{ + "prefix": ".well-known", + "issuer": "http://localhost:9135", + "authorization_endpoint": "http://localhost:9135/oauth2/auth", + "token_endpoint": "http://localhost:9135/oauth2/token", + "revocation_endpoint": "http://localhost:9135/oauth2/auth", + "introspection_endpoint": "http://localhost:9135/oauth2/introspect", + "userinfo_endpoint": "http://localhost:9135/oauth2/userinfo", + }, + "oidcprovider": map[string]interface{}{ + "prefix": "oauth2", + "gateway": cfg.Reva.Reva.GRPC.Addr, + "auth_type": "basic", + // TODO we hardcoded the url because the config option is used to tell the server which address to bind to, + // which is 0.0.0.0:9135 by default, but the iss needs to use a hostname + "issuer": "http://localhost:9135", + "clients": map[string]interface{}{ + "phoenix": map[string]interface{}{ + "id": "phoenix", + // use ocis port range for phoenix + // TODO should use the micro / ocis http gateway, but then it would no longer be able to run standalone + // IMO the ports should be fetched from the ocis registry anyway + "redirect_uris": []string{"http://localhost:9100/oidc-callback.html", "http://localhost:9100/"}, + "grant_types": []string{"implicit", "refresh_token", "authorization_code", "password", "client_credentials"}, + "response_types": []string{"code"}, // use authorization code flow, see https://developer.okta.com/blog/2019/05/01/is-the-oauth-implicit-flow-dead for details + "scopes": []string{"openid", "profile", "email", "offline"}, + "public": true, // force PKCS for public clients + }, + "cli": map[string]interface{}{ + "id": "cli", + "client_secret": "$2a$10$IxMdI6d.LIRZPpSfEwNoeu4rY3FhDREsxFJXikcgdRRAStxUlsuEO", // = "foobar" + // use hardcoded port credentials for cli + "redirect_uris": []string{"http://localhost:18080/callback"}, + "grant_types": []string{"implicit", "refresh_token", "authorization_code", "password", "client_credentials"}, + "response_types": []string{"code"}, // use authorization code flow, see https://developer.okta.com/blog/2019/05/01/is-the-oauth-implicit-flow-dead for details + "scopes": []string{"openid", "profile", "email", "offline"}, + }, + }, + }, + "ocs": map[string]interface{}{ + "prefix": "ocs", + "gateway": cfg.Reva.Reva.GRPC.Addr, + }, + }, + }, + "grpc": map[string]interface{}{ + "network": cfg.Reva.Reva.GRPC.Network, + "address": cfg.Reva.Reva.GRPC.Addr, + "enabled_services": []string{ + "authprovider", // provides basic auth + "userprovider", // provides user matadata (used to look up email, displayname etc after a login) + "gateway", // to lookup services and authenticate requests + "authregistry", // used by the gateway to look up auth providers + }, + "interceptors": map[string]interface{}{ + "auth": map[string]interface{}{ + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.Reva.JWTSecret, + }, + }, + "skip_methods": []string{ + // we need to allow calls that happen during authentication + "/cs3.auth.registry.v1beta1.RegistryAPI/GetAuthProvider", + "/cs3.auth.provider.v1beta1.ProviderAPI/Authenticate", + "/cs3.gateway.v1beta1.GatewayAPI/Authenticate", + "/cs3.identity.user.v1beta1.UserAPI/GetUser", + "/cs3.gateway.v1beta1.GatewayAPI/GetUser", + }, + }, + }, + "services": map[string]interface{}{ + "gateway": map[string]interface{}{ + "authregistrysvc": cfg.Reva.Reva.GRPC.Addr, + "storageregistrysvc": cfg.Reva.Reva.GRPC.Addr, + "appregistrysvc": cfg.Reva.Reva.GRPC.Addr, + "preferencessvc": cfg.Reva.Reva.GRPC.Addr, + "usershareprovidersvc": cfg.Reva.Reva.GRPC.Addr, + "publicshareprovidersvc": cfg.Reva.Reva.GRPC.Addr, + "ocmshareprovidersvc": cfg.Reva.Reva.GRPC.Addr, + "userprovidersvc": cfg.Reva.Reva.GRPC.Addr, + "commit_share_to_storage_grant": true, + "datagateway": "http://" + cfg.Reva.Reva.HTTP.Addr + "/data", + "transfer_shared_secret": "replace-me-with-a-transfer-secret", + "transfer_expires": 6, // give it a moment + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.Reva.JWTSecret, + }, + }, + }, + "authregistry": map[string]interface{}{ + "driver": "static", + "drivers": map[string]interface{}{ + "static": map[string]interface{}{ + "rules": map[string]interface{}{ + "basic": cfg.Reva.Reva.GRPC.Addr, + "bearer": "localhost:9138", + }, + }, + }, + }, + "authprovider": map[string]interface{}{ + "auth_manager": "demo", + "userprovidersvc": cfg.Reva.Reva.GRPC.Addr, + }, + "userprovider": map[string]interface{}{ + "driver": "demo", + }, + }, + }, + }, + "oidcauthprovider": map[string]interface{}{ + "core": map[string]interface{}{ + "max_cpus": cfg.Reva.Reva.MaxCPUs, + "tracing_enabled": cfg.Reva.Tracing.Enabled, + "tracing_endpoint": cfg.Reva.Tracing.Endpoint, + "tracing_collector": cfg.Reva.Tracing.Collector, + "tracing_service_name": cfg.Reva.Tracing.Service, + }, + "log": map[string]interface{}{ + "level": cfg.Reva.Reva.LogLevel, + //TODO mode = "console" # "console" or "json" + //TODO output = "./standalone.log" + }, + "grpc": map[string]interface{}{ + "network": cfg.Reva.Reva.GRPC.Network, + "address": "localhost:9138", // use another port + "enabled_services": []string{ + "authprovider", // provides oidc auth + }, + "interceptors": map[string]interface{}{ + "auth": map[string]interface{}{ + "token_manager": "jwt", + "token_managers": map[string]interface{}{ + "jwt": map[string]interface{}{ + "secret": cfg.Reva.Reva.JWTSecret, + }, + }, + "skip_methods": []string{ + "/cs3.auth.registry.v1beta1.RegistryAPI/GetAuthProvider", + "/cs3.auth.provider.v1beta1.ProviderAPI/Authenticate", + }, + }, + }, + "services": map[string]interface{}{ + "authprovider": map[string]interface{}{ + "auth_manager": "oidc", + "userprovidersvc": cfg.Reva.Reva.GRPC.Addr, + "auth_managers": map[string]interface{}{ + "oidc": map[string]interface{}{ + // TODO we hardcoded the url because the config option is used to tell the server which address to bind to, + // which is 0.0.0.0:9135 by default, but the iss needs to use a hostname + "issuer": "http://localhost:9135", + }, + }, + }, + }, + }, + }, + } + + return cfg.Reva +} diff --git a/pkg/command/server_simple.go b/pkg/command/server_simple.go index 7429e6dc7..0bc3ebb23 100644 --- a/pkg/command/server_simple.go +++ b/pkg/command/server_simple.go @@ -16,7 +16,7 @@ import ( var ( // SimpleRuntimeServices declares which services will be started for the fullstack server - SimpleRuntimeServices = []string{"hello", "konnectd", "phoenix"} + SimpleRuntimeServices = []string{"hello", "phoenix", "reva"} ) // Simple is the entrypoint for the server command. It is the `ocis server` subcommand overloaded with a different set of services