Skip to content

Commit 8783695

Browse files
committed
.
1 parent 7587377 commit 8783695

File tree

5 files changed

+145
-137
lines changed

5 files changed

+145
-137
lines changed

cmd/query.go

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,3 @@
1-
// Copyright 2019 txn2
2-
// Licensed under the Apache License, Version 2.0 (the "License");
3-
// you may not use this file except in compliance with the License.
4-
// You may obtain a copy of the License at
5-
// http://www.apache.org/licenses/LICENSE-2.0
6-
// Unless required by applicable law or agreed to in writing, software
7-
// distributed under the License is distributed on an "AS IS" BASIS,
8-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9-
// See the License for the specific language governing permissions and
10-
// limitations under the License.
11-
121
package main
132

143
import (
@@ -31,9 +20,12 @@ import (
3120
)
3221

3322
var (
23+
// protected is intended for public use with BasicAuth and API Keys (use internal to bypass auth)
24+
modeEnv = getEnv("MODE", "protected")
3425
elasticServerEnv = getEnv("ELASTIC_SERVER", "http://elasticsearch:9200")
3526
provisionServerEnv = getEnv("PROVISION_SERVER", "http://provision:8070")
3627
authCacheEnv = getEnv("AUTH_CACHE", "60")
28+
systemPrefixEnv = getEnv("SYSTEM_PREFIX", "system_")
3729
)
3830

3931
func main() {
@@ -43,17 +35,20 @@ func main() {
4335
os.Exit(1)
4436
}
4537

38+
mode := flag.String("mode", modeEnv, "Protected or internal modes. (internal = security bypass)")
4639
esServer := flag.String("esServer", elasticServerEnv, "Elasticsearch Server")
4740
provisionServer := flag.String("provisionServer", provisionServerEnv, "Provision Server (txn2/provision)")
4841
authCache := flag.Int("authCache", authCacheInt, "Seconds to cache key (BasicAuth) authentication.")
42+
systemPrefix := flag.String("systemPrefix", systemPrefixEnv, "Prefix for system indices.")
4943

5044
serverCfg, _ := micro.NewServerCfg("Query")
5145
server := micro.NewServer(serverCfg)
5246

5347
qApi, err := query.NewApi(&query.Config{
54-
Logger: server.Logger,
55-
HttpClient: server.Client,
56-
ElasticServer: *esServer,
48+
Logger: server.Logger,
49+
HttpClient: server.Client,
50+
ElasticServer: *esServer,
51+
SystemIdxPrefix: *systemPrefix,
5752
})
5853
if err != nil {
5954
server.Logger.Fatal("failure to instantiate the query API: " + err.Error())
@@ -133,16 +128,28 @@ func main() {
133128
}
134129
}
135130

131+
if *mode == "internal" {
132+
accessHandler = func(admin bool) gin.HandlerFunc {
133+
return func(c *gin.Context) {}
134+
}
135+
}
136+
136137
// Run a query (one-off operation for running or testing queries
137138
server.Router.POST("run/:account",
138139
accessHandler(false),
139140
qApi.RunQueryHandler,
140141
)
141142

142-
// Execute a query
143+
// Execute a stored query
143144
server.Router.GET("exec/:account/:id",
144145
accessHandler(false),
145-
qApi.ExecuteQueryHandler,
146+
qApi.ExecuteQueryHandlerF(false),
147+
)
148+
149+
// Execute a system query for an account
150+
server.Router.GET("/system/exec/:account/:id",
151+
accessHandler(false),
152+
qApi.ExecuteQueryHandlerF(true),
146153
)
147154

148155
// Upsert a query

go.mod

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ require (
77
github.com/Masterminds/semver v1.4.2 // indirect
88
github.com/Masterminds/sprig v2.18.0+incompatible
99
github.com/beorn7/perks v1.0.0 // indirect
10-
github.com/davecgh/go-spew v1.1.1
1110
github.com/gin-gonic/gin v1.3.0
1211
github.com/go-logfmt/logfmt v0.4.0 // indirect
1312
github.com/gogo/protobuf v1.2.1 // indirect
@@ -17,24 +16,22 @@ require (
1716
github.com/json-iterator/go v1.1.6 // indirect
1817
github.com/kisielk/errcheck v1.2.0 // indirect
1918
github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect
20-
github.com/kr/pty v1.1.4 // indirect
21-
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
19+
github.com/patrickmn/go-cache v2.1.0+incompatible
2220
github.com/prometheus/common v0.4.0 // indirect
2321
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084 // indirect
2422
github.com/sirupsen/logrus v1.4.1 // indirect
2523
github.com/stretchr/objx v0.2.0 // indirect
2624
github.com/txn2/ack v1.8.3
27-
github.com/txn2/es v1.3.6
25+
github.com/txn2/es/v2 v2.0.1
2826
github.com/txn2/micro v0.0.6
2927
github.com/txn2/provision v0.1.4
3028
github.com/txn2/tm v0.2.3
31-
github.com/ugorji/go v1.1.2-0.20180831062425-e253f1f20942 // indirect
3229
go.uber.org/atomic v1.4.0 // indirect
3330
go.uber.org/zap v1.10.0
3431
golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f // indirect
3532
golang.org/x/net v0.0.0-20190509222800-a4d6f7feada5 // indirect
33+
golang.org/x/sync v0.0.0-20190412183630-56d357773e84 // indirect
3634
golang.org/x/sys v0.0.0-20190509141414-a5b02f93d862 // indirect
37-
golang.org/x/text v0.3.2 // indirect
38-
golang.org/x/tools v0.0.0-20190513184735-d81a07b7e584 // indirect
35+
golang.org/x/tools v0.0.0-20190411180116-681f9ce8ac52 // indirect
3936
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect
4037
)

go.sum

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ github.com/gin-contrib/zap v0.0.0-20190405225521-7c4b822813e7 h1:v6rNWmMnVDBVMc1
2222
github.com/gin-contrib/zap v0.0.0-20190405225521-7c4b822813e7/go.mod h1:pQKeeey3PeRN2SbZe1jWiIkTJkylO9hL1K0Hf4Wbtt4=
2323
github.com/gin-gonic/gin v1.3.0 h1:kCmZyPklC0gVdL728E6Aj20uYBJV93nj/TkwBTKhFbs=
2424
github.com/gin-gonic/gin v1.3.0/go.mod h1:7cKuhb5qV2ggCFctp2fJQ+ErvciLZrIeoOSOm6mUr7Y=
25-
github.com/gin-gonic/gin v1.4.0 h1:3tMoCCfM7ppqsR0ptz/wi1impNpT7/9wQtMZ8lr1mCQ=
26-
github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM=
2725
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
2826
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
2927
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
@@ -54,7 +52,6 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB
5452
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
5553
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
5654
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
57-
github.com/kr/pty v1.1.4/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
5855
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
5956
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
6057
github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
@@ -111,8 +108,8 @@ github.com/txn2/es v1.3.3 h1:xtv2RSaGTr6yF2dhfCj72J3IULYfFRqtk9P9bGXanuA=
111108
github.com/txn2/es v1.3.3/go.mod h1:EpfYehD9ztuADfvJo9Eoiv43yampBl/F5MaNNb6C7WU=
112109
github.com/txn2/es v1.3.5 h1:BLlRQ4DnhwjEKYHoI+xsvaSV4En+h/gzA+knWgYi7Og=
113110
github.com/txn2/es v1.3.5/go.mod h1:EpfYehD9ztuADfvJo9Eoiv43yampBl/F5MaNNb6C7WU=
114-
github.com/txn2/es v1.3.6 h1:iQGO3IOapPWtXIakuBhJ6/9Neb+j5bdGinbxRY0/2sM=
115-
github.com/txn2/es v1.3.6/go.mod h1:EpfYehD9ztuADfvJo9Eoiv43yampBl/F5MaNNb6C7WU=
111+
github.com/txn2/es/v2 v2.0.1 h1:d44lU5xDoQHfQ50LAG0jOlC1lu8xbF7Ku1shhIjNlI0=
112+
github.com/txn2/es/v2 v2.0.1/go.mod h1:EzHNcSmvgxzM84uNdFX8tPQ0JnvCfGm1CegWi4I0roI=
116113
github.com/txn2/micro v0.0.5 h1:w6TcgFnYfbBW2r+FUM7MIUTN4q7+y/GvGqewquTt9tk=
117114
github.com/txn2/micro v0.0.5/go.mod h1:r/uIbdFhvfjqKcT8mQUIKmzuh2Rxcablu7KB8oRRBoo=
118115
github.com/txn2/micro v0.0.6 h1:VbN+fCcmRcagVhXYSlUCYgftkTTb5AZO1IltIJ/ZNfA=
@@ -121,20 +118,10 @@ github.com/txn2/provision v0.0.8 h1:PFcSIShdPq87FOMnOVvAlMiXHhlcCTUH5nB/vg+7OtM=
121118
github.com/txn2/provision v0.0.8/go.mod h1:4tzJEpK1LLgASok2bNvhZlXw1h98aP6+GOvxj5gXifY=
122119
github.com/txn2/provision v0.1.4 h1:4WtDgZnxofhcnA1Sa9rkDUtajWDp8Of3jBKBR/KhgGo=
123120
github.com/txn2/provision v0.1.4/go.mod h1:+8d+mi6SAHRYfTZxLMf0043gUclxnFyozoH0vktEFko=
124-
github.com/txn2/tm v0.0.10 h1:rNXZZr6zHPCLZHafmg4EI40LMgn7tMQpEdTdE4g8rTM=
125-
github.com/txn2/tm v0.0.10/go.mod h1:mcGxYehiZu8xuUFxsdHEu4ZSNNaKk8Q9XUTBsFVEHnI=
126-
github.com/txn2/tm v0.2.0 h1:an4NkNVcpCfmFAUsY6ghnfaivrpCqpX/ZsRJ3uw/dL0=
127-
github.com/txn2/tm v0.2.0/go.mod h1:mcGxYehiZu8xuUFxsdHEu4ZSNNaKk8Q9XUTBsFVEHnI=
128-
github.com/txn2/tm v0.2.1 h1:jQzssurCNTsl+esG93N+C7B1iGbynRDBTnoCZrynVQg=
129-
github.com/txn2/tm v0.2.1/go.mod h1:mcGxYehiZu8xuUFxsdHEu4ZSNNaKk8Q9XUTBsFVEHnI=
130121
github.com/txn2/tm v0.2.3 h1:t/BnNFHVx/iVJhJfG7MP4J68GGdJHoZg/tT8VK8fpf4=
131122
github.com/txn2/tm v0.2.3/go.mod h1:mcGxYehiZu8xuUFxsdHEu4ZSNNaKk8Q9XUTBsFVEHnI=
132123
github.com/txn2/token v0.0.1 h1:4nAK3duT59mXuZgvAi4Dmt6WNaOa17s+e6KiOBmIgHE=
133124
github.com/txn2/token v0.0.1/go.mod h1:rwlndPTGA4xxAuDI/cG2Tv43PJqDWFbFv7Vqm7nQbtc=
134-
github.com/ugorji/go v1.1.2-0.20180831062425-e253f1f20942 h1:C/c80f5WTivlgVJaxjYkGosvyNLVlehHXvTwubC5AnY=
135-
github.com/ugorji/go v1.1.2-0.20180831062425-e253f1f20942/go.mod h1:hnLbHMwcvSihnDhEfx2/BzKp2xb0Y+ErdfYcrs9tkJQ=
136-
github.com/ugorji/go v1.1.4 h1:j4s+tAvLfL3bZyefP2SEWmhBzmuIlH/eqNuPdFPgngw=
137-
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
138125
github.com/ugorji/go/codec v0.0.0-20181209151446-772ced7fd4c2 h1:EICbibRW4JNKMcY+LsWmuwob+CRS1BmdRdjphAm9mH4=
139126
github.com/ugorji/go/codec v0.0.0-20181209151446-772ced7fd4c2/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
140127
go.uber.org/atomic v1.3.2 h1:2Oa65PReHzfn29GpvgsYwloV9AVFHPDk8tYxt2c2tr4=
@@ -160,12 +147,11 @@ golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73r
160147
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
161148
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ=
162149
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
163-
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
150+
golang.org/x/net v0.0.0-20190509222800-a4d6f7feada5 h1:6M3SDHlHHDCx2PcQw3S4KsR170vGqDhJDOmpVd4Hjak=
164151
golang.org/x/net v0.0.0-20190509222800-a4d6f7feada5/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
165152
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
166153
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
167154
golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
168-
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
169155
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
170156
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
171157
golang.org/x/sys v0.0.0-20181221143128-b4a75ba826a6/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -177,12 +163,9 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w
177163
golang.org/x/sys v0.0.0-20190509141414-a5b02f93d862 h1:rM0ROo5vb9AdYJi1110yjWGMej9ITfKddS89P3Fkhug=
178164
golang.org/x/sys v0.0.0-20190509141414-a5b02f93d862/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
179165
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
180-
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
181166
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
182-
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
183167
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
184168
golang.org/x/tools v0.0.0-20190411180116-681f9ce8ac52/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
185-
golang.org/x/tools v0.0.0-20190513184735-d81a07b7e584/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
186169
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
187170
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
188171
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=

0 commit comments

Comments
 (0)