conjur-asset-ui 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (133) hide show
  1. checksums.yaml +7 -0
  2. data/.git-hooks/pre_commit/ensure_livescript_compiled.rb +31 -0
  3. data/.git-hooks/pre_commit/trailing_whitespace.rb +26 -0
  4. data/.gitignore +20 -0
  5. data/.overcommit.yml +5 -0
  6. data/.project +18 -0
  7. data/CHANGELOG.md +3 -0
  8. data/Gemfile +8 -0
  9. data/LICENSE.txt +22 -0
  10. data/README.md +41 -0
  11. data/Rakefile +3 -0
  12. data/compile_ls +6 -0
  13. data/conjur-asset-ui.gemspec +37 -0
  14. data/lib/conjur/command/ui.rb +46 -0
  15. data/lib/conjur/webserver/api_proxy.rb +94 -0
  16. data/lib/conjur/webserver/authorize.rb +28 -0
  17. data/lib/conjur/webserver/conjur_info.rb +33 -0
  18. data/lib/conjur/webserver/home.rb +42 -0
  19. data/lib/conjur/webserver/login.rb +57 -0
  20. data/lib/conjur/webserver/renderer.rb +34 -0
  21. data/lib/conjur/webserver/server.rb +113 -0
  22. data/lib/conjur-asset-ui-version.rb +7 -0
  23. data/lib/conjur-asset-ui.rb +7 -0
  24. data/livescript/views/audit.ls +136 -0
  25. data/public/_client_code.html +42 -0
  26. data/public/_client_libs.html +24 -0
  27. data/public/css/bootstrap.css +7 -0
  28. data/public/css/styles.less +461 -0
  29. data/public/fonts/glyphicons-halflings-regular.eot +0 -0
  30. data/public/fonts/glyphicons-halflings-regular.svg +229 -0
  31. data/public/fonts/glyphicons-halflings-regular.ttf +0 -0
  32. data/public/fonts/glyphicons-halflings-regular.woff +0 -0
  33. data/public/images/conjur-logo.svg +26 -0
  34. data/public/images/icon-client-pc.svg +12 -0
  35. data/public/images/icon-environment.png +0 -0
  36. data/public/images/icon-person.svg +12 -0
  37. data/public/images/icon-policy.png +0 -0
  38. data/public/images/icon-resource.png +0 -0
  39. data/public/images/icon-service-dots.svg +13 -0
  40. data/public/images/icon-variable.png +0 -0
  41. data/public/index.html.erb +62 -0
  42. data/public/js/init.js +107 -0
  43. data/public/js/lib/JSXTransformer.js +10862 -0
  44. data/public/js/lib/async.js +958 -0
  45. data/public/js/lib/backbone.js +2 -0
  46. data/public/js/lib/bootstrap.js +6 -0
  47. data/public/js/lib/date.extensions.js +141 -0
  48. data/public/js/lib/less.js +16 -0
  49. data/public/js/lib/moment.js +7768 -0
  50. data/public/js/lib/pace.js +2 -0
  51. data/public/js/lib/prelude-browser-min.js +1 -0
  52. data/public/js/lib/react-bootstrap.js +5346 -0
  53. data/public/js/lib/react-bootstrap.min.js +4 -0
  54. data/public/js/lib/sorted-set.no-require.js +1170 -0
  55. data/public/js/lib/sorted-set.no-require.js.txt +6 -0
  56. data/public/js/lib/underscore-min.js +6 -0
  57. data/public/js/lib/underscore.string.min.js +1 -0
  58. data/public/js/main.js +57 -0
  59. data/public/js/models/groupRecord.js +70 -0
  60. data/public/js/models/hostRecord.js +55 -0
  61. data/public/js/models/layerRecord.js +77 -0
  62. data/public/js/models/namespace.js +10 -0
  63. data/public/js/models/policyList.js +14 -0
  64. data/public/js/models/policyRecord.js +54 -0
  65. data/public/js/models/record.js +85 -0
  66. data/public/js/models/resourceList.js +69 -0
  67. data/public/js/models/userList.js +20 -0
  68. data/public/js/models/userRecord.js +70 -0
  69. data/public/js/models/variableList.js +16 -0
  70. data/public/js/models/variableRecord.js +73 -0
  71. data/public/js/routers.js +205 -0
  72. data/public/js/views/annotations.js +36 -0
  73. data/public/js/views/audit.js +363 -0
  74. data/public/js/views/dashboard.js +67 -0
  75. data/public/js/views/generic.js +115 -0
  76. data/public/js/views/group.js +61 -0
  77. data/public/js/views/groups.js +30 -0
  78. data/public/js/views/host.js +64 -0
  79. data/public/js/views/hosts.js +30 -0
  80. data/public/js/views/layer.js +92 -0
  81. data/public/js/views/layers.js +30 -0
  82. data/public/js/views/mixins/search.js +15 -0
  83. data/public/js/views/mixins/tabs.js +114 -0
  84. data/public/js/views/namespaces.js +40 -0
  85. data/public/js/views/navSearch.js +25 -0
  86. data/public/js/views/owned.js +178 -0
  87. data/public/js/views/permissions.js +188 -0
  88. data/public/js/views/policies.js +28 -0
  89. data/public/js/views/policy.js +43 -0
  90. data/public/js/views/resource.js +39 -0
  91. data/public/js/views/role.js +41 -0
  92. data/public/js/views/searchResults.js +145 -0
  93. data/public/js/views/time.js +14 -0
  94. data/public/js/views/user.js +68 -0
  95. data/public/js/views/users.js +31 -0
  96. data/public/js/views/variable.js +70 -0
  97. data/public/js/views/variables.js +30 -0
  98. data/spec/javascripts/helpers/.gitkeep +0 -0
  99. data/spec/javascripts/support/jasmine.yml +112 -0
  100. data/spec/javascripts/support/jasmine_helper.rb +22 -0
  101. data/spec/javascripts/support/run.html.erb +23 -0
  102. data/spec/javascripts/views/AuditSpec.js +22 -0
  103. data/spec/javascripts/views/AuditSpec.ls +18 -0
  104. data/vendor/prelude-ls/.gitignore +2 -0
  105. data/vendor/prelude-ls/.travis.yml +3 -0
  106. data/vendor/prelude-ls/CHANGELOG.md +81 -0
  107. data/vendor/prelude-ls/LICENSE +22 -0
  108. data/vendor/prelude-ls/Makefile +50 -0
  109. data/vendor/prelude-ls/README.md +15 -0
  110. data/vendor/prelude-ls/browser/prelude-browser-min.js +1 -0
  111. data/vendor/prelude-ls/browser/prelude-browser.js +1172 -0
  112. data/vendor/prelude-ls/lib/Func.js +40 -0
  113. data/vendor/prelude-ls/lib/List.js +602 -0
  114. data/vendor/prelude-ls/lib/Num.js +129 -0
  115. data/vendor/prelude-ls/lib/Obj.js +153 -0
  116. data/vendor/prelude-ls/lib/Str.js +68 -0
  117. data/vendor/prelude-ls/lib/index.js +164 -0
  118. data/vendor/prelude-ls/package.json +50 -0
  119. data/vendor/prelude-ls/package.ls +46 -0
  120. data/vendor/prelude-ls/src/Func.ls +17 -0
  121. data/vendor/prelude-ls/src/List.ls +299 -0
  122. data/vendor/prelude-ls/src/Num.ls +83 -0
  123. data/vendor/prelude-ls/src/Obj.ls +61 -0
  124. data/vendor/prelude-ls/src/Str.ls +32 -0
  125. data/vendor/prelude-ls/src/index.ls +56 -0
  126. data/vendor/prelude-ls/test/Func.ls +36 -0
  127. data/vendor/prelude-ls/test/List.ls +751 -0
  128. data/vendor/prelude-ls/test/Num.ls +258 -0
  129. data/vendor/prelude-ls/test/Obj.ls +145 -0
  130. data/vendor/prelude-ls/test/Prelude.ls +49 -0
  131. data/vendor/prelude-ls/test/Str.ls +208 -0
  132. data/vendor/prelude-ls/test/browser.html +5 -0
  133. metadata +369 -0
@@ -0,0 +1,461 @@
1
+ h1,
2
+ h2,
3
+ h3,
4
+ h4,
5
+ h5,
6
+ h6,
7
+ .h1,
8
+ .h2,
9
+ .h3,
10
+ .h4,
11
+ .h5,
12
+ .h6 {
13
+ font-family: Lato, sans-serif;
14
+ }
15
+
16
+ .timestamp {
17
+ white-space: nowrap;
18
+ }
19
+
20
+ .auditBox {
21
+ max-height: 350px;
22
+ overflow-y: scroll;
23
+ time {
24
+ float: right;
25
+ margin-right: 0.5em;
26
+ }
27
+ }
28
+
29
+ #nav-home a {
30
+ background-image: url('/images/conjur-logo.svg');
31
+ background-size: contain;
32
+ background-repeat: no-repeat;
33
+ padding-left: 12em;
34
+ }
35
+
36
+ thead {
37
+ border-bottom: #999999 thin solid;
38
+ }
39
+
40
+ th {
41
+ text-transform: capitalize;
42
+ }
43
+
44
+ th, td {
45
+ padding: 3pt 8pt;
46
+ }
47
+
48
+ caption {
49
+ color: #6d6d6d;
50
+ font-size: 1.6em;
51
+ margin-bottom: 0.6em;
52
+ letter-spacing: 0.2em;
53
+ text-transform: lowercase;
54
+ }
55
+
56
+ h2 {
57
+ font-size: 26px;
58
+ }
59
+
60
+ .no-icon {
61
+ background-image: none !important;
62
+ background-size: 0 !important;
63
+ background-position: default !important;
64
+ }
65
+
66
+ .group-icon(@size, @x-offset: 0.2em, @y-offset: 0.07em) {
67
+ background-image: url('/images/icon-person.svg'), url('/images/icon-person.svg');
68
+ background-repeat: no-repeat;
69
+ background-size: @size;
70
+ background-position: (-0.2 * @size + @x-offset) (-0.1 * @size + @y-offset), (0.2 * @size + @x-offset) (0.1 * @size + @y-offset);
71
+ }
72
+
73
+ .layer-icon(@size, @x-offset: 0.2em, @y-offset: 0.07em) {
74
+ background-image: url('/images/icon-client-pc.svg'), url('/images/icon-client-pc.svg');
75
+ background-repeat: no-repeat;
76
+ background-size: @size;
77
+ background-position: (-0.2 * @size + @x-offset) (-0.1 * @size + @y-offset), (0.2 * @size + @x-offset) (0.1 * @size + @y-offset);
78
+ }
79
+
80
+ .environment-icon(@size, @x-offset: 0.2em, @y-offset: 0.07em) {
81
+ background-image: url('/images/icon-key.svg'), url('/images/icon-key.svg');
82
+ background-repeat: no-repeat;
83
+ background-size: @size;
84
+ background-position: (-0.2 * @size + @x-offset) (-0.1 * @size + @y-offset), (0.2 * @size + @x-offset) (0.1 * @size + @y-offset);
85
+ }
86
+
87
+ .group h2, .groupsList tbody tr td.id {
88
+ .group-icon(2em);
89
+ padding-left: 2.5em;
90
+ }
91
+
92
+ .group h2 {
93
+ padding: 0.5em 2.5em;
94
+ }
95
+
96
+ dl {
97
+ font-size: 1.2em;
98
+ margin: 2em 1em;
99
+ }
100
+
101
+ dd {
102
+ /* top left bottom (I always forget that) */
103
+ margin: 0.3em 1.4em 1em;
104
+ }
105
+
106
+ .group {
107
+ ul {
108
+ padding-left: 0em;
109
+ }
110
+
111
+ li {
112
+ display: block;
113
+ }
114
+ }
115
+
116
+ dl.propertyList {
117
+ dt {
118
+ display: inline;
119
+ margin-left: 6px;
120
+ font-size: 14px;
121
+ }
122
+
123
+ dd {
124
+ display: inline;
125
+ margin-left: 6px;
126
+ font-size: 14px;
127
+ }
128
+ }
129
+
130
+ .namespaceList {
131
+ float: right;
132
+
133
+ h2, div {
134
+ font-size: 1em;
135
+ display: inline;
136
+ margin: 0.5em;
137
+ color: #2d2d2d;
138
+ }
139
+
140
+ select {
141
+ background: white;
142
+ border: #ddd solid thin;
143
+ border-radius: 0.5em;
144
+ color: #2d2d2d;
145
+ }
146
+ }
147
+
148
+ .role-link-padding {
149
+ padding-left: 1.7em;
150
+ }
151
+
152
+ .asset-link-icon(@icon, @size: 1.6em) {
153
+ .role-link-padding;
154
+
155
+ background-image: url(@icon);
156
+ background-size: @size;
157
+ background-repeat: no-repeat;
158
+ }
159
+
160
+ .variable.resource-link {
161
+ .asset-link-icon('/images/icon-variable.png', 0.8em);
162
+ }
163
+
164
+ .environment.resource-link {
165
+ .asset-link-icon('/images/icon-environment.png', 1.1em);
166
+ }
167
+
168
+ .environment-variables.resource-link {
169
+ .asset-link-icon('/images/icon-environment.png', 1.1em);
170
+ }
171
+
172
+ .host.role-link, .host.resource-link {
173
+ .asset-link-icon('/images/icon-client-pc.svg');
174
+ background-position-y: -0.1em;
175
+ }
176
+
177
+ .policy.role-link, .policy.resource-link {
178
+ .asset-link-icon('/images/icon-policy.png', 1.4em);
179
+ background-position-y: -0.1em;
180
+ }
181
+
182
+ .abstract.resource-link {
183
+ .asset-link-icon('/images/icon-resource.png',1.4em);
184
+ background-position-y: -0.1em;
185
+ }
186
+
187
+ .user.role-link, .user.resource-link {
188
+ .asset-link-icon('/images/icon-person.svg');
189
+ background-position-y: -0.2em;
190
+ }
191
+
192
+ .pubkeysUser .list-group-item {
193
+ max-width: 300px;
194
+ }
195
+
196
+ .group.role-link, .group.resource-link {
197
+ .role-link-padding;
198
+ .group-icon(1.2em);
199
+ }
200
+
201
+ .layer.role-link, .layer.resource-link {
202
+ .role-link-padding;
203
+ .layer-icon(1.2em);
204
+ }
205
+
206
+ .auditBox {
207
+ th.when {
208
+ width: 129px;
209
+ }
210
+ }
211
+
212
+ .search-button {
213
+ margin-left: 0.5em;
214
+ }
215
+
216
+
217
+ .dashboard {
218
+ #dashboard-search {
219
+ margin: 4em auto;
220
+ }
221
+
222
+ .owned ul {
223
+ margin: 0;
224
+ padding: 0;
225
+ }
226
+
227
+ .owned .hide-all { display: none; }
228
+
229
+ .owned li {
230
+ list-style-type: none;
231
+ padding: 3pt 8pt;
232
+ }
233
+ }
234
+
235
+ .dashboard form.search, #searchResults form.search {
236
+ margin: 0px auto;
237
+ width: 300px;
238
+ }
239
+
240
+ .search-group {
241
+ .panel-heading {
242
+ a:after {
243
+ font-family: 'Glyphicons Halflings';
244
+ content: "\e114";
245
+ float: right;
246
+ color: grey;
247
+ }
248
+
249
+ a.collapsed:after {
250
+ content: "\e080";
251
+ }
252
+ }
253
+ }
254
+
255
+ .search-results {
256
+ .item {
257
+ h4 {
258
+ margin-bottom: 4px;
259
+ }
260
+
261
+ .details {
262
+ font-size: 12px;
263
+ }
264
+
265
+ .comment {
266
+ font-size: 14px;
267
+ }
268
+ }
269
+ }
270
+
271
+ .searchResults .toc-item {
272
+ display: inline-block;
273
+ margin: 5px;
274
+ }
275
+
276
+ .searchResults h3 {
277
+ margin: 5px 0 0 4px;
278
+ }
279
+
280
+ .list-group-item-noborder {
281
+ border: 0;
282
+ }
283
+
284
+ // Conjur color palette.
285
+ //
286
+ // Styleguide 2.0.
287
+ @turquoise: #00b49d;
288
+ @light-blue: #99b8c7;
289
+ @dark-blue: #49585f;
290
+
291
+ // Highlight color: a bright color to bring attention to changes and interaction possibilities.
292
+ //
293
+ // Styleguide 2.1.
294
+ @highlight-color: @turquoise;
295
+
296
+ // Content color: a basic content color.
297
+ //
298
+ // Styleguide 2.2.
299
+ @content-color: darken(@light-blue, 80%);
300
+
301
+ // Background color: a dark color to serve as ambient background.
302
+ //
303
+ // Styleguide 2.3.
304
+ @background-color: lighten(@dark-blue, 90%);
305
+
306
+ // Basic body settings.
307
+ //
308
+ // Styleguide 1.0.
309
+ body {
310
+ font-family: Lato, sans-serif;
311
+ background: @background-color;
312
+ color: @content-color;
313
+ font-size: 12pt;
314
+
315
+ a {
316
+ color: darken(@highlight-color, 5%);
317
+
318
+ &:hover {
319
+ color: darken(@highlight-color, 10%);
320
+ }
321
+ }
322
+
323
+ h2 {
324
+ letter-spacing: 0.1em;
325
+ margin-top: 0;
326
+ font-weight: 300;
327
+ }
328
+
329
+ h3 {
330
+ margin: 1em 0 1em;
331
+ letter-spacing: 0.01em;
332
+ font-weight: 300;
333
+ }
334
+
335
+ dl {
336
+ //display: flex; // sorry, this squashes whole string
337
+ position: relative;
338
+ padding-top: 1.5em;
339
+
340
+ dt {
341
+ font-weight: 300;
342
+ }
343
+
344
+ dd {
345
+ margin: 0 0 5px 0;
346
+ }
347
+ }
348
+ }
349
+
350
+ // Section describing permissions held by a particular role.
351
+ //
352
+ // .loading - Indicates that the section has not loaded yet.
353
+ //
354
+ // Styleguide 1.1.
355
+ section.permissions {
356
+ }
357
+
358
+ // The topmost content container.
359
+ //
360
+ // Styleguide 1.2.
361
+ #content {
362
+ margin: 0 3em;
363
+ min-height: 500px;
364
+ }
365
+
366
+ // Search results.
367
+ //
368
+ // Styleguide 1.3.
369
+ .search-results {
370
+ color: darken(@content-color, 30%);
371
+
372
+ a {
373
+ color: darken(@highlight-color, 50%);
374
+ }
375
+ }
376
+
377
+ // Pacer: a loading progress and activity indicator.
378
+ //
379
+ // @pace-color - Color of the progress bar.
380
+ //
381
+ // Styleguide 3.
382
+ @pace-color: @highlight-color;
383
+
384
+ .pace-inactive {
385
+ display: none;
386
+ }
387
+
388
+ .pace {
389
+ -webkit-pointer-events: none;
390
+ pointer-events: none;
391
+ -webkit-user-select: none;
392
+ -moz-user-select: none;
393
+ user-select: none;
394
+
395
+ .pace-progress {
396
+ background: @pace-color;
397
+ position: fixed;
398
+ z-index: 2000;
399
+ top: 0;
400
+ left: 0;
401
+ height: 2px;
402
+
403
+ -webkit-transition: width 1s;
404
+ -moz-transition: width 1s;
405
+ -o-transition: width 1s;
406
+ transition: width 1s;
407
+ }
408
+
409
+ .pace-progress-inner {
410
+ display: block;
411
+ position: absolute;
412
+ right: 0px;
413
+ width: 100px;
414
+ height: 100%;
415
+ box-shadow: 0 0 10px @pace-color, 0 0 5px @pace-color;
416
+ opacity: 1.0;
417
+ -webkit-transform: rotate(3deg) translate(0px, -4px);
418
+ -moz-transform: rotate(3deg) translate(0px, -4px);
419
+ -ms-transform: rotate(3deg) translate(0px, -4px);
420
+ -o-transform: rotate(3deg) translate(0px, -4px);
421
+ transform: rotate(3deg) translate(0px, -4px);
422
+ }
423
+
424
+ .pace-activity {
425
+ background-image: url('/images/icon-service-dots.svg');
426
+ background-size: contain;
427
+ background-repeat: no-repeat;
428
+ background-position: right center;
429
+ display: block;
430
+ position: fixed;
431
+ z-index: 2000;
432
+ top: 5px;
433
+ right: 5px;
434
+ width: 70px;
435
+ height: 70px;
436
+ -webkit-animation: pace-pulse 1s alternate infinite none cubic-bezier(1, 0, 0.73, 1);
437
+ -moz-animation: pace-pulse 1s alternate infinite none cubic-bezier(1, 0, 0.73, 1);
438
+ -ms-animation: pace-pulse 1s alternate infinite none cubic-bezier(1, 0, 0.73, 1);
439
+ -o-animation: pace-pulse 1s alternate infinite none cubic-bezier(1, 0, 0.73, 1);
440
+ animation: pace-pulse 1s alternate infinite none cubic-bezier(1, 0, 0.73, 1);
441
+ }
442
+ }
443
+
444
+ @-webkit-keyframes pace-pulse {
445
+ 0% { -webkit-transform: scale(1); }
446
+ 100% { -webkit-transform: scale(0.8); }
447
+ }
448
+
449
+ @keyframes pace-pulse {
450
+ 0% { transform: scale(1); }
451
+ 100% { transform: scale(0.8); }
452
+ }
453
+
454
+ .header {
455
+ font-size: 12px;
456
+ padding-left: 10px;
457
+ }
458
+
459
+ .tab-pane {
460
+ padding-top: 5px;
461
+ }