Skip to content

Conversation

@steffen-biehs
Copy link
Contributor

@steffen-biehs steffen-biehs commented Sep 18, 2025

Checklist

  • The PR title is short and expressive.
  • I have updated the CHANGELOG.md. Hints on formulation: Important information first, details second.
  • I have updated the Deployment Migration Notes Section in the CHANGELOG.md for any configuration / external API changes.
  • I have updated the Community Edition Postman-Collection if I changed existing APIs or added new APIs (e.g. for Management-API or API-Wrapper)
  • I have performed a self-review
  • I understand that my contributions will be contributed under the Contributor License Agreement (CLA) which has to be agreed to on your first contribution.
  • I have added / adjusted Apache 2.0 license headers to files *.ts, *.kts, *.kt, *.java and marked anything else of relevance in the NOTICE file.

@CLAassistant
Copy link

CLAassistant commented Sep 18, 2025

CLA assistant check
All committers have signed the CLA.

sovity.logging.level: 'DEBUG'
provider-connector-db:
image: 'docker.io/postgres:17-alpine'
image: 'docker.io/postgres:16-alpine'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please use postgres:17 for both images

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When I'm using v17, which was default in the version I've checked out, errors occur and the database is not working. If you want, I can reproduce the error and paste the error message as a comment

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please make sure, that you have pulled the corresponding docker container postgres:17-alpine. If it still does not work, please provide the logs.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the output when I'm running the docker compose file

[+] Running 4/4
 ✔ Container local-demo-ce-consumer-ui-1            Recreated                                                                                                                                                           0.2s 
 ✔ Container local-demo-ce-provider-connector-db-1  Recreated                                                                                                                                                           0.2s 
 ✔ Container local-demo-ce-provider-ui-1            Recreated                                                                                                                                                           0.2s 
 ✔ Container local-demo-ce-consumer-connector-db-1  Recreated                                                                                                                                                           0.2s 
Attaching to consumer-1, consumer-connector-1, consumer-connector-db-1, consumer-ui-1, provider-1, provider-connector-1, provider-connector-db-1, provider-ui-1
consumer-connector-db-1  | 
consumer-connector-db-1  | PostgreSQL Database directory appears to contain a database; Skipping initialization
consumer-connector-db-1  | 
provider-connector-db-1  | 
provider-connector-db-1  | PostgreSQL Database directory appears to contain a database; Skipping initialization
provider-connector-db-1  | 
consumer-connector-db-1  | 2025-10-30 08:19:43.449 UTC [1] FATAL:  database files are incompatible with server
consumer-connector-db-1  | 2025-10-30 08:19:43.449 UTC [1] DETAIL:  The data directory was initialized by PostgreSQL version 16, which is not compatible with this version 17.5.
provider-connector-db-1  | 2025-10-30 08:19:43.449 UTC [1] FATAL:  database files are incompatible with server
provider-connector-db-1  | 2025-10-30 08:19:43.449 UTC [1] DETAIL:  The data directory was initialized by PostgreSQL version 16, which is not compatible with this version 17.5.
dependency failed to start: container local-demo-ce-consumer-connector-db-1 is unhealthy

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've tested the docker compose at that version and it works, try resetting your volumes: docker compose down -v -t 1

Comment on lines 75 to 81
<Button
dataTestId={'btn-open-azure-blob-select'}
type="button"
onClick={() => setIsAzureOpen(true)}
>
Select Blob
</Button>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of this button, it would be better if this is another item in the "Type" Dropdown. Then decide, what looks better:

  • keep it in a dialog
  • move it directly into the form

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you mean with "another item in the "Type" Dropdown"?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok nvm, I got it. I've added a new Type in the dropdown.

}, [sasToken, storageSasToken, storageAccountName, containerName, blobName, setSelectionAllowed]);

return (
<div className="p-6 max-w-6xl mx-auto grid gap-4">
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To have this integrated in the existing UI, please take a look at other places, where we are using input forms inside dialogs, for example add-counterparty-dialog.tsx

This makes it easier to handle changes of values as well as potential validation.
Additionally, this way the form looks more similar to other forms.

Also, please think about if it would allow an easier flow for the user, if elements that should only be used later are conditionally rendered. For example, show the Blob selection only if an container was selected.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've updated the code accordingly.

) as DataOfferLiveAzureBlobFormValue;

useEffect(() => {
console.log(`azureDataAddress: ${azureDataAddress}`);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please remove any console.log's

form,
formKeyDataOfferTypeLive,
}: {
form,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

run npm run format-all to have a consistent formatting

sovity.dataspace.kind: 'sovity-mock-iam'
edc.participant.id: 'consumer'
sovity.http.protocol: 'http://'
sovity.print.config: 'true'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make sure, that the form validation is working. Right now the following error is shown:

Image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

edc.participant.id: 'consumer'
sovity.http.protocol: 'http://'
sovity.print.config: 'true'
sovity.logging.level: 'DEBUG'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest, that in the list of available containers and blobs, each entry is selectable and will automatically fill out the "Container Name" and "Blob Name" form field respectively

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added your suggested functionality.

account: values.storageAccountName,
container: values.containerName,
blobName: values.blobName,
keyName: "key1",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
keyName: "key1",

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've made changes to write down a key name (keyName) which has to be the same as used in the vault.

sovity.logging.level: 'DEBUG'
provider-connector-db:
image: 'docker.io/postgres:17-alpine'
image: 'docker.io/postgres:16-alpine'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've tested the docker compose at that version and it works, try resetting your volumes: docker compose down -v -t 1

Comment on lines +137 to +139
<DialogHeader>
<DialogTitle>Select Azure Blob</DialogTitle>
</DialogHeader>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be integrated into the form (same UX as surrounding), with the same sections as the other data source types and the building of the data source / data sink happening on submit?

Copy link
Contributor Author

@steffen-biehs steffen-biehs Nov 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've based my decision on component AddCounterpartyDialog.tsx:

<DialogHeader> <DialogTitle>Add New Chat</DialogTitle> <DialogDescription> Enter the details of the counterparty you want to chat with. </DialogDescription> </DialogHeader>

name="sasToken"
render={({ field }) => (
<FormItem>
<FormLabel>SAS Token</FormLabel>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this the same SAS token as above?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I renamed the Labels accordingly

name="sasToken"
render={({ field }) => (
<FormItem>
<FormLabel>SAS Token</FormLabel>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As @mmaeffert mentioned, an integration of the EDC secrets, wouldn't it require backend code as well, as secrets cannot be expected to be passed into a frontend?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately, I don't quite understand what the comment means. The token at that point in the dialog is only used for a query made here to Azure to display the available containers. The same applies to the blobs. After selecting the blob and closing the dialog, the entry expires. Only the storage account key is used to retrieve the blob via the extension. This is entered beforehand via the vault.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants