I fixed the error on drupal 10.3.
When drupal retrieve a map key, it try to guess which type its parent is and expect the parent to be either a MapDataDefinition or a SequenceDataDefinition.
We were using the ListDataDefinition which is unexpected. I switched our social_media_links.platforms type to use SequenceDataDefinition (which inherit from ListDataDefinition).
I tested the patch on drupal 10.2 and 10.3.
colin.eininger → changed the visibility of the branch 3023172-missing-config-schema to active.
colin.eininger → changed the visibility of the branch 3023172-missing-config-schema to hidden.
Ok, I wasn't on 10.3 during my tests. Tried again and reproducing the error. I'm looking at the issue rn.
I have created new drupal 10.2 and 10.3 instances, installed social_media_links module with the patch from MR!12. Added a block and exported the configuration. Then removed the block and imported the configuration.
Everything works as expected.
In order to troubleshoot your problem @ilya.no, can you describe all minimal step to reproduce ? In the other issue you said "Need to create page manager page". Is that the layout builder your refering to ?
The weight of InlineImagesEmailAdjuster should be greater than the WrapAndConvertEmailAdjuster one. This way the inline images adjuster can be used in wrap templates too.
Maybe set it to 1000.
As I said earlier, OpenID Connect module module changed the way it stores configuration (from config to config entities) + The user can chose the configuration id.
So hard coding "openid_connect.client.keycloak" as #6 does is not the way to go I think. First of all, the controller would be aware of which config is actually used (e.g., putting the id of the config into the route path). This way we can give it to the service to use the right config.
I don't know in which case there can be multiple keycloak config on the same site, but It's actually possible and can be a use case (like multiple realms maybe ?).
An other idea: When the admin checks the option to replace the login page, then load a keycloak config with that option but in an undefined order (+ document this behavior) and use it.
I was just investigating this.
First of all, the KeycloakService doesn't work anymore since OpenID Connect module switched from configuration to config entities. Instead of loading openid_connect.settings.keycloak config, it should load an active keycloak client like in OpenIDConnectLoginForm::submitForm
// Loading an active keycloak client.
$clients = $this->entityTypeManager->getStorage('openid_connect_client')->loadByProperties(['plugin' => 'keycloak', 'status' => 1]);
$client = reset($clients);
// From there you can access the settings
$settings = $client->getPluginCollections()['settings'];
// or the plugin.
$plugin = $client->getPlugin();
Same for the KeycloakController, you should load an active client and then execute the same code as OpenIDConnectLoginForm::submitForm. But when I tried this solution I got an exception :
LogicException: The controller result claims to be providing relevant cache metadata, but leaked metadata was detected. Please ensure you are not rendering content too early. Returned object class: Drupal\Core\Routing\TrustedRedirectResponse
This need more investigating and test, but I don't have time to do so, hope this help.
colin.eininger → created an issue.