DRF Serializers

Connection serializers.

class smarter.apps.connection.serializers.ApiConnectionSerializer(*args, **kwargs)[source]

Bases: MetaDataWithOwnershipModelSerializer

Serializer for the ApiConnection model.

This serializer exposes API connection configuration fields, including user_profile, name, description, base URL, API key, authentication method, timeout, and optional proxy settings. It is used to serialize and deserialize API connection information.

Returns:

Serialized API connection configuration.

Return type:

dict

Note

Sensitive fields such as api_key and proxy_password are handled as Smarter Secret instances and are read-only for security.

See also

  • ApiConnection

  • AccountMiniSerializer

  • smarter.apps.secret.serializers.SecretSerializer

Example usage:

from smarter.apps.connection.serializers import ApiConnectionSerializer
from smarter.apps.connection.models import ApiConnection

api_conn = ApiConnection.objects.first()
serializer = ApiConnectionSerializer(api_conn)
print(serializer.data)
# Output: {
#   "userProfile": {...},
#   "name": "...",
#   "description": "...",
#   "baseUrl": "...",
#   "apiKey": "...",
#   "authMethod": "...",
#   "timeout": ...,
#   "proxyProtocol": "...",
#   "proxyHost": "...",
#   "proxyPort": ...,
#   "proxyUsername": "...",
#   "proxyPassword": "..."
# }
class smarter.apps.connection.serializers.ConnectionSerializer(*args, **kwargs)[source]

Bases: MetaDataWithOwnershipModelSerializer

class smarter.apps.connection.serializers.SqlConnectionSerializer(*args, **kwargs)[source]

Bases: MetaDataWithOwnershipModelSerializer

Serializer for the SqlConnection model.

This serializer exposes SQL connection configuration fields in camelCase format, including connection details and optional proxy settings. It is used to serialize and deserialize SQL connection information.

Returns:

Serialized SQL connection configuration.

Return type:

dict

Note

password and proxy_password are references to Smarter Secrets instances. These do not expose raw passwords.

See also

  • SqlConnection

Example usage:

from smarter.apps.connection.serializers import SqlConnectionSerializer
from smarter.apps.connection.models import SqlConnection

conn = SqlConnection.objects.first()
serializer = SqlConnectionSerializer(conn)
print(serializer.data)
# Output: {
#   "name": "...",
#   "description": "...",
#   "hostname": "...",
#  .....
# }
smarter.apps.connection.serializers.is_sphinx_build()[source]