keepup-admin 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. keepup/THIRD-PARTY.md +44 -0
  2. keepup/__init__.py +41 -0
  3. keepup/api_versions.py +100 -0
  4. keepup/audit.py +499 -0
  5. keepup/auth/__init__.py +7 -0
  6. keepup/auth/config.py +128 -0
  7. keepup/auth/dependencies.py +485 -0
  8. keepup/auth/dto/__init__.py +0 -0
  9. keepup/auth/dto/token.py +31 -0
  10. keepup/auth/factory.py +28 -0
  11. keepup/auth/login_throttle.py +151 -0
  12. keepup/auth/oidc.py +245 -0
  13. keepup/auth/oidc_policy.py +111 -0
  14. keepup/auth/oidc_routes.py +288 -0
  15. keepup/auth/panel_session.py +220 -0
  16. keepup/auth/permissions.py +59 -0
  17. keepup/auth/providers/__init__.py +0 -0
  18. keepup/auth/providers/base.py +168 -0
  19. keepup/auth/providers/local.py +180 -0
  20. keepup/auth/routes.py +660 -0
  21. keepup/auth/seed_accounts.py +322 -0
  22. keepup/auth/session_lifetime.py +104 -0
  23. keepup/auth/signing_key.py +138 -0
  24. keepup/auth/websocket.py +86 -0
  25. keepup/cluster.py +634 -0
  26. keepup/db.py +663 -0
  27. keepup/events.py +764 -0
  28. keepup/factory.py +484 -0
  29. keepup/instance.py +46 -0
  30. keepup/integrations.py +260 -0
  31. keepup/locks.py +412 -0
  32. keepup/logging_setup.py +690 -0
  33. keepup/metrics.py +818 -0
  34. keepup/metrics_retention.py +376 -0
  35. keepup/modules.py +572 -0
  36. keepup/notification_bus.py +355 -0
  37. keepup/plugins/__init__.py +9 -0
  38. keepup/plugins/admin.py +246 -0
  39. keepup/plugins/base.py +234 -0
  40. keepup/plugins/enablement.py +184 -0
  41. keepup/plugins/registry.py +171 -0
  42. keepup/plugins/route_mask.py +338 -0
  43. keepup/plugins/routes.py +376 -0
  44. keepup/roles.py +17 -0
  45. keepup/scheduler.py +93 -0
  46. keepup/schema.py +295 -0
  47. keepup/sections.json +104 -0
  48. keepup/settings.py +184 -0
  49. keepup/static/css/aos.css +1 -0
  50. keepup/static/css/main_nebula.css +232 -0
  51. keepup/static/css/main_new.css +852 -0
  52. keepup/static/css/tailwind.css +1 -0
  53. keepup/static/index_nebula.html +293 -0
  54. keepup/static/index_new.html +286 -0
  55. keepup/static/js/aos.js +1 -0
  56. keepup/static/js/feather-icons.js +13 -0
  57. keepup/static/js/main_new.js +1861 -0
  58. keepup/static/js/tailwind.js +83 -0
  59. keepup/static/modules/css/background_tasks.css +233 -0
  60. keepup/static/modules/css/cluster.css +16 -0
  61. keepup/static/modules/css/event_manager.css +386 -0
  62. keepup/static/modules/css/integration_logs.css +33 -0
  63. keepup/static/modules/css/metrics.css +115 -0
  64. keepup/static/modules/css/modules.css +189 -0
  65. keepup/static/modules/css/themes.css +563 -0
  66. keepup/static/modules/css/users.css +278 -0
  67. keepup/static/modules/js/background_tasks.js +657 -0
  68. keepup/static/modules/js/chart.js +14 -0
  69. keepup/static/modules/js/chartjs-adapter-date-fns.bundle.min.js +7 -0
  70. keepup/static/modules/js/cluster.js +363 -0
  71. keepup/static/modules/js/event_manager.js +979 -0
  72. keepup/static/modules/js/integration_logs.js +767 -0
  73. keepup/static/modules/js/metrics.js +908 -0
  74. keepup/static/modules/js/modules.js +1086 -0
  75. keepup/static/modules/js/themes.js +653 -0
  76. keepup/static/modules/js/users.js +784 -0
  77. keepup/tables.py +302 -0
  78. keepup/themes.py +496 -0
  79. keepup/web.py +182 -0
  80. keepup_admin-0.1.0.dist-info/METADATA +117 -0
  81. keepup_admin-0.1.0.dist-info/RECORD +86 -0
  82. keepup_admin-0.1.0.dist-info/WHEEL +5 -0
  83. keepup_admin-0.1.0.dist-info/licenses/LICENSE +202 -0
  84. keepup_admin-0.1.0.dist-info/licenses/NOTICE +22 -0
  85. keepup_admin-0.1.0.dist-info/licenses/THIRD-PARTY.md +44 -0
  86. keepup_admin-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,115 @@
1
+ /* metrics.css -- styles for the system metrics section */
2
+
3
+ .metrics-instance-card {
4
+ transition: all 0.3s ease;
5
+ border: 1px solid #e5e7eb;
6
+ }
7
+
8
+ .metrics-instance-card:hover {
9
+ transform: translateY(-2px);
10
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
11
+ }
12
+
13
+ .metrics-chart-container {
14
+ position: relative;
15
+ height: 256px;
16
+ background: white;
17
+ border-radius: 0.5rem;
18
+ }
19
+
20
+ .metrics-status-online {
21
+ background-color: #10b981;
22
+ color: white;
23
+ }
24
+
25
+ .metrics-status-offline {
26
+ background-color: #ef4444;
27
+ color: white;
28
+ }
29
+
30
+ .metrics-status-warning {
31
+ background-color: #f59e0b;
32
+ color: white;
33
+ }
34
+
35
+ .metrics-gauge {
36
+ width: 100px;
37
+ height: 100px;
38
+ position: relative;
39
+ }
40
+
41
+ .metrics-gauge-fill {
42
+ transform-origin: center;
43
+ transition: transform 0.5s ease;
44
+ }
45
+
46
+ .metrics-tooltip {
47
+ position: absolute;
48
+ background: rgba(0, 0, 0, 0.8);
49
+ color: white;
50
+ padding: 8px 12px;
51
+ border-radius: 4px;
52
+ font-size: 12px;
53
+ pointer-events: none;
54
+ z-index: 1000;
55
+ }
56
+
57
+ .metrics-legend {
58
+ display: flex;
59
+ flex-wrap: wrap;
60
+ gap: 8px;
61
+ margin-top: 16px;
62
+ }
63
+
64
+ .metrics-legend-item {
65
+ display: flex;
66
+ align-items: center;
67
+ gap: 4px;
68
+ font-size: 12px;
69
+ }
70
+
71
+ .metrics-legend-color {
72
+ width: 12px;
73
+ height: 12px;
74
+ border-radius: 2px;
75
+ }
76
+
77
+ /* Chart animations */
78
+ @keymetrics fadeIn {
79
+ from { opacity: 0; }
80
+ to { opacity: 1; }
81
+ }
82
+
83
+ .metrics-chart-container canvas {
84
+ animation: fadeIn 0.5s ease-in;
85
+ }
86
+
87
+ /* Narrow layout */
88
+ @media (max-width: 768px) {
89
+ .metrics-chart-container {
90
+ height: 200px;
91
+ }
92
+
93
+ .metrics-instance-card {
94
+ margin-bottom: 1rem;
95
+ }
96
+ }
97
+
98
+ /* Scrollbars of the modals */
99
+ .metrics-modal-content::-webkit-scrollbar {
100
+ width: 6px;
101
+ }
102
+
103
+ .metrics-modal-content::-webkit-scrollbar-track {
104
+ background: #f1f1f1;
105
+ border-radius: 3px;
106
+ }
107
+
108
+ .metrics-modal-content::-webkit-scrollbar-thumb {
109
+ background: #c1c1c1;
110
+ border-radius: 3px;
111
+ }
112
+
113
+ .metrics-modal-content::-webkit-scrollbar-thumb:hover {
114
+ background: #a8a8a8;
115
+ }
@@ -0,0 +1,189 @@
1
+ /* modules.css -- styles for the panel sections catalogue */
2
+
3
+ /* The sections table */
4
+ .modules-table {
5
+ width: 100%;
6
+ border-collapse: collapse;
7
+ }
8
+
9
+ .modules-table th {
10
+ background-color: #f8fafc;
11
+ padding: 12px;
12
+ text-align: left;
13
+ font-weight: 600;
14
+ color: #374151;
15
+ border-bottom: 1px solid #e5e7eb;
16
+ }
17
+
18
+ .modules-table td {
19
+ padding: 12px;
20
+ border-bottom: 1px solid #e5e7eb;
21
+ }
22
+
23
+ .modules-table tr:hover {
24
+ background-color: #f9fafb;
25
+ }
26
+
27
+ /* Modals */
28
+ .modules-modal {
29
+ transition: all 0.3s ease;
30
+ }
31
+
32
+ .modules-modal-content {
33
+ max-height: 80vh;
34
+ overflow-y: auto;
35
+ }
36
+
37
+ /* Statistics */
38
+ .modules-stats-grid {
39
+ display: grid;
40
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
41
+ gap: 1rem;
42
+ margin-bottom: 1.5rem;
43
+ }
44
+
45
+ .stat-card {
46
+ background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
47
+ border: 1px solid #bae6fd;
48
+ border-radius: 0.5rem;
49
+ padding: 1.5rem;
50
+ text-align: center;
51
+ }
52
+
53
+ .stat-card.green {
54
+ background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
55
+ border-color: #bbf7d0;
56
+ }
57
+
58
+ .stat-card.purple {
59
+ background: linear-gradient(135deg, #faf5ff 0%, #f3e8ff 100%);
60
+ border-color: #e9d5ff;
61
+ }
62
+
63
+ .stat-card.orange {
64
+ background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 100%);
65
+ border-color: #fed7aa;
66
+ }
67
+
68
+ .stat-value {
69
+ font-size: 1.875rem;
70
+ font-weight: bold;
71
+ margin-bottom: 0.5rem;
72
+ }
73
+
74
+ .stat-label {
75
+ font-size: 0.875rem;
76
+ color: #4b5563;
77
+ }
78
+
79
+ /* Forms */
80
+ .module-form input,
81
+ .module-form textarea,
82
+ .module-form select {
83
+ width: 100%;
84
+ padding: 0.5rem 0.75rem;
85
+ border: 1px solid #d1d5db;
86
+ border-radius: 0.375rem;
87
+ transition: all 0.2s;
88
+ }
89
+
90
+ .module-form input:focus,
91
+ .module-form textarea:focus,
92
+ .module-form select:focus {
93
+ outline: none;
94
+ ring: 2px;
95
+ ring-color: #3b82f6;
96
+ border-color: #3b82f6;
97
+ }
98
+
99
+ /* Buttons */
100
+ .module-btn {
101
+ display: inline-flex;
102
+ align-items: center;
103
+ padding: 0.5rem 1rem;
104
+ border-radius: 0.375rem;
105
+ font-weight: 500;
106
+ transition: all 0.2s;
107
+ cursor: pointer;
108
+ }
109
+
110
+ .module-btn-primary {
111
+ background-color: #3b82f6;
112
+ color: white;
113
+ border: none;
114
+ }
115
+
116
+ .module-btn-primary:hover {
117
+ background-color: #2563eb;
118
+ }
119
+
120
+ .module-btn-secondary {
121
+ background-color: #6b7280;
122
+ color: white;
123
+ border: none;
124
+ }
125
+
126
+ .module-btn-secondary:hover {
127
+ background-color: #4b5563;
128
+ }
129
+
130
+ .module-btn-success {
131
+ background-color: #10b981;
132
+ color: white;
133
+ border: none;
134
+ }
135
+
136
+ .module-btn-success:hover {
137
+ background-color: #059669;
138
+ }
139
+
140
+ /* Roles */
141
+ .role-badge {
142
+ display: inline-block;
143
+ padding: 0.25rem 0.5rem;
144
+ border-radius: 0.25rem;
145
+ font-size: 0.75rem;
146
+ font-weight: 500;
147
+ }
148
+
149
+ .role-admin {
150
+ background-color: #fef3c7;
151
+ color: #92400e;
152
+ }
153
+
154
+ .role-client {
155
+ background-color: #dbeafe;
156
+ color: #1e40af;
157
+ }
158
+
159
+ /* Animations */
160
+ @keyframes slideIn {
161
+ from {
162
+ opacity: 0;
163
+ transform: translateY(-10px);
164
+ }
165
+ to {
166
+ opacity: 1;
167
+ transform: translateY(0);
168
+ }
169
+ }
170
+
171
+ .modules-modal {
172
+ animation: slideIn 0.3s ease;
173
+ }
174
+
175
+ /* Narrow layout */
176
+ @media (max-width: 768px) {
177
+ .modules-stats-grid {
178
+ grid-template-columns: 1fr;
179
+ }
180
+
181
+ .modules-table {
182
+ font-size: 0.875rem;
183
+ }
184
+
185
+ .modules-table th,
186
+ .modules-table td {
187
+ padding: 0.5rem;
188
+ }
189
+ }