Skip to content

Commit 3346196

Browse files
authored
opt: split DTABLE_WEB_SERVICE_URL to INNER_DTABLE_WEB_SERVICE_URL for API calling (#880)
1 parent 6c5510c commit 3346196

16 files changed

Lines changed: 60 additions & 66 deletions

dtable_events/api_calls/api_calls_counter.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from dateutil import parser, relativedelta
1111
from sqlalchemy import text
1212

13-
from dtable_events.app.config import DTABLE_WEB_SERVICE_URL
13+
from dtable_events.app.config import INNER_DTABLE_WEB_SERVICE_URL
1414
from dtable_events.app.event_redis import RedisClient
1515
from dtable_events.db import init_db_session_class
1616
from dtable_events.utils import uuid_str_to_32_chars
@@ -113,7 +113,7 @@ def count_api_gateway(self, info, db_session):
113113
org_ids = list(org_counts_dict.keys())
114114
owner_ids = list(owner_ids_dict.keys())
115115
if org_ids or owner_ids_dict:
116-
dtable_web_api = DTableWebAPI(DTABLE_WEB_SERVICE_URL)
116+
dtable_web_api = DTableWebAPI(INNER_DTABLE_WEB_SERVICE_URL)
117117
try:
118118
dtable_web_api.internal_update_exceed_api_quota(month, org_ids, owner_ids)
119119
except Exception as e:

dtable_events/app/config.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,14 @@ def get_llm_prices(models):
5353
return prices
5454

5555
TIME_ZONE = configs.get('TIME_ZONE', default='UTC')
56-
DTABLE_WEB_SERVICE_URL = configs.get('DTABLE_WEB_SERVICE_URL', default='http://127.0.0.1')
56+
57+
INNER_DTABLE_WEB_SERVICE_URL = configs.get('INNER_DTABLE_WEB_SERVICE_URL', default='http://127.0.0.1')
58+
59+
DTABLE_WEB_SERVICE_URL = ''
60+
seatable_server_protocol = configs.get('SEATABLE_SERVER_PROTOCOL', 'http')
61+
seatable_server_hostname = configs.get('SEATABLE_SERVER_HOSTNAME', '')
62+
if seatable_server_protocol and seatable_server_hostname:
63+
DTABLE_WEB_SERVICE_URL = seatable_server_protocol + '://' + seatable_server_hostname.rstrip('/')
5764

5865
DTABLE_PRIVATE_KEY = configs.get('JWT_PRIVATE_KEY', default='')
5966
SECRET_KEY = configs.get('SECRET_KEY', default='')

dtable_events/automations/actions.py

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,32 @@
11
import io
22
import json
3-
import logging
43
import re
54
import time
65
import os
76
from copy import deepcopy
87
from dataclasses import dataclass, field
98
from datetime import datetime, date, timedelta, timezone
109
from email.utils import parseaddr
11-
from queue import Full
1210
from urllib.parse import unquote, urlparse, parse_qs
1311
from uuid import UUID
1412
from pathlib import Path
1513

1614
from dtable_events.utils.dtable_ai_api import DTableAIAPI
17-
import jwt
1815
import requests
1916
from dateutil import parser
2017
from sqlalchemy import text
2118

2219
from seaserv import seafile_api
2320
from dtable_events.automations.models import get_third_party_account
2421
from dtable_events.utils.utils_metadata_cache import clean_metadata, get_metadata
25-
from dtable_events.app.event_redis import redis_cache
26-
from dtable_events.app.config import DTABLE_WEB_SERVICE_URL, ENABLE_PYTHON_SCRIPT, INNER_SEATABLE_AI_SERVER_URL, SEATABLE_FAAS_URL, INNER_DTABLE_DB_URL, \
22+
from dtable_events.app.config import DTABLE_WEB_SERVICE_URL, INNER_DTABLE_WEB_SERVICE_URL, ENABLE_PYTHON_SCRIPT, INNER_SEATABLE_AI_SERVER_URL, SEATABLE_FAAS_URL, INNER_DTABLE_DB_URL, \
2723
INNER_DTABLE_SERVER_URL, ENABLE_SEATABLE_AI, AUTO_RULES_AI_CONTENT_MAX_LENGTH
2824
from dtable_events.dtable_io import send_wechat_msg, send_dingtalk_msg
2925
from dtable_events.convert_page.manager import get_playwright_manager
3026
from dtable_events.app.log import auto_rule_logger
3127
from dtable_events.notification_rules.notification_rules_utils import send_notification, fill_msg_blanks_with_sql_row
3228
from dtable_events.utils import uuid_str_to_36_chars, is_valid_email, \
33-
normalize_file_path, gen_file_get_url, gen_random_option, get_dtable_admins, \
29+
normalize_file_path, gen_file_get_url, gen_random_option, \
3430
parse_docx, parse_pdf
3531
from dtable_events.dtable_io.utils import gen_inner_file_get_url
3632
from dtable_events.utils.constants import ColumnTypes, INVOICE_TYPES
@@ -830,7 +826,7 @@ def __init__(self, auto_rule, action_type, data, msg, users, users_column_key, a
830826

831827
self.column_blanks = []
832828
self.col_name_dict = {}
833-
self.notice_api = UniversalAppAPI('notification-rule', app_uuid, DTABLE_WEB_SERVICE_URL)
829+
self.notice_api = UniversalAppAPI('notification-rule', app_uuid, INNER_DTABLE_WEB_SERVICE_URL)
834830

835831
self.init_notify(msg)
836832

@@ -1488,7 +1484,7 @@ def can_do_action(self):
14881484
if self.auto_rule.can_run_python is not None:
14891485
return self.auto_rule.can_run_python
14901486

1491-
dtable_web_api = DTableWebAPI(DTABLE_WEB_SERVICE_URL)
1487+
dtable_web_api = DTableWebAPI(INNER_DTABLE_WEB_SERVICE_URL)
14921488
try:
14931489
if self.org_id != -1:
14941490
can_run_python = dtable_web_api.can_org_run_python(self.org_id)
@@ -1506,7 +1502,7 @@ def can_do_action(self):
15061502
def get_scripts_running_limit(self):
15071503
if self.auto_rule.scripts_running_limit is not None:
15081504
return self.auto_rule.scripts_running_limit
1509-
dtable_web_api = DTableWebAPI(DTABLE_WEB_SERVICE_URL)
1505+
dtable_web_api = DTableWebAPI(INNER_DTABLE_WEB_SERVICE_URL)
15101506
try:
15111507
if self.org_id != -1:
15121508
scripts_running_limit = dtable_web_api.get_org_scripts_running_limit(self.org_id)
@@ -1529,7 +1525,7 @@ def do_action(self):
15291525
scripts_running_limit = self.get_scripts_running_limit()
15301526

15311527
# request faas url
1532-
dtable_web_api = DTableWebAPI(DTABLE_WEB_SERVICE_URL)
1528+
dtable_web_api = DTableWebAPI(INNER_DTABLE_WEB_SERVICE_URL)
15331529
try:
15341530
dtable_web_api.run_script(
15351531
uuid_str_to_36_chars(self.auto_rule.dtable_uuid),
@@ -2463,7 +2459,7 @@ def do_action(self):
24632459
auto_rule_logger.error('rule: %s submit workflow: %s append row dtable: %s, error: %s', self.auto_rule.rule_id, self.token, self.auto_rule.dtable_uuid, e)
24642460
return
24652461

2466-
dtable_web_api = DTableWebAPI(DTABLE_WEB_SERVICE_URL)
2462+
dtable_web_api = DTableWebAPI(INNER_DTABLE_WEB_SERVICE_URL)
24672463
try:
24682464
dtable_web_api.internal_submit_row_workflow(self.token, row_id, self.auto_rule.rule_id)
24692465
except Exception as e:
@@ -4563,7 +4559,7 @@ def __init__(self, data, raw_trigger, raw_actions, options):
45634559

45644560
self.dtable_server_api = DTableServerAPI(self.username, str(UUID(self.dtable_uuid)), INNER_DTABLE_SERVER_URL)
45654561
self.dtable_db_api = DTableDBAPI(self.username, str(UUID(self.dtable_uuid)), INNER_DTABLE_DB_URL)
4566-
self.dtable_web_api = DTableWebAPI(DTABLE_WEB_SERVICE_URL)
4562+
self.dtable_web_api = DTableWebAPI(INNER_DTABLE_WEB_SERVICE_URL)
45674563
self.seatable_ai_api = DTableAIAPI(self.username, self.org_id, self.dtable_uuid, INNER_SEATABLE_AI_SERVER_URL)
45684564

45694565
self.query_stats = []

dtable_events/automations/automations_pipeline.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from apscheduler.schedulers.blocking import BlockingScheduler
1010
from sqlalchemy import text
1111

12-
from dtable_events.app.config import DTABLE_WEB_SERVICE_URL, AUTOMATION_RATE_LIMIT_PERCENT, \
12+
from dtable_events.app.config import INNER_DTABLE_WEB_SERVICE_URL, AUTOMATION_RATE_LIMIT_PERCENT, \
1313
AUTOMATION_RATE_LIMIT_WINDOW_SECS, AUTOMATION_WORKERS
1414
from dtable_events.app.event_redis import RedisClient
1515
from dtable_events.app.log import auto_rule_logger
@@ -326,7 +326,7 @@ def send_exceed_system_resource_limit_notifications(self):
326326
def timed_job():
327327
orgs_map = self.exceed_system_resource_limit_entities['orgs_map']
328328
db_session = self._db_session_class()
329-
dtable_web_api = DTableWebAPI(DTABLE_WEB_SERVICE_URL)
329+
dtable_web_api = DTableWebAPI(INNER_DTABLE_WEB_SERVICE_URL)
330330
try:
331331
for org_id, missing_count in orgs_map.items():
332332
admins = get_org_admins(db_session, org_id)

dtable_events/automations/automations_stats_manager.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from dtable_events.notification_rules.notification_rules_utils import send_notification
99
from dtable_events.utils import get_dtable_admins
1010

11-
from dtable_events.app.config import SEATABLE_MYSQL_DB_CCNET_DB_NAME, DTABLE_WEB_SERVICE_URL, ORG_MEMBER_QUOTA_DEFAULT
11+
from dtable_events.app.config import SEATABLE_MYSQL_DB_CCNET_DB_NAME, INNER_DTABLE_WEB_SERVICE_URL, ORG_MEMBER_QUOTA_DEFAULT
1212
from dtable_events.app.event_redis import redis_cache
1313
from dtable_events.automations.actions import AutomationResult
1414
from dtable_events.utils.dtable_web_api import DTableWebAPI
@@ -17,7 +17,7 @@
1717
class AutomationsStatsManager:
1818

1919
def __init__(self):
20-
self.dtable_web_api = DTableWebAPI(DTABLE_WEB_SERVICE_URL)
20+
self.dtable_web_api = DTableWebAPI(INNER_DTABLE_WEB_SERVICE_URL)
2121
self.roles_cache_key = 'DTABLE_WEB_ROLES'
2222
self.roles_cache_timeout = 600
2323

dtable_events/automations/general_actions.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,16 @@
22
import logging
33
import os
44
import re
5-
import time
65
from copy import deepcopy
76
from email.utils import parseaddr
87
from uuid import UUID
98
from datetime import datetime, timedelta
109

11-
import jwt
12-
import requests
1310
from sqlalchemy import select, text
1411

1512
from seaserv import seafile_api
1613

17-
from dtable_events.app.config import DTABLE_WEB_SERVICE_URL, DTABLE_PRIVATE_KEY, SEATABLE_FAAS_AUTH_TOKEN, \
18-
ENABLE_PYTHON_SCRIPT, SEATABLE_FAAS_URL, INNER_DTABLE_DB_URL, INNER_DTABLE_SERVER_URL
14+
from dtable_events.app.config import INNER_DTABLE_WEB_SERVICE_URL, ENABLE_PYTHON_SCRIPT, SEATABLE_FAAS_URL, INNER_DTABLE_DB_URL, INNER_DTABLE_SERVER_URL
1915
from dtable_events.automations.models import BoundThirdPartyAccounts
2016
from dtable_events.dtable_io import send_wechat_msg, send_dingtalk_msg
2117
from dtable_events.notification_rules.notification_rules_utils import fill_msg_blanks_with_sql_row, send_notification
@@ -127,7 +123,7 @@ def __init__(self, dtable_uuid, table_id, db_session, view_id=None, caller='dtab
127123

128124
self.dtable_server_api = DTableServerAPI(caller, self.dtable_uuid, INNER_DTABLE_SERVER_URL)
129125
self.dtable_db_api = DTableDBAPI(caller, self.dtable_uuid, INNER_DTABLE_DB_URL)
130-
self.dtable_web_api = DTableWebAPI(DTABLE_WEB_SERVICE_URL)
126+
self.dtable_web_api = DTableWebAPI(INNER_DTABLE_WEB_SERVICE_URL)
131127

132128
self._dtable_metadata = None
133129
self._table = None
@@ -843,7 +839,7 @@ def do_action_with_row(self, converted_row):
843839
scripts_running_limit = self.get_scripts_running_limit()
844840

845841
# request faas url
846-
dtable_web_api = DTableWebAPI(DTABLE_WEB_SERVICE_URL)
842+
dtable_web_api = DTableWebAPI(INNER_DTABLE_WEB_SERVICE_URL)
847843
try:
848844
dtable_web_api.run_script(
849845
uuid_str_to_36_chars(self.context.dtable_uuid),

dtable_events/data_sync/data_sync_utils.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import time
22
import re
33
import ssl
4-
import socket
54
import logging
65
from datetime import timedelta
76
from datetime import datetime
@@ -479,7 +478,7 @@ def sync_emails(context, db_session):
479478
return 'third_party_account_invalid'
480479

481480
dtable_server_api = DTableServerAPI(username, dtable_uuid, INNER_DTABLE_SERVER_URL,
482-
server_url=DTABLE_WEB_SERVICE_URL,
481+
dtable_web_service_url=DTABLE_WEB_SERVICE_URL,
483482
repo_id=repo_id,
484483
workspace_id=workspace_id
485484
)

dtable_events/dtable_io/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1170,7 +1170,7 @@ def plugin_email_send_email(context):
11701170

11711171
send_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
11721172

1173-
dtable_server_api = DTableServerAPI(username, dtable_uuid, INNER_DTABLE_SERVER_URL, server_url=DTABLE_WEB_SERVICE_URL,
1173+
dtable_server_api = DTableServerAPI(username, dtable_uuid, INNER_DTABLE_SERVER_URL, dtable_web_service_url=DTABLE_WEB_SERVICE_URL,
11741174
repo_id=repo_id, workspace_id=workspace_id)
11751175

11761176
replied_email_row = dtable_server_api.get_row(email_table_name, email_row_id)

dtable_events/dtable_io/import_airtable.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def import_airtable(context):
6060
username,
6161
dtable_uuid,
6262
INNER_DTABLE_SERVER_URL,
63-
server_url=DTABLE_WEB_SERVICE_URL,
63+
dtable_web_service_url=DTABLE_WEB_SERVICE_URL,
6464
workspace_id=workspace_id,
6565
repo_id=repo_id
6666
)

dtable_events/dtable_io/utils.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
from sqlalchemy import text
2323
from seaserv import seafile_api, USE_GO_FILESERVER
2424

25-
from dtable_events.app.config import INNER_DTABLE_DB_URL, INNER_DTABLE_SERVER_URL, DTABLE_WEB_SERVICE_URL, INNER_FILE_SERVER_ROOT
25+
from dtable_events.app.config import INNER_DTABLE_DB_URL, INNER_DTABLE_SERVER_URL, DTABLE_WEB_SERVICE_URL, INNER_DTABLE_WEB_SERVICE_URL, INNER_FILE_SERVER_ROOT
2626
from dtable_events.dtable_io.external_app import APP_USERS_COUMNS_TYPE_MAP, match_user_info, update_app_sync, \
2727
get_row_ids_for_delete, get_app_users
2828
from dtable_events.dtable_io.task_manager import task_manager
@@ -1379,7 +1379,7 @@ def get_view_rows_from_dtable_server(dtable_uuid, table_name, view_name, usernam
13791379
def get_related_nicknames_from_dtable(dtable_uuid):
13801380
from dtable_events.utils.dtable_web_api import DTableWebAPI
13811381

1382-
dtable_web_api = DTableWebAPI(DTABLE_WEB_SERVICE_URL)
1382+
dtable_web_api = DTableWebAPI(INNER_DTABLE_WEB_SERVICE_URL)
13831383
related_users = dtable_web_api.get_related_users(dtable_uuid)
13841384
user_list = related_users['user_list']
13851385
app_user_list = related_users['app_user_list']
@@ -1396,7 +1396,7 @@ def get_related_nicknames_from_dtable(dtable_uuid):
13961396
def get_nicknames_from_dtable(user_id_list):
13971397
from dtable_events.utils.dtable_web_api import DTableWebAPI
13981398

1399-
dtable_web_api = DTableWebAPI(DTABLE_WEB_SERVICE_URL)
1399+
dtable_web_api = DTableWebAPI(INNER_DTABLE_WEB_SERVICE_URL)
14001400
user_list = dtable_web_api.get_users_common_info(user_id_list)['user_list']
14011401
return user_list
14021402

0 commit comments

Comments
 (0)