dataflow-core 2.1.6__py3-none-any.whl → 2.1.7__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.
@@ -136,7 +136,6 @@ class DataflowBaseAuthenticator(Authenticator):
136
136
  last_name=last_name or "",
137
137
  email=email,
138
138
  role_id=role_id,
139
- active='Y',
140
139
  password='user@123',
141
140
  )
142
141
 
@@ -12,7 +12,8 @@ from .blacklist_library import BlacklistedLibrary
12
12
  from .environment_status import EnvironmentStatus
13
13
  from .session import Session
14
14
  from .server_config import ServerConfig, CustomServerConfig
15
- from .runtime import RuntimeZone
15
+ from .dataflow_zone import DataflowZone
16
+ from .role_zone import RoleZone
16
17
  from .environment_status import EnvironmentStatus
17
18
  from .user_team import UserTeam
18
19
  from .role_server import RoleServer
@@ -0,0 +1,19 @@
1
+ from sqlalchemy import Column, Integer, String, Boolean
2
+ from sqlalchemy.orm import relationship
3
+ from dataflow.db import Base
4
+
5
+ class DataflowZone(Base):
6
+ __tablename__ = "DATAFLOW_ZONE"
7
+
8
+ id = Column(Integer, primary_key=True, autoincrement=True)
9
+ slug = Column(String, unique=True, nullable=False)
10
+ display_name = Column(String, nullable=False)
11
+ is_runtime = Column(Boolean, default=False)
12
+ subdomain = Column(String)
13
+ spark_enabled = Column(Boolean, default=False)
14
+ display_order = Column(Integer, default=0)
15
+
16
+ role_zone_assocs = relationship("RoleZone", back_populates="zone")
17
+
18
+ def __repr__(self):
19
+ return f"<DataflowZone(id={self.id}, slug='{self.slug}', display_name='{self.display_name}', display_order={self.display_order})>"
dataflow/models/role.py CHANGED
@@ -2,6 +2,12 @@
2
2
  from sqlalchemy import Column, Integer, String, Enum
3
3
  from sqlalchemy.orm import relationship
4
4
  from dataflow.db import Base
5
+ import enum
6
+
7
+ class BaseRoleField(enum.Enum):
8
+ admin = "admin"
9
+ user = "user"
10
+ applicant = "applicant"
5
11
 
6
12
  class Role(Base):
7
13
  """
@@ -13,7 +19,11 @@ class Role(Base):
13
19
  id = Column(Integer, primary_key=True, index=True, autoincrement=True, nullable=False)
14
20
  name = Column(String, unique=True, nullable=False)
15
21
  description = Column(String, nullable=True)
16
- base_role = Column(Enum('admin', 'user', 'applicant', name='base_role_field'), default='user', nullable=False)
22
+ base_role = Column(Enum(BaseRoleField), nullable=False, default=BaseRoleField.user)
17
23
 
18
24
  users = relationship("User", back_populates="role_details", cascade="all, delete-orphan")
19
- role_server_assocs = relationship("RoleServer", back_populates="role")
25
+ role_server_assocs = relationship("RoleServer", back_populates="role")
26
+ role_zone_assocs = relationship("RoleZone", back_populates="role")
27
+
28
+ def __repr__(self):
29
+ return f"<Role(id={self.id}, name='{self.name}', base_role='{self.base_role}')>"
@@ -0,0 +1,17 @@
1
+ from typing import Dict, List, Optional
2
+ from sqlalchemy import Column, Integer, ForeignKey, UniqueConstraint, Boolean
3
+ from sqlalchemy.orm import relationship
4
+ from dataflow.db import Base
5
+
6
+ class RoleZone(Base):
7
+ __tablename__ = 'ROLE_ZONE'
8
+
9
+ role_id = Column(Integer, ForeignKey('ROLE.id', ondelete="CASCADE"), primary_key=True)
10
+ zone_id = Column(Integer, ForeignKey('DATAFLOW_ZONE.id', ondelete="CASCADE"), primary_key=True)
11
+ is_default = Column(Boolean, default=False, nullable=False)
12
+
13
+ role = relationship("Role", back_populates="role_zone_assocs")
14
+ zone = relationship("DataflowZone", back_populates="role_zone_assocs")
15
+
16
+ def __repr__(self):
17
+ return f"<RoleZone(role_id={self.role_id}, zone_id={self.zone_id}, is_default={self.is_default})>"
dataflow/models/user.py CHANGED
@@ -1,5 +1,5 @@
1
1
  """models.py"""
2
- from sqlalchemy import Column, Integer, String, Boolean, LargeBinary, Enum, ForeignKey
2
+ from sqlalchemy import Column, Integer, String, Boolean, LargeBinary, ForeignKey
3
3
  from sqlalchemy.orm import relationship
4
4
  from dataflow.db import Base
5
5
 
@@ -18,7 +18,7 @@ class User(Base):
18
18
  role_id = Column(Integer, ForeignKey('ROLE.id'), nullable=False)
19
19
  image = Column(LargeBinary)
20
20
  image_url = Column(String, nullable=True)
21
- active = Column(Enum('N', 'Y', name='active_field'), nullable=False, server_default=str("N"))
21
+ active = Column(Boolean, nullable=False, default=True)
22
22
  password = Column(String, nullable=False)
23
23
  active_env = Column(String)
24
24
  active_env_type = Column(String, nullable=True)
@@ -26,9 +26,11 @@ def get_user_from_session(session_id: str, db: Session):
26
26
  raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="User not found")
27
27
 
28
28
  base_role = user.role_details.base_role
29
+ role_id = user.role_details.id
29
30
  role_name = user.role_details.name
30
31
  user.base_role = base_role
31
32
  user.role = role_name
33
+ user.role_id = role_id
32
34
 
33
35
  return user
34
36
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dataflow-core
3
- Version: 2.1.6
3
+ Version: 2.1.7
4
4
  Summary: Dataflow core package
5
5
  Author: Dataflow
6
6
  Author-email:
@@ -1,6 +1,6 @@
1
1
  authenticator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  authenticator/dataflowairflowauthenticator.py,sha256=gEdCiL2yJQ7lYvAwbrjcAkccVMfehoMJldw9eU7cc2s,2243
3
- authenticator/dataflowhubauthenticator.py,sha256=-wFEPEQfgCgtghC0Eo9e18B-OU1JsPKam0tbQaYCg1s,13563
3
+ authenticator/dataflowhubauthenticator.py,sha256=Jioo4a9ufDa-jZFL8GCvKnLZkOTVIeU0E7QbWqyPmoQ,13535
4
4
  authenticator/dataflowsupersetauthenticator.py,sha256=NkAmDaIc-ui-qEolu4xz_UY7P_2g8111hwNjPvAOW1Q,2839
5
5
  dataflow/__init__.py,sha256=WTRg8HMpMWSgxYJ9ZGVldx4k07fAbta3mBmZ1hG9mWE,30
6
6
  dataflow/configuration.py,sha256=7To6XwH1eESiYp39eqPcswXWwrdBUdPF6xN6WnazOF0,663
@@ -8,10 +8,11 @@ dataflow/database_manager.py,sha256=tJHMuOZ9Muskrh9t4uLRlTuFU0VkHAzoHlGP5DORIC4,
8
8
  dataflow/dataflow.py,sha256=-UYZst7EO1GgaOjlAkKu-tu7RC6XsgadGeDp1MOvZiA,7439
9
9
  dataflow/db.py,sha256=73ojGqpCTRVTlPszD73Ozhjih_BI2KTHmazqxxL6iWk,3780
10
10
  dataflow/environment.py,sha256=05F-dBRyZu2mr26vuiuJU13pfgtRpA9yW69bk83HGUw,27239
11
- dataflow/models/__init__.py,sha256=7Wnx1_8eRd5QW07QlcY4-Pdt_3OD7dXm2-CcV0S6uy4,853
11
+ dataflow/models/__init__.py,sha256=WnlLd-0T3HYtJloDms1a58lN66WzBIbBSTReDXD6HaQ,892
12
12
  dataflow/models/app_types.py,sha256=yE_ZB13lhpK7AZ7PyBwnQlf0RlIHYs_-vdMKx7_RMlY,379
13
13
  dataflow/models/blacklist_library.py,sha256=B2oi3Z8GcR_glhLAyinFk0W8c9txXvm3uOER6dY-q7I,991
14
14
  dataflow/models/connection.py,sha256=_VJL3KuIrm8t4lJmtunIL3-AXF9Yvi5wUolzdR3tE0E,1017
15
+ dataflow/models/dataflow_zone.py,sha256=yFCvQXos5M1cU7ksbVSO338_RkT3hkdw2wr3kCJ_rec,769
15
16
  dataflow/models/environment.py,sha256=300CUwx7d7bjadrMsTch7NSRYLCuf9AK9WVzlT26CAc,2616
16
17
  dataflow/models/environment_status.py,sha256=lvPDNUsUoTW9D97B07aKqJQHRKp4LvPM28pQDMPH1ac,536
17
18
  dataflow/models/git_ssh.py,sha256=W15SDypxzGOz_aZkHEnVZ6DIMVsjAsbSIXVIEt2mPYU,694
@@ -19,13 +20,13 @@ dataflow/models/pinned_projects.py,sha256=I-XMQq7__XJJi2lyOdEvQEfhPRz8D6KHA6Cbav
19
20
  dataflow/models/project_details.py,sha256=iNb95L3UGjcC_Ws6FiUTDANCUFhYWpnsKraS6rmCyRU,1098
20
21
  dataflow/models/recent_project_studio.py,sha256=m12KGCsv453C1ijHjfVD8E7cJ7Og_0N8uc7_9VlfkYw,812
21
22
  dataflow/models/recent_projects.py,sha256=OFd5MSRXVRHs9UbvUNoJBBnh9rgsJ0lwE23wm5_Hc5w,321
22
- dataflow/models/role.py,sha256=_I5F2TFox_k2-LGgjVuO2PIW9-gpwpoX8Te7m024A8k,693
23
+ dataflow/models/role.py,sha256=0fgLjCx7aETRwCV5SW0-4PQBWzWddWO9a_ObJA14VOY,962
23
24
  dataflow/models/role_server.py,sha256=mMcfjsGX1cY8hOAOBBmrZgw8ozdfuvjKJoBlR6F0Kdc,689
24
- dataflow/models/runtime.py,sha256=OiuBfZTMg81U10GS00DxfhiAmHlcyQUw5LBR8RaPl7s,415
25
+ dataflow/models/role_zone.py,sha256=uH8JheWyzUWcRECRzYuzdphUAUXeU5zRVA1Bhuz3h9w,772
25
26
  dataflow/models/server_config.py,sha256=8ocKT8tPen9tedO8BLPEfkWxUEIHaqvA2L-qEhrFND0,1385
26
27
  dataflow/models/session.py,sha256=c8TI6qXsM8utzp5vSQtAOXJSbgasnyu-a0qSAvA-rWs,459
27
28
  dataflow/models/team.py,sha256=fjkqF0N4PSwSYTgHjEQl9wuC7yumd0iOb5nNFePI6q4,488
28
- dataflow/models/user.py,sha256=agxhZkkJ6C6_ZqNX-ISTBySeBz5kPw-OM_POMn_MESU,1086
29
+ dataflow/models/user.py,sha256=qFvkU6hZQzv-QWCC8nDKonnpl2Z2YEqMni5iUVQpMB0,1041
29
30
  dataflow/models/user_environment.py,sha256=yI9NutULcLiwlycuEin6ROe6o1Sjdv_sgw2MEkJFeYg,568
30
31
  dataflow/models/user_team.py,sha256=r_fmKvf6JuGgiiI9TXWjVG2QZ3WOvDrOwYWVQ3r8oWo,659
31
32
  dataflow/models/variables.py,sha256=Sinvv3zFYni5i_GrL69cVfhCh4tOOaIHiEzWYRJ-i10,1132
@@ -34,11 +35,11 @@ dataflow/scripts/create_environment.sh,sha256=3FHgNplJuEZvyTsLqlCJNX9oyfXgsfqn80
34
35
  dataflow/scripts/update_environment.sh,sha256=2dtn2xlNi6frpig-sqlGE1_IKRbbkqYOCpf_qyMKKII,992
35
36
  dataflow/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
37
  dataflow/utils/aws_secrets_manager.py,sha256=A_fNs9VNah9dDdl9NhqizJamYU7xr2v_GXlw9InEDFk,2380
37
- dataflow/utils/get_current_user.py,sha256=akjcUyTpmMdAZj9LFGSTs76hjBRjltNk9hLUqC_BdkA,1140
38
+ dataflow/utils/get_current_user.py,sha256=4nSO3SPVMZhW-MsIgxR3f9ZzrFaIZIuyrM6hvfyE7PQ,1202
38
39
  dataflow/utils/json_handler.py,sha256=5_7WdypegRBDe2HSqBXyrJAdd92wsha8qRcmQvCj1TA,782
39
40
  dataflow/utils/logger.py,sha256=7BFrOq5Oiqn8P4XZbgJzMP5O07d2fpdECbbfsjrUuHw,1213
40
- dataflow_core-2.1.6.dist-info/METADATA,sha256=riTs6HqJEWRlVFoaXya_aF98d_tJgB6TbuBBpIaTABo,301
41
- dataflow_core-2.1.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
42
- dataflow_core-2.1.6.dist-info/entry_points.txt,sha256=ppj_EIbYrJJwCPg1kfdsZk5q1N-Ejfis1neYrnjhO8o,117
43
- dataflow_core-2.1.6.dist-info/top_level.txt,sha256=SZsUOpSCK9ntUy-3Tusxzf5A2e8ebwD8vouPb1dPt_8,23
44
- dataflow_core-2.1.6.dist-info/RECORD,,
41
+ dataflow_core-2.1.7.dist-info/METADATA,sha256=CeAiZQe1R8cUKi06Zzv2YBoY4lcfzrRUPEUJG73gMZA,301
42
+ dataflow_core-2.1.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
43
+ dataflow_core-2.1.7.dist-info/entry_points.txt,sha256=ppj_EIbYrJJwCPg1kfdsZk5q1N-Ejfis1neYrnjhO8o,117
44
+ dataflow_core-2.1.7.dist-info/top_level.txt,sha256=SZsUOpSCK9ntUy-3Tusxzf5A2e8ebwD8vouPb1dPt_8,23
45
+ dataflow_core-2.1.7.dist-info/RECORD,,
@@ -1,11 +0,0 @@
1
- from sqlalchemy import Column, Integer, String, Boolean
2
- from dataflow.db import Base
3
-
4
- class RuntimeZone(Base):
5
- __tablename__ = "RUNTIME_ZONE"
6
-
7
- id = Column(Integer, primary_key=True, autoincrement=True, unique=True)
8
- name = Column(String, unique=True, nullable=False)
9
- display_name = Column(String, nullable=False)
10
- display_order = Column(Integer)
11
- spark_enabled = Column(Boolean, default=False)