Connection Views

This module contains views to implement the Connection.

card-style detail view in the Smarter Dashboard.

class smarter.apps.connection.views.detailview.ApiConnectionDetailView(**kwargs)[source]

Bases: DocsBaseView

Renders the detail view for a Smarter dashboard ApiConnection.

This view renders a detailed manifest for a specific ApiConnection, including its configuration and metadata, in YAML format. It is intended for authenticated users and provides error handling for missing or unsupported connection kinds and names.

Parameters:
  • request (ASGIRequest) – Django HTTP request object.

  • args (tuple) – Additional positional arguments.

  • kwargs (dict) – Keyword arguments, must include ‘name’ (connection name) and ‘kind’ (connection type).

Returns:

Rendered HTML page with connection manifest details, or a 404 error page if the connection is not found or parameters are invalid.

Return type:

HttpResponse

Note

The connection name and kind must be provided and valid. Otherwise, a “not found” response is returned.

See also

ApiConnection for connection metadata retrieval. ApiV1CliDescribeApiView for API details.

Example usage:

GET /connections/connection/api-connection/my-connection/
connection: ApiConnection | None = None
property formatted_class_name: str

Helper method to get the formatted class name for logging.

get(request, *args, **kwargs)[source]

Handle GET requests to render the connection manifest detail view.

This method processes the incoming request to retrieve the specified connection’s manifest details and renders them in a user-friendly format. It performs validation on the provided connection name and kind, retrieves the connection metadata, and handles any errors that may arise during this process.

Process: 1. Extract and validate ‘name’ and ‘kind’ from kwargs. 2. Retrieve the connection metadata using the provided name and user context. 3. If the connection is found, call the API view to get the connection details 4. Convert the JSON response to YAML format for better readability. 5. Render the connection manifest detail template with the retrieved data. 6. Handle any errors that occur during the process and return appropriate error responses.

Parameters:
  • request (ASGIRequest) – Django HTTP request object.

  • args (tuple) – Additional positional arguments.

  • kwargs (dict) – Keyword arguments, must include ‘name’ (connection name) and ‘kind’ (connection type).

Returns:

Rendered HTML page with connection manifest details, or an error response if the connection is not found or parameters are invalid.

Return type:

HttpResponse

template_path: str | None = 'common/manifest_detail.html'
class smarter.apps.connection.views.detailview.SqlConnectionDetailView(**kwargs)[source]

Bases: DocsBaseView

Renders the detail view for a Smarter dashboard SqlConnection.

This view renders a detailed manifest for a specific SqlConnection, including its configuration and metadata, in YAML format. It is intended for authenticated users and provides error handling for missing or unsupported connection kinds and names.

Parameters:
  • request (ASGIRequest) – Django HTTP request object.

  • args (tuple) – Additional positional arguments.

  • kwargs (dict) – Keyword arguments, must include ‘name’ (connection name) and ‘kind’ (connection type).

Returns:

Rendered HTML page with connection manifest details, or a 404 error page if the connection is not found or parameters are invalid.

Return type:

HttpResponse

Note

The connection name and kind must be provided and valid. Otherwise, a “not found” response is returned.

See also

Connection for connection metadata retrieval. ApiV1CliDescribeApiView for API details.

Example usage:

GET /connections/connection/sql-connection/my-connection/
connection: SqlConnection | None = None
property formatted_class_name: str

Helper method to get the formatted class name for logging.

get(request, *args, **kwargs)[source]

Handle GET requests to render the connection manifest detail view.

This method processes the incoming request to retrieve the specified connection’s manifest details and renders them in a user-friendly format. It performs validation on the provided connection name and kind, retrieves the connection metadata, and handles any errors that may arise during this process.

Process: 1. Extract and validate ‘name’ and ‘kind’ from kwargs. 2. Retrieve the connection metadata using the provided name and user context. 3. If the connection is found, call the API view to get the connection details 4. Convert the JSON response to YAML format for better readability. 5. Render the connection manifest detail template with the retrieved data. 6. Handle any errors that occur during the process and return appropriate error responses.

Parameters:
  • request (ASGIRequest) – Django HTTP request object.

  • args (tuple) – Additional positional arguments.

  • kwargs (dict) – Keyword arguments, must include ‘name’ (connection name) and ‘kind’ (connection type).

Returns:

Rendered HTML page with connection manifest details, or an error response if the connection is not found or parameters are invalid.

Return type:

HttpResponse

template_path: str | None = 'common/manifest_detail.html'