Skip to content

Commit

Permalink
Merge pull request #810 from rtdip/develop
Browse files Browse the repository at this point in the history
v0.12.1
  • Loading branch information
GBBBAS authored Aug 20, 2024
2 parents e47d7c8 + 6454573 commit a863d98
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 12 deletions.
10 changes: 5 additions & 5 deletions docs/sdk/authentication/azure.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,18 @@ The following section describes authentication using [Azure Active Directory.](h

1\. Import **rtdip-sdk** authentication methods with the following:

from rtdip_sdk.authentication import authenticate as auth
from rtdip_sdk.authentication import azure as auth

2\. Use any of the following authentication methods. Replace **tenant_id** , **client_id**, **certificate_path** or **client_secret** with your own details.

=== "Default Authentication"
DefaultAzureCredential = auth.DefaultAuth().authenticate()
credential = auth.DefaultAuth().authenticate()

=== "Certificate Authentication"
CertificateCredential = auth.CertificateAuth(tenant_id, client_id, certificate_path).authenticate()
credential = auth.CertificateAuth(tenant_id, client_id, certificate_path).authenticate()

=== "Client Secret Authentication"
ClientSecretCredential = auth.ClientSecretAuth(tenant_id, client_id, client_secret).authenticate()
credential = auth.ClientSecretAuth(tenant_id, client_id, client_secret).authenticate()

3\. The methods above will return back a Client Object. The following example will show you how to retrieve the access_token from a credential object. The access token will be used in later steps to connect to RTDIP via the three options (Databricks SQL Connect, PYODBC SQL Connect, TURBODBC SQL Connect).

Expand All @@ -43,7 +43,7 @@ The following section describes authentication using [Azure Active Directory.](h
Once authenticated, it is possible to retrieve tokens for specific Azure Resources by providing scopes when retrieving tokens. Please see below for examples of how to retrieve tokens for Azure resources regularly used in RTDIP.

=== "Databricks"
access_token = DefaultAzureCredential.get_token("2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default").token
access_token = credential.get_token("2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default").token

<!-- --8<-- [end:azuread] -->

Expand Down
2 changes: 1 addition & 1 deletion docs/university/essentials/api/exercise.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

In this exercise, you will learn how to run APIs on Swagger and Postman.

1. Go to [Swagger](https://ssip-api.shell.com/docs) and click the green Authorize button on the right.
1. Go to your RTDIP Swagger page and click the green Authorize button on the right.

2. Call a `Raw Get` query to retrieve some data from your time series data source.

Expand Down
4 changes: 2 additions & 2 deletions environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ dependencies:
- openai>=1.13.3,<2.0.0
- mkdocs-material==9.5.20
- mkdocs-material-extensions==1.3.1
- mkdocstrings==0.22.0
- mkdocstrings-python==1.4.0
- mkdocstrings==0.25.0
- mkdocstrings-python==1.10.8
- mkdocs-macros-plugin==1.0.1
- pygments==2.16.1
- pymdown-extensions==10.8.1
Expand Down
11 changes: 7 additions & 4 deletions src/api/v1/batch.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
from src.sdk.python.rtdip_sdk.queries.time_series import batch

from src.api.v1.models import (
BaseQueryParams,
BatchBaseQueryParams,
BaseHeaders,
BatchBodyParams,
BatchResponse,
Expand Down Expand Up @@ -128,8 +128,11 @@ async def batch_events_get(
# Parse requests into dicts required by sdk
parsed_requests = parse_batch_requests(batch_query_parameters.requests)

# Obtain max workers from environment var, otherwise default to one less than cpu count
max_workers = os.environ.get("BATCH_THREADPOOL_WORKERS", os.cpu_count() - 1)
# Obtain max workers from environment var, otherwise default to 10
max_workers = os.environ.get("BATCH_THREADPOOL_WORKERS", 10)

# ensure max_workers is an integer
max_workers = int(max_workers)

# Request the data for each concurrently with threadpool
with ThreadPoolExecutor(max_workers=max_workers) as executor:
Expand Down Expand Up @@ -172,7 +175,7 @@ async def batch_events_get(
},
)
async def batch_post(
base_query_parameters: BaseQueryParams = Depends(),
base_query_parameters: BatchBaseQueryParams = Depends(),
batch_query_parameters: BatchBodyParams = Body(default=...),
base_headers: BaseHeaders = Depends(),
limit_offset_query_parameters: LimitOffsetQueryParams = Depends(),
Expand Down
3 changes: 3 additions & 0 deletions src/api/v1/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,9 @@ def lookup_before_get(
# make default workers 3 as within one query typically will request from only a few tables at once
max_workers = os.environ.get("LOOKUP_THREADPOOL_WORKERS", 3)

# ensure max_workers is an integer
max_workers = int(max_workers)

# run function with each parameters concurrently
results = batch.get(connection, request_list, threadpool_max_workers=max_workers)

Expand Down
10 changes: 10 additions & 0 deletions src/api/v1/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,16 @@ def __init__(
self.authorization = authorization


class BatchBaseQueryParams:
def __init__(
self,
region: str = Query(..., description="Region"),
authorization: str = Depends(oauth2_scheme),
):
self.region = region
self.authorization = authorization


class MetadataQueryParams:
def __init__(
self,
Expand Down

0 comments on commit a863d98

Please sign in to comment.