@@ -47,6 +47,9 @@ class ConnectionItem:
4747 The Connection Credentials object containing authentication details for
4848 the connection. Replaces username/password/embed_password when
4949 publishing a flow, document or workbook file in the request body.
50+
51+ database_name: str
52+ The name of the database for the connection.
5053 """
5154
5255 def __init__ (self ):
@@ -62,6 +65,7 @@ def __init__(self):
6265 self .connection_credentials : ConnectionCredentials | None = None
6366 self ._query_tagging : bool | None = None
6467 self ._auth_type : str | None = None
68+ self ._database_name : str | None = None
6569
6670 @property
6771 def datasource_id (self ) -> str | None :
@@ -102,6 +106,14 @@ def auth_type(self) -> str | None:
102106 def auth_type (self , value : str | None ):
103107 self ._auth_type = value
104108
109+ @property
110+ def database_name (self ) -> str | None :
111+ return self ._database_name
112+
113+ @database_name .setter
114+ def database_name (self , value : str | None ):
115+ self ._database_name = value
116+
105117 def __repr__ (self ):
106118 return "<ConnectionItem#{_id} embed={embed_password} type={_connection_type} auth={_auth_type} username={username}>" .format (
107119 ** self .__dict__
@@ -124,6 +136,11 @@ def from_response(cls, resp, ns) -> list["ConnectionItem"]:
124136 string_to_bool (s ) if (s := connection_xml .get ("queryTagging" , None )) else None
125137 )
126138 connection_item ._auth_type = connection_xml .get ("authenticationType" , None )
139+ # The REST API GET /connections response uses "dbName" for the database
140+ # name attribute. This is different from the publish request body, which
141+ # uses "databaseName" (see _add_connections_element in request_factory.py).
142+ # Both names map to the same database_name property on ConnectionItem.
143+ connection_item ._database_name = connection_xml .get ("dbName" , None )
127144 datasource_elem = connection_xml .find (".//t:datasource" , namespaces = ns )
128145 if datasource_elem is not None :
129146 connection_item ._datasource_id = datasource_elem .get ("id" , None )
@@ -152,6 +169,10 @@ def from_xml_element(cls, parsed_response, ns) -> list["ConnectionItem"]:
152169 connection_item .server_address = connection_xml .get ("serverAddress" , None )
153170 connection_item .server_port = connection_xml .get ("serverPort" , None )
154171 connection_item ._auth_type = connection_xml .get ("authenticationType" , None )
172+ # Publish/update request bodies use "databaseName" (matching the
173+ # publish-request schema), while GET responses use "dbName". See
174+ # from_response() above and _add_connections_element() in request_factory.py.
175+ connection_item ._database_name = connection_xml .get ("databaseName" , None )
155176
156177 connection_credentials = connection_xml .find (".//t:connectionCredentials" , namespaces = ns )
157178
0 commit comments