kaqing 1.98.86__py3-none-any.whl → 1.98.87__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.

Potentially problematic release.


This version of kaqing might be problematic. Click here for more details.

adam/app_session.py CHANGED
@@ -88,7 +88,7 @@ class AppSession:
88
88
  if not forced and self.app_login:
89
89
  return self.app_login
90
90
 
91
- idp_login: IdpLogin = Idp.login(self.host, idp_uri=idp_uri, forced=forced, use_token_from_env=use_token_from_env, use_cached_creds=use_cached_creds)
91
+ idp_login: IdpLogin = Idp.login(self.host, idp_uri=idp_uri, forced=forced, use_token_from_env=use_token_from_env, use_cached_creds=use_cached_creds, verify=False)
92
92
  if not idp_login:
93
93
  log2(f"Invalid username/password.")
94
94
 
@@ -93,23 +93,23 @@ class PostgresSession:
93
93
  # template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres +
94
94
  # | | | | | | | postgres=CTc/postgres
95
95
  # (48 rows)
96
- r = self.run_sql('\l', show_out=False)
97
- s = 0
98
- for line in r.stdout.split('\n'):
99
- line: str = line.strip(' \r')
100
- if s == 0:
101
- if 'List of databases' in line:
102
- s = 1
103
- elif s == 1:
104
- if 'Name' in line and 'Owner' in line and 'Encoding' in line:
105
- s = 2
106
- elif s == 2:
107
- if line.startswith('---------'):
108
- s = 3
109
- elif s == 3:
110
- groups = re.match(r'^\s*(\S*)\s*\|\s*(\S*)\s*\|.*', line)
111
- if groups and groups[1] != '|':
112
- dbs.append({'name': groups[1], 'owner': groups[2]})
96
+ if r := self.run_sql('\l', show_out=False):
97
+ s = 0
98
+ for line in r.stdout.split('\n'):
99
+ line: str = line.strip(' \r')
100
+ if s == 0:
101
+ if 'List of databases' in line:
102
+ s = 1
103
+ elif s == 1:
104
+ if 'Name' in line and 'Owner' in line and 'Encoding' in line:
105
+ s = 2
106
+ elif s == 2:
107
+ if line.startswith('---------'):
108
+ s = 3
109
+ elif s == 3:
110
+ groups = re.match(r'^\s*(\S*)\s*\|\s*(\S*)\s*\|.*', line)
111
+ if groups and groups[1] != '|':
112
+ dbs.append({'name': groups[1], 'owner': groups[2]})
113
113
 
114
114
  return dbs
115
115
 
@@ -120,23 +120,23 @@ class PostgresSession:
120
120
  # ----------+------------------------------------------------------------+-------+---------------
121
121
  # postgres | c3_2_admin_aclpriv | table | postgres
122
122
  # postgres | c3_2_admin_aclpriv_a | table | postgres
123
- r = self.run_sql('\dt', show_out=False)
124
- s = 0
125
- for line in r.stdout.split('\n'):
126
- line: str = line.strip(' \r')
127
- if s == 0:
128
- if 'List of relations' in line:
129
- s = 1
130
- elif s == 1:
131
- if 'Schema' in line and 'Name' in line and 'Type' in line:
132
- s = 2
133
- elif s == 2:
134
- if line.startswith('---------'):
135
- s = 3
136
- elif s == 3:
137
- groups = re.match(r'^\s*(\S*)\s*\|\s*(\S*)\s*\|.*', line)
138
- if groups and groups[1] != '|':
139
- dbs.append({'schema': groups[1], 'name': groups[2]})
123
+ if r := self.run_sql('\dt', show_out=False):
124
+ s = 0
125
+ for line in r.stdout.split('\n'):
126
+ line: str = line.strip(' \r')
127
+ if s == 0:
128
+ if 'List of relations' in line:
129
+ s = 1
130
+ elif s == 1:
131
+ if 'Schema' in line and 'Name' in line and 'Type' in line:
132
+ s = 2
133
+ elif s == 2:
134
+ if line.startswith('---------'):
135
+ s = 3
136
+ elif s == 3:
137
+ groups = re.match(r'^\s*(\S*)\s*\|\s*(\S*)\s*\|.*', line)
138
+ if groups and groups[1] != '|':
139
+ dbs.append({'schema': groups[1], 'name': groups[2]})
140
140
 
141
141
  return dbs
142
142
 
@@ -156,28 +156,35 @@ class PostgresSession:
156
156
  return r
157
157
  else:
158
158
  ns = self.namespace
159
- image = Config().get('pg.agent.image', 'seanahnsf/kaqing')
160
- pod_name = Config().get('pg.agent.name', 'kaqing-agent')
161
- timeout = Config().get('pg.agent.timeout', 3600)
159
+ pod_name = Config().get('pg.agent.name', 'ops')
160
+
161
+ if Config().get('pg.agent.just-in-time', False):
162
+ image = Config().get('pg.agent.image', 'seanahnsf/kaqing')
163
+ timeout = Config().get('pg.agent.timeout', 3600)
164
+ try:
165
+ Pods.create(ns, pod_name, image, ['sleep', f'{timeout}'], env={'NAMESPACE': ns}, sa_name='c3')
166
+ except Exception as e:
167
+ if e.status == 409:
168
+ if Pods.completed(ns, pod_name):
169
+ try:
170
+ Pods.delete(pod_name, ns)
171
+ Pods.create(ns, pod_name, image, ['sleep', f'{timeout}'], env={'NAMESPACE': ns}, sa_name='c3')
172
+ except Exception as e2:
173
+ log2("Exception when calling BatchV1Api->create_pod: %s\n" % e2)
174
+
175
+ return
176
+ else:
177
+ log2("Exception when calling BatchV1Api->create_pod: %s\n" % e)
178
+
179
+ return
180
+
181
+ Pods.wait_for_running(ns, pod_name)
162
182
 
163
183
  try:
164
- Pods.create(ns, pod_name, image, ['sleep', f'{timeout}'], env={'NAMESPACE': ns}, sa_name='c3')
165
- except Exception as e:
166
- if e.status == 409:
167
- if Pods.completed(ns, pod_name):
168
- try:
169
- Pods.delete(pod_name, ns)
170
- Pods.create(ns, pod_name, image, ['sleep', f'{timeout}'], env={'NAMESPACE': ns}, sa_name='c3')
171
- except Exception as e2:
172
- log2("Exception when calling BatchV1Api->create_pod: %s\n" % e2)
173
-
174
- return
175
- else:
176
- log2("Exception when calling BatchV1Api->create_pod: %s\n" % e)
177
-
178
- return
179
-
180
- Pods.wait_for_running(ns, pod_name)
184
+ Pods.get(ns, pod_name)
185
+ except:
186
+ log2(f"Could not locate {pod_name} pod.")
187
+ return None
181
188
 
182
189
  cmd = f'PGPASSWORD="{self.password()}" psql -h {self.endpoint()} -p {self.port()} -U {self.username()} {db} --pset pager=off -c "{sql}"'
183
190
 
adam/embedded_params.py CHANGED
@@ -1,2 +1,2 @@
1
1
  def config():
2
- return {'app': {'console-endpoint': 'https://{host}/{env}/{app}/static/console/index.html', 'cr': {'cluster-regex': '(.*?-.*?)-.*', 'group': 'ops.c3.ai', 'v': 'v2', 'plural': 'c3cassandras'}, 'label': 'c3__app_id-0', 'login': {'admin-group': '{host}/C3.ClusterAdmin', 'ingress': '{app_id}-k8singr-appleader-001', 'timeout': 5, 'session-check-url': 'https://{host}/{env}/{app}/api/8/C3/userSessionToken', 'cache-creds': True, 'cache-username': True, 'url': 'https://{host}/{env}/{app}', 'another': "You're logged in to {has}. However, for this app, you need to log in to {need}.", 'token-server-url': 'http://localhost:{port}', 'password-max-length': 128}, 'strip': '0'}, 'bash': {'workers': 32}, 'cassandra': {'service-name': 'all-pods-service'}, 'cql': {'workers': 32, 'samples': 3, 'secret': {'cluster-regex': '(.*?-.*?)-.*', 'name': '{cluster}-superuser', 'password-item': 'password'}}, 'checks': {'compactions-threshold': 250, 'cpu-busy-threshold': 98.0, 'cpu-threshold': 0.0, 'cassandra-data-path': '/c3/cassandra', 'root-disk-threshold': 50, 'cassandra-disk-threshold': 50, 'snapshot-size-cmd': "ls /c3/cassandra/data/data/*/*/snapshots | grep snapshots | sed 's/:$//g' | xargs -I {} du -sk {} | awk '{print $1}' | awk '{s+=$1} END {print s}'", 'snapshot-size-threshold': '40G', 'table-sizes-cmd': "ls -Al /c3/cassandra/data/data/ | awk '{print $9}' | sed 's/\\^r//g' | xargs -I {} du -sk /c3/cassandra/data/data/{}"}, 'get-host-id': {'workers': 32}, 'idps': {'ad': {'email-pattern': '.*@c3.ai', 'uri': 'https://login.microsoftonline.com/53ad779a-93e7-485c-ba20-ac8290d7252b/oauth2/v2.0/authorize?response_type=id_token&response_mode=form_post&client_id=00ff94a8-6b0a-4715-98e0-95490012d818&scope=openid+email+profile&redirect_uri=https%3A%2F%2Fplat.c3ci.cloud%2Fc3%2Fc3%2Foidc%2Flogin&nonce={nonce}&state=EMPTY', 'jwks-uri': 'https://login.microsoftonline.com/common/discovery/keys', 'contact': 'Please contact ted.tran@c3.ai.', 'whitelist-file': '/kaqing/members'}, 'okta': {'default': True, 'email-pattern': '.*@c3iot.com', 'uri': 'https://c3energy.okta.com/oauth2/v1/authorize?response_type=id_token&response_mode=form_post&client_id={client_id}&scope=openid+email+profile+groups&redirect_uri=https%3A%2F%2F{host}%2Fc3%2Fc3%2Foidc%2Flogin&nonce={nonce}&state=EMPTY', 'jwks-uri': 'https://c3energy.okta.com/oauth2/v1/keys'}}, 'issues': {'workers': 32}, 'logs': {'path': '/c3/cassandra/logs/system.log'}, 'medusa': {'restore-auto-complete': False}, 'nodetool': {'workers': 32, 'samples': 3, 'commands_in_line': 40}, 'pg': {'name-pattern': '^{namespace}.*-k8spg-.*', 'excludes': '.helm., -admin-secret', 'agent': {'image': 'seanahnsf/kaqing', 'name': 'kaqing-agent', 'timeout': 86400}, 'default-db': 'postgres', 'default-schema': 'postgres', 'secret': {'endpoint-key': 'postgres-db-endpoint', 'port-key': 'postgres-db-port', 'username-key': 'postgres-admin-username', 'password-key': 'postgres-admin-password'}}, 'preview': {'rows': 10}, 'processes': {'columns': 'pod,cpu,mem', 'header': 'POD_NAME,CPU,MEM/LIMIT'}, 'reaper': {'service-name': 'reaper-service', 'port-forward': {'timeout': 86400, 'local-port': 9001}, 'abort-runs-batch': 10, 'show-runs-batch': 100, 'pod': {'cluster-regex': '(.*?-.*?-.*?-.*?)-.*', 'label-selector': 'k8ssandra.io/reaper={cluster}-reaper'}, 'secret': {'cluster-regex': '(.*?-.*?)-.*', 'name': '{cluster}-reaper-ui', 'password-item': 'password'}}, 'repair': {'log-path': '/home/cassrepair/logs/', 'image': 'ci-registry.c3iot.io/cloudops/cassrepair:2.0.13', 'secret': 'ciregistryc3iotio', 'env': {'interval': 24, 'timeout': 60, 'pr': False, 'runs': 1}}, 'repl': {'start-drive': 'a', 'auto-enter-app': 'c3/c3', 'auto-enter-only-cluster': True}, 'status': {'columns': 'status,address,load,tokens,owns,host_id,gossip,compactions', 'header': '--,Address,Load,Tokens,Owns,Host ID,GOSSIP,COMPACTIONS'}, 'storage': {'columns': 'pod,volume_root,volume_cassandra,snapshots,data,compactions', 'header': 'POD_NAME,VOLUME /,VOLUME CASS,SNAPSHOTS,DATA,COMPACTIONS'}, 'watch': {'auto': 'rollout', 'timeout': 3600, 'interval': 10}, 'debug': {'timings': False, 'exit-on-error': False, 'show-parallelism': False, 'show-out': False}}
2
+ return {'app': {'console-endpoint': 'https://{host}/{env}/{app}/static/console/index.html', 'cr': {'cluster-regex': '(.*?-.*?)-.*', 'group': 'ops.c3.ai', 'v': 'v2', 'plural': 'c3cassandras'}, 'label': 'c3__app_id-0', 'login': {'admin-group': '{host}/C3.ClusterAdmin', 'ingress': '{app_id}-k8singr-appleader-001', 'timeout': 5, 'session-check-url': 'https://{host}/{env}/{app}/api/8/C3/userSessionToken', 'cache-creds': True, 'cache-username': True, 'url': 'https://{host}/{env}/{app}', 'another': "You're logged in to {has}. However, for this app, you need to log in to {need}.", 'token-server-url': 'http://localhost:{port}', 'password-max-length': 128}, 'strip': '0'}, 'bash': {'workers': 32}, 'cassandra': {'service-name': 'all-pods-service'}, 'cql': {'workers': 32, 'samples': 3, 'secret': {'cluster-regex': '(.*?-.*?)-.*', 'name': '{cluster}-superuser', 'password-item': 'password'}}, 'checks': {'compactions-threshold': 250, 'cpu-busy-threshold': 98.0, 'cpu-threshold': 0.0, 'cassandra-data-path': '/c3/cassandra', 'root-disk-threshold': 50, 'cassandra-disk-threshold': 50, 'snapshot-size-cmd': "ls /c3/cassandra/data/data/*/*/snapshots | grep snapshots | sed 's/:$//g' | xargs -I {} du -sk {} | awk '{print $1}' | awk '{s+=$1} END {print s}'", 'snapshot-size-threshold': '40G', 'table-sizes-cmd': "ls -Al /c3/cassandra/data/data/ | awk '{print $9}' | sed 's/\\^r//g' | xargs -I {} du -sk /c3/cassandra/data/data/{}"}, 'get-host-id': {'workers': 32}, 'idps': {'ad': {'email-pattern': '.*@c3.ai', 'uri': 'https://login.microsoftonline.com/53ad779a-93e7-485c-ba20-ac8290d7252b/oauth2/v2.0/authorize?response_type=id_token&response_mode=form_post&client_id=00ff94a8-6b0a-4715-98e0-95490012d818&scope=openid+email+profile&redirect_uri=https%3A%2F%2Fplat.c3ci.cloud%2Fc3%2Fc3%2Foidc%2Flogin&nonce={nonce}&state=EMPTY', 'jwks-uri': 'https://login.microsoftonline.com/common/discovery/keys', 'contact': 'Please contact ted.tran@c3.ai.', 'whitelist-file': '/kaqing/members'}, 'okta': {'default': True, 'email-pattern': '.*@c3iot.com', 'uri': 'https://c3energy.okta.com/oauth2/v1/authorize?response_type=id_token&response_mode=form_post&client_id={client_id}&scope=openid+email+profile+groups&redirect_uri=https%3A%2F%2F{host}%2Fc3%2Fc3%2Foidc%2Flogin&nonce={nonce}&state=EMPTY', 'jwks-uri': 'https://c3energy.okta.com/oauth2/v1/keys'}}, 'issues': {'workers': 32}, 'logs': {'path': '/c3/cassandra/logs/system.log'}, 'medusa': {'restore-auto-complete': False}, 'nodetool': {'workers': 32, 'samples': 3, 'commands_in_line': 40}, 'pg': {'name-pattern': '^{namespace}.*-k8spg-.*', 'excludes': '.helm., -admin-secret', 'agent': {'name': 'ops', 'just-in-time': False, 'timeout': 86400, 'image': 'seanahnsf/kaqing'}, 'default-db': 'postgres', 'default-schema': 'postgres', 'secret': {'endpoint-key': 'postgres-db-endpoint', 'port-key': 'postgres-db-port', 'username-key': 'postgres-admin-username', 'password-key': 'postgres-admin-password'}}, 'preview': {'rows': 10}, 'processes': {'columns': 'pod,cpu,mem', 'header': 'POD_NAME,CPU,MEM/LIMIT'}, 'reaper': {'service-name': 'reaper-service', 'port-forward': {'timeout': 86400, 'local-port': 9001}, 'abort-runs-batch': 10, 'show-runs-batch': 100, 'pod': {'cluster-regex': '(.*?-.*?-.*?-.*?)-.*', 'label-selector': 'k8ssandra.io/reaper={cluster}-reaper'}, 'secret': {'cluster-regex': '(.*?-.*?)-.*', 'name': '{cluster}-reaper-ui', 'password-item': 'password'}}, 'repair': {'log-path': '/home/cassrepair/logs/', 'image': 'ci-registry.c3iot.io/cloudops/cassrepair:2.0.13', 'secret': 'ciregistryc3iotio', 'env': {'interval': 24, 'timeout': 60, 'pr': False, 'runs': 1}}, 'repl': {'start-drive': 'a', 'auto-enter-app': 'c3/c3', 'auto-enter-only-cluster': True}, 'status': {'columns': 'status,address,load,tokens,owns,host_id,gossip,compactions', 'header': '--,Address,Load,Tokens,Owns,Host ID,GOSSIP,COMPACTIONS'}, 'storage': {'columns': 'pod,volume_root,volume_cassandra,snapshots,data,compactions', 'header': 'POD_NAME,VOLUME /,VOLUME CASS,SNAPSHOTS,DATA,COMPACTIONS'}, 'watch': {'auto': 'rollout', 'timeout': 3600, 'interval': 10}, 'debug': {'timings': False, 'exit-on-error': False, 'show-parallelism': False, 'show-out': False}}
adam/sso/authenticator.py CHANGED
@@ -9,7 +9,7 @@ class Authenticator:
9
9
  return None
10
10
 
11
11
  @abstractmethod
12
- def authenticate(self, idp_uri: str, app_host: str, username: str, password: str) -> IdpLogin:
12
+ def authenticate(self, idp_uri: str, app_host: str, username: str, password: str, verify: bool = True) -> IdpLogin:
13
13
  pass
14
14
 
15
15
  def extract(self, form: str, pattern: re.Pattern):
adam/sso/authn_ad.py CHANGED
@@ -24,7 +24,7 @@ class AdAuthenticator(Authenticator):
24
24
 
25
25
  return cls.instance
26
26
 
27
- def authenticate(self, idp_uri: str, app_host: str, username: str, password: str) -> IdpLogin:
27
+ def authenticate(self, idp_uri: str, app_host: str, username: str, password: str, verify: bool) -> IdpLogin:
28
28
  parsed_url = urlparse(idp_uri)
29
29
  query_string = parsed_url.query
30
30
  params = parse_qs(query_string)
@@ -84,6 +84,9 @@ class AdAuthenticator(Authenticator):
84
84
  if not id_token:
85
85
  raise AdException('Invalid username/password.')
86
86
 
87
+ if not verify:
88
+ return IdpLogin(redirect_url, id_token, state_token, username, idp_uri=idp_uri, id_token_obj=None, session=session)
89
+
87
90
  parsed = self.parse_id_token(id_token)
88
91
  roles = parsed.groups
89
92
  roles.append(username)
adam/sso/authn_okta.py CHANGED
@@ -23,7 +23,7 @@ class OktaAuthenticator(Authenticator):
23
23
 
24
24
  return cls.instance
25
25
 
26
- def authenticate(self, idp_uri: str, app_host: str, username: str, password: str) -> IdpLogin:
26
+ def authenticate(self, idp_uri: str, app_host: str, username: str, password: str, verify: bool) -> IdpLogin:
27
27
  parsed_url = urlparse(idp_uri)
28
28
  query_string = parsed_url.query
29
29
  params = parse_qs(query_string)
@@ -71,6 +71,10 @@ class OktaAuthenticator(Authenticator):
71
71
 
72
72
  raise OktaException('Invalid username/password.')
73
73
 
74
+ if not verify:
75
+ # just relay id_token, it will be verified by SP
76
+ return IdpLogin(redirect_url, id_token, state_token, username, idp_uri=idp_uri, id_token_obj=None, session=session)
77
+
74
78
  if group := Config().get('app.login.admin-group', '{host}/C3.ClusterAdmin').replace('{host}', app_host):
75
79
  parsed = OktaAuthenticator.parse_id_token(okta_host, id_token)
76
80
  if group not in parsed.groups:
adam/sso/idp.py CHANGED
@@ -28,7 +28,7 @@ class Idp:
28
28
 
29
29
  return cls.instance
30
30
 
31
- def login(app_host: str, username: str = None, idp_uri: str = None, forced = False, use_token_from_env = True, use_cached_creds = True) -> IdpLogin:
31
+ def login(app_host: str, username: str = None, idp_uri: str = None, forced = False, use_token_from_env = True, use_cached_creds = True, verify = True) -> IdpLogin:
32
32
  session: IdpSession = IdpSession.create(username, app_host, app_host, idp_uri=idp_uri)
33
33
 
34
34
  if use_token_from_env:
@@ -95,13 +95,13 @@ class Idp:
95
95
 
96
96
  if username and password:
97
97
  # if uploading kubeconfig file fails many times, you will be locked out
98
- # kubeconfig file content has first char as tab and length of bigger than 128
98
+ # kubeconfig file content has first char as tab or length of bigger than 128
99
99
  if password[0] == '\t' or len(password) > Config().get('app.login.password-max-length', 128):
100
100
  if r := Idp.try_kubeconfig(username, password):
101
101
  log(f"You're signed in as {username}")
102
102
  return r
103
103
  else:
104
- if r := session.authenticator.authenticate(session.idp_uri, app_host, username, password):
104
+ if r := session.authenticator.authenticate(session.idp_uri, app_host, username, password, verify=verify):
105
105
  log(f"You're signed in as {username}")
106
106
  return r
107
107
  finally:
adam/version.py CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
- __version__ = "1.98.86" #: the working version
4
+ __version__ = "1.98.87" #: the working version
5
5
  __release__ = "1.0.0" #: the release version
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kaqing
3
- Version: 1.98.86
3
+ Version: 1.98.87
4
4
  Summary: UNKNOWN
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -1,12 +1,12 @@
1
1
  adam/__init__.py,sha256=oVw1FNd9HZPJ7wm6BNn5ybyNGJLjJ8kopMeBiwgMaOI,59
2
- adam/app_session.py,sha256=K_Hk6M63EKEdEXGBivqzZRrCGq3ZkhjRM03Hjw0cDTc,6955
2
+ adam/app_session.py,sha256=Klypm4JYHOlovaRCHAZ2P_Mj_nheMlcQgX403R0TJGk,6969
3
3
  adam/apps.py,sha256=UTpUJBAMRFvR8kJZwileGC0UmPvsOjJ_AgvWoGmnIFI,6701
4
4
  adam/batch.py,sha256=P_bQUPaS-38cVwdPnLwOwlirQuyHQiPNhYteV-y7B68,24108
5
5
  adam/cli.py,sha256=03pIZdomAu7IL-GSP6Eun_PKwwISShRAmfx6eVRPGC0,458
6
6
  adam/cli_group.py,sha256=W3zy1BghCtVcEXizq8fBH-93ZRVVwgAyGPzy0sHno1Y,593
7
7
  adam/config.py,sha256=38UcmYRxf-Kq4iPbKS7tNPQqN64fam1bWNy6jhWREd0,2552
8
8
  adam/embedded_apps.py,sha256=lKPx63mKzJbNmwz0rgL4gF76M9fDGxraYTtNAIGnZ_s,419
9
- adam/embedded_params.py,sha256=dDK6TfDRdUqbLkj6UaQK7U9_ER7-3BmwAHqpPKbnQ5w,4170
9
+ adam/embedded_params.py,sha256=Ol383-6KkjvhbMJj54SSpe5JIT5M5_BL20_G9Z3_43U,4184
10
10
  adam/log.py,sha256=gg5DK52wLPc9cjykeh0WFHyAk1qI3HEpGaAK8W2dzXY,1146
11
11
  adam/pod_exec_result.py,sha256=nq0xnCNOpUGBSijGF0H-YNrwBc9vUQs4DkvLMIFS5LQ,951
12
12
  adam/repl.py,sha256=wEzkXaFaT1PWWYI3AZ32j01efN7HpL2xvMfGLEmYIL4,7036
@@ -14,7 +14,7 @@ adam/repl_commands.py,sha256=8OtR14WbCpFNS4CYH8g9xgarXvVr3fZa9XzAVmtBphI,3912
14
14
  adam/repl_session.py,sha256=uIogcvWBh7wd8QQ-p_JgLsyJ8YJgINw5vOd6JIsd7Vo,472
15
15
  adam/repl_state.py,sha256=QarrUAwYWOz3YTemtaf2opbHLa5a3LEsyuonNwhvOhk,7131
16
16
  adam/utils.py,sha256=j7p7iruLuV11swa0z9ZLBgoJHu_nkTSVKtQe0q71gmk,7025
17
- adam/version.py,sha256=yNGjBFrTZ06XpSJo_H-75KNiUMrf7yk1-aRokauiv0I,140
17
+ adam/version.py,sha256=HuBZ-Db_NiPqwtS8rlERwa6S7uU0T4IqqGe5ZuhMheg,140
18
18
  adam/checks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  adam/checks/check.py,sha256=Qopr3huYcMu2bzQgb99dEUYjFzkjKHRI76S6KA9b9Rk,702
20
20
  adam/checks/check_context.py,sha256=FEHkQ32jY1EDopQ2uYWqy9v7aEEX1orLpJWhopwAlh4,402
@@ -95,7 +95,7 @@ adam/commands/postgres/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
95
95
  adam/commands/postgres/postgres.py,sha256=ugnQulU6h3pSySYRwU801raxqsC8W5DcFLSbqnk7SPo,3597
96
96
  adam/commands/postgres/postgres_ls.py,sha256=HwZTgwGKXUqHX33S8aQPF6FqCrLqtoz4cLyJV2SpoE0,1186
97
97
  adam/commands/postgres/postgres_preview.py,sha256=OhnWe6SKf2Z8rBW7_NJEvJFlLqPUKMr528VPVtoT0yw,1306
98
- adam/commands/postgres/postgres_session.py,sha256=cpx5vlH6V9XgRPKC_YzDXh2OeeuSa_z4dJU5TV6OxNo,8512
98
+ adam/commands/postgres/postgres_session.py,sha256=u9KWgIWt1PknlpPMPtk6s8dwi0rgrHAuozvuDFUtoyE,8933
99
99
  adam/commands/reaper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
100
100
  adam/commands/reaper/reaper.py,sha256=SbxXgJ6b4wdXx5a1Fps71iEa1hmycWbArh1oC5bS83M,2677
101
101
  adam/commands/reaper/reaper_forward.py,sha256=mUp409MzT91cVXGxoPfBGceaR3qZ0rVdWKGdyzPNzSA,3177
@@ -143,17 +143,17 @@ adam/k8s_utils/services.py,sha256=EOJJGACVbbRvu5T3rMKqIJqgYic1_MSJ17EA0TJ6UOk,31
143
143
  adam/k8s_utils/statefulsets.py,sha256=PZDEhy34aXxLkbW1-RsOC0E4D0w0pHyoIQGHvcAzSAk,4606
144
144
  adam/k8s_utils/volumes.py,sha256=MzYeH80NqKlhdadx6d0tW-j8vTOCUYWx7wRURIZWKZ8,843
145
145
  adam/sso/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
146
- adam/sso/authenticator.py,sha256=WD89YfWWt0qCqqm2q1LQ5UxbJnTJIm15WT1xXx4ArX8,594
147
- adam/sso/authn_ad.py,sha256=lnpH4jOyAw22leYzbuu7GstNLUOvf77FJOKuzgwB6HU,5746
148
- adam/sso/authn_okta.py,sha256=MWSwI3k88QoDOneDFhu221OrAi4LxfVEaBSBxWLZzAg,4302
146
+ adam/sso/authenticator.py,sha256=BCm16L9zf5aLU47-sTCnudn2zLPwd8M2wwRminJfsqw,615
147
+ adam/sso/authn_ad.py,sha256=BfKoltUG3jP0vNe-MImhnjkufBo79aH1HGZcQtHFH_Q,5912
148
+ adam/sso/authn_okta.py,sha256=TV5vg7OEQPGFG_DSUQnWn37nbMX_qszZB0GRuQl6kGM,4529
149
149
  adam/sso/cred_cache.py,sha256=7WA5rIy1wlr_GCF-Z6xRb6LzRu-Cvou-IkY7hWC3Zpc,2099
150
150
  adam/sso/id_token.py,sha256=wmVZ8S0sjScnOxmSvOKlIEKgnvdWqhsgq9XjFe355O4,744
151
- adam/sso/idp.py,sha256=P8XXIjpFzeKsbbO24NMvEzQBGHkj15go7qRpSwhS9_4,5775
151
+ adam/sso/idp.py,sha256=fvcwUw_URTgsO6ySaqTIw0zQT2qRO1IPSGhf6rPtybo,5804
152
152
  adam/sso/idp_login.py,sha256=t49CRlMyHA76BAj_kKq0Wa9URIYlzBsUCSmn7Jf5o6I,1721
153
153
  adam/sso/idp_session.py,sha256=9BUHNRf70u4rVKrVY1HKPOEmOviXvkjam8WJxmXSKIM,1735
154
154
  adam/sso/sso_config.py,sha256=5N8WZgIJQBtHUy585XLRWKjpU87_v6QluyNK9E27D5s,2459
155
- kaqing-1.98.86.dist-info/METADATA,sha256=fS_WXJOl25NBGD6vZ1fn5EWygTzYLMQdpjdCL7Iz-lA,133
156
- kaqing-1.98.86.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
157
- kaqing-1.98.86.dist-info/entry_points.txt,sha256=SkzhuQJUWsXOzHeZ5TgQ2c3_g53UGK23zzJU_JTZOZI,39
158
- kaqing-1.98.86.dist-info/top_level.txt,sha256=8_2PZkwBb-xDcnc8a2rAbQeJhXKXskc7zTP7pSPa1fw,5
159
- kaqing-1.98.86.dist-info/RECORD,,
155
+ kaqing-1.98.87.dist-info/METADATA,sha256=cVM-64rWKILaPnXWOUQsm8kMxjC-WWPRNpqzvWuiefo,133
156
+ kaqing-1.98.87.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
157
+ kaqing-1.98.87.dist-info/entry_points.txt,sha256=SkzhuQJUWsXOzHeZ5TgQ2c3_g53UGK23zzJU_JTZOZI,39
158
+ kaqing-1.98.87.dist-info/top_level.txt,sha256=8_2PZkwBb-xDcnc8a2rAbQeJhXKXskc7zTP7pSPa1fw,5
159
+ kaqing-1.98.87.dist-info/RECORD,,