diff --git a/api/chalicelib/blueprints/bp_core_dynamic.py b/api/chalicelib/blueprints/bp_core_dynamic.py index b695ab54a..59df33c84 100644 --- a/api/chalicelib/blueprints/bp_core_dynamic.py +++ b/api/chalicelib/blueprints/bp_core_dynamic.py @@ -1,23 +1,21 @@ from chalice import Blueprint, Response from chalicelib import _overrides -from chalicelib.core import metadata, errors_favorite_viewed, slack, alerts, sessions, integration_github, \ - integrations_manager +from chalicelib.core import boarding +from chalicelib.core import errors +from chalicelib.core import license +from chalicelib.core import metadata, errors_favorite_viewed, slack, alerts, sessions, integrations_manager, assist +from chalicelib.core import notifications +from chalicelib.core import projects +from chalicelib.core import signup +from chalicelib.core import tenants +from chalicelib.core import users +from chalicelib.core import webhook +from chalicelib.core.collaboration_slack import Slack from chalicelib.utils import captcha from chalicelib.utils import helper from chalicelib.utils.helper import environ -from chalicelib.core import tenants -from chalicelib.core import signup -from chalicelib.core import users -from chalicelib.core import projects -from chalicelib.core import errors -from chalicelib.core import notifications -from chalicelib.core import boarding -from chalicelib.core import webhook -from chalicelib.core import license -from chalicelib.core.collaboration_slack import Slack - app = Blueprint(__name__) _overrides.chalice_app(app) @@ -47,6 +45,7 @@ def login(): c["projects"] = projects.get_projects(tenant_id=tenant_id, recording_state=True, recorded=True, stack_integrations=True, version=True) c["smtp"] = helper.has_smtp() + c["iceServers"] = assist.get_ice_servers() return { 'jwt': r.pop('jwt'), 'data': { @@ -68,7 +67,8 @@ def get_account(context): "metadata": metadata.get_remaining_metadata_with_count(context['tenantId']) }, **license.get_status(context["tenantId"]), - "smtp": helper.has_smtp() + "smtp": helper.has_smtp(), + "iceServers": assist.get_ice_servers() } } diff --git a/api/chalicelib/core/assist.py b/api/chalicelib/core/assist.py index dbfe8269b..1a89df032 100644 --- a/api/chalicelib/core/assist.py +++ b/api/chalicelib/core/assist.py @@ -1,6 +1,7 @@ -from chalicelib.utils import pg_client, helper -from chalicelib.core import projects, sessions, sessions_metas import requests + +from chalicelib.core import projects, sessions, sessions_metas +from chalicelib.utils import pg_client, helper from chalicelib.utils.helper import environ SESSION_PROJECTION_COLS = """s.project_id, @@ -72,3 +73,8 @@ def is_live(project_id, session_id, project_key=None): return False connected_peers = connected_peers.json().get("data", []) return str(session_id) in connected_peers + + +def get_ice_servers(): + return environ.get("iceServers") if environ.get("iceServers") is not None \ + and len(environ["iceServers"]) > 0 else None diff --git a/api/chalicelib/core/users.py b/api/chalicelib/core/users.py index c001ea5e2..7cf5c6c34 100644 --- a/api/chalicelib/core/users.py +++ b/api/chalicelib/core/users.py @@ -1,16 +1,14 @@ import json +import secrets -from chalicelib.core import authorizers, metadata, projects - +from chalicelib.core import authorizers, metadata, projects, assist +from chalicelib.core import tenants +from chalicelib.utils import dev from chalicelib.utils import helper from chalicelib.utils import pg_client -from chalicelib.utils import dev from chalicelib.utils.TimeUTC import TimeUTC from chalicelib.utils.helper import environ -from chalicelib.core import tenants -import secrets - def __generate_invitation_token(): return secrets.token_urlsafe(64) @@ -440,6 +438,7 @@ def change_password(tenant_id, user_id, email, old_password, new_password): c["projects"] = projects.get_projects(tenant_id=tenant_id, recording_state=True, recorded=True, stack_integrations=True) c["smtp"] = helper.has_smtp() + c["iceServers"]: assist.get_ice_servers() return { 'jwt': r.pop('jwt'), 'data': { @@ -467,6 +466,7 @@ def set_password_invitation(user_id, new_password): c["projects"] = projects.get_projects(tenant_id=tenant_id, recording_state=True, recorded=True, stack_integrations=True) c["smtp"] = helper.has_smtp() + c["iceServers"]: assist.get_ice_servers() return { 'jwt': r.pop('jwt'), 'data': { diff --git a/ee/api/chalicelib/blueprints/bp_core_dynamic.py b/ee/api/chalicelib/blueprints/bp_core_dynamic.py index 15e471d63..694f2f5ca 100644 --- a/ee/api/chalicelib/blueprints/bp_core_dynamic.py +++ b/ee/api/chalicelib/blueprints/bp_core_dynamic.py @@ -1,23 +1,21 @@ from chalice import Blueprint, Response from chalicelib import _overrides -from chalicelib.core import metadata, errors_favorite_viewed, slack, alerts, sessions, integration_github, \ - integrations_manager +from chalicelib.core import boarding +from chalicelib.core import errors +from chalicelib.core import license +from chalicelib.core import metadata, errors_favorite_viewed, slack, alerts, sessions, integrations_manager, assist +from chalicelib.core import notifications +from chalicelib.core import projects +from chalicelib.core import signup +from chalicelib.core import tenants +from chalicelib.core import users +from chalicelib.core import webhook +from chalicelib.core.collaboration_slack import Slack from chalicelib.utils import captcha, SAML2_helper from chalicelib.utils import helper from chalicelib.utils.helper import environ -from chalicelib.core import tenants -from chalicelib.core import signup -from chalicelib.core import users -from chalicelib.core import projects -from chalicelib.core import errors -from chalicelib.core import notifications -from chalicelib.core import boarding -from chalicelib.core import webhook -from chalicelib.core import license -from chalicelib.core.collaboration_slack import Slack - app = Blueprint(__name__) _overrides.chalice_app(app) @@ -70,7 +68,8 @@ def get_account(context): }, **license.get_status(context["tenantId"]), "smtp": environ["EMAIL_HOST"] is not None and len(environ["EMAIL_HOST"]) > 0, - "saml2": SAML2_helper.is_saml2_available() + "saml2": SAML2_helper.is_saml2_available(), + "iceServers": assist.get_ice_servers() } } diff --git a/ee/api/chalicelib/core/users.py b/ee/api/chalicelib/core/users.py index 268bfb5bd..5fb293a66 100644 --- a/ee/api/chalicelib/core/users.py +++ b/ee/api/chalicelib/core/users.py @@ -1,7 +1,7 @@ import json import secrets -from chalicelib.core import authorizers, metadata, projects +from chalicelib.core import authorizers, metadata, projects, assist from chalicelib.core import tenants from chalicelib.utils import dev from chalicelib.utils import helper @@ -450,6 +450,7 @@ def change_password(tenant_id, user_id, email, old_password, new_password): c["projects"] = projects.get_projects(tenant_id=tenant_id, recording_state=True, recorded=True, stack_integrations=True) c["smtp"] = helper.has_smtp() + c["iceServers"] = assist.get_ice_servers() return { 'jwt': r.pop('jwt'), 'data': { @@ -477,6 +478,7 @@ def set_password_invitation(tenant_id, user_id, new_password): c["projects"] = projects.get_projects(tenant_id=tenant_id, recording_state=True, recorded=True, stack_integrations=True) c["smtp"] = helper.has_smtp() + c["iceServers"] = assist.get_ice_servers() return { 'jwt': r.pop('jwt'), 'data': { diff --git a/scripts/helm/app/chalice.yaml b/scripts/helm/app/chalice.yaml index f213af556..3a50d166b 100644 --- a/scripts/helm/app/chalice.yaml +++ b/scripts/helm/app/chalice.yaml @@ -63,3 +63,4 @@ env: idp_sso_url: '' idp_x509cert: '' idp_sls_url: '' + iceServers: ''