Daily Log for #alfresco IRC Channel

Alfresco discussion and collaboration. Stick around a few hours after asking a question.

Official support for Enterprise subscribers: support.alfresco.com.

Joining the Channel:

Join in the conversation by getting an IRC client and connecting to #alfresco at Freenode. Our you can use the IRC web chat.

More information about the channel is in the wiki.

Getting Help

More help is available in this list of resources.

Daily Log for #alfresco

2019-04-09 07:58:42 GMT <alfresco-discord> <yreg> @Francesco Corti do me a favour and ask the platform team to sync with the activiti team, it seams Activiti-7 has a few tricks in its sleeve and it does a pretty good job with auditing

2019-04-09 07:59:47 GMT <alfresco-discord> <yreg> it also decouples the auditing part from the rest of the application

2019-04-09 08:04:34 GMT <alfresco-discord> <Francesco Corti> @yreg yeah, it is a good point and it is correct. Activiti Team did some progresses on this. The internal challenge is to be in sync between different teams. Not impossible, but it requires some works sometime. ๐Ÿ˜‰

2019-04-09 08:05:28 GMT <alfresco-discord> <Francesco Corti> The good news is that the platfomr team is aware and in the future it will be a unique Audit service, not several. Not clear the details yet. Work in progress.

2019-04-09 13:17:38 GMT <alfresco-discord> <dgradecak> anyone knows what is happening with multi tenancy in Alfresco community? if my memory is not playing with me it has been announced that it will be removed right?

2019-04-09 13:19:39 GMT <AFaust> As always with Alfresco, it is / has been deprecated first.

2019-04-09 13:20:23 GMT <alfresco-discord> <dgradecak> will they just remove it from CE or also from ENT?

2019-04-09 13:20:36 GMT <AFaust> Interestingly though, at the API level, the TenantService is still marked as @AlfrescoPublicApi and not deprecated in Alfresco 6.1

2019-04-09 13:20:51 GMT <alfresco-discord> <dgradecak> that is what I was looking too

2019-04-09 13:20:59 GMT <AFaust> So it cannot be removed in 7.x either.

2019-04-09 13:22:07 GMT <AFaust> I guess if you were to ask anyone from Alfresco at this time, you will get the default answer of "there are no specific plans yet but the Repository team is looking at it"

2019-04-09 13:22:10 GMT <alfresco-discord> <dgradecak> do you have any clue how Solr handles MT?

2019-04-09 13:22:17 GMT <alfresco-discord> <dgradecak> I mean ASS ๐Ÿ˜„

2019-04-09 13:25:46 GMT <AFaust> Both SOLR and ASS handle MT via a special field in the query request JSON containing the tenant ID. This ID is mangled together with various other IDs during indexing and/or querying (I have seen code relating to ACL and DB ID which where mangled with tenant ID)

2019-04-09 13:26:36 GMT <AFaust> There is also a special meta field in the index called TENANT which can be directly queried, which I assume is done for the regular user queries

2019-04-09 13:27:09 GMT <alfresco-discord> <dgradecak> ok that is logical, what I never checked is what alfresco does by its own for MT or they use the standard solr MT feature

2019-04-09 13:29:10 GMT <alfresco-discord> <dgradecak> well ... talking too loud ... I guess there is only one core, there is no core per tenant?

2019-04-09 14:00:48 GMT <alfresco-discord> <dgradecak> AFaust: any idea how to setup a different datasource per tenant? at least a different schema or database

2019-04-09 14:10:01 GMT <alfresco-discord> <dgradecak> what I see in TenantRoutingDataSource it always uses the same dbUrl as the "default ds" and the dbUrl could be passed as the 4th param of create tenant but is marked as // experimental (unsupported)

2019-04-09 14:10:07 GMT <alfresco-discord> <dgradecak> nice

2019-04-09 14:23:45 GMT <AFaust> Yeah . that has been experimental for a while.

2019-04-09 14:24:23 GMT <AFaust> Problem with routing tenant to different data sources is that you can easily have operations spanning multiple tenants and then would have to support XA for all the involved data sources.

2019-04-09 14:31:48 GMT <alfresco-discord> <dgradecak> well I would not think of MT in that way, but that is plausible

2019-04-09 14:34:56 GMT <alfresco-discord> <dgradecak> if I remember correctly, at one of my clients, someone from Alfresco said do not use MT

2019-04-09 14:35:11 GMT <AFaust> Think about the Alfresco Cloud use case where you authenticate against your tenant but have access to other tenants (networks) as well, and can even copy / move content between tenants...

2019-04-09 14:35:41 GMT <alfresco-discord> <dgradecak> sure, but I am not thinking about collaborating between tenants

2019-04-09 14:36:10 GMT <AFaust> Alfresco will always say "do not use XY" in order to keep their support effort low and hide those programming / design mistakes that they known...

2019-04-09 14:36:11 GMT <alfresco-discord> <dgradecak> I would like to have a separate DB and a separate filestore ... but you would say, easily doable with different instances of Alfresco

2019-04-09 14:38:16 GMT <alfresco-discord> <dgradecak> maybe that is the way to go ... single instance per client ... I am thinking of hosting an app with Alfresco under the hood, where usually I do that with a simple property checking (query time) but than all is in a single store/db and no support for "AOS" etc ... at least no correct support but permissions

2019-04-09 14:38:43 GMT <AFaust> Filestore is easily separable via routing Content Store implementations

2019-04-09 14:38:45 GMT <alfresco-discord> <dgradecak> I use to build spring boot apps with multi tenancy enabled and having a db per tenant etc ...

2019-04-09 14:38:54 GMT <alfresco-discord> <dgradecak> filestore is easy I agree

2019-04-09 14:41:04 GMT <alfresco-discord> <dgradecak> also using a TenantRoutingDataSource (spring's AbstractRoutingDataSource) would be not that hard, however I wonder what happens to the repo bootstrap etc

2019-04-09 14:42:27 GMT <alfresco-discord> <dgradecak> and when you come to that, than it does not make sense to use the same "repo" for different tenants

2019-04-09 14:43:02 GMT <alfresco-discord> <dgradecak> a proxy with different alfresco is good .. but than running an "ASS" per tenant etc ...

2019-04-09 14:44:49 GMT <alfresco-discord> <dgradecak> that is why I wonder how ASS requests data ... but what I am thinking of does not make sense in the scope of a "repository"

2019-04-09 15:07:26 GMT <alfresco-discord> <dgradecak> btw ... can you think of this, a solr core can be configured to access whatever instance of alfresco ... but 2 different alfresco instances cannot be configured to use 2 separate cores on a same SOLR ... or I missed that for a long time?

2019-04-09 15:12:24 GMT <AFaust> The problem with using SOLR / ASS as provided by Alfresco is the shared state, which conflicts with having two really distinct Repository instances use the same SOLR server.

2019-04-09 15:13:17 GMT <AFaust> E.g. model data and cache of node metadata are shared instances as far as I am aware, and by serving two different Repository instances you run the risk of overlap due to DB / ACL ID conflicts.

2019-04-09 15:13:46 GMT <AFaust> Technically speaking you can configure a SOLR to track different Alfresco instances, yes, but those side effects make this impractical.

2019-04-09 15:14:03 GMT <alfresco-discord> <dgradecak> not sure why, if those are different cores

2019-04-09 15:14:07 GMT <alfresco-discord> <dgradecak> or "collections"

2019-04-09 15:14:14 GMT <AFaust> And the cores that the Repository instances use can be configured as far as I know

2019-04-09 15:14:42 GMT <alfresco-discord> <dgradecak> the question I am trying to find out is, where alfresco "hardocdes or whatever the "stores" used as cores

2019-04-09 15:14:48 GMT <alfresco-discord> <dgradecak> where?

2019-04-09 15:14:59 GMT <alfresco-discord> <dgradecak> I never did that

2019-04-09 15:15:11 GMT <alfresco-discord> <dgradecak> but should be doable

2019-04-09 15:15:14 GMT <AFaust> solr6.store.mappings is a post-processed composite property which can be configured via alfresco-global.properties

2019-04-09 15:16:43 GMT <AFaust> They seem to have never really documented this apart from when SOLR6 was added in 5.2: https://docs.alfresco.com/5.2/concepts/repository-properties.html

2019-04-09 15:16:44 GMT <alfbot> Title:New Alfresco Content Services configuration properties | Alfresco Documentation (at docs.alfresco.com)

2019-04-09 15:17:29 GMT <AFaust> Though that support was already in place with SOLR4 before that...

2019-04-09 15:17:48 GMT <alfresco-discord> <dgradecak> are you learning the docs by heart ๐Ÿ˜„

2019-04-09 15:20:27 GMT <AFaust> No... I had to deal with these configurations back in 2013/2014 when we developed our own faceting feature on SOLR1 way before Alfresco, and later when we updated it to support SOLR4...

2019-04-09 15:21:28 GMT <AFaust> Also, "search is your friend"

2019-04-09 15:21:30 GMT <alfresco-discord> <dgradecak> any idea what DynamicSolrStoreMappingWrapperFactory is used for?

2019-04-09 15:22:09 GMT <AFaust> Handling shards in Enterprise based on the dynamic registration, as far as I am aware

2019-04-09 15:24:02 GMT <alfresco-discord> <dgradecak> so theoretically several alf instances can use a single instance of ASS

2019-04-09 15:24:24 GMT <AFaust> Yeah - only used in SolrClientUtil and protected by the useDynamicShardRegistration property and shardRegistry != null check

2019-04-09 15:24:42 GMT <alfresco-discord> <dgradecak> that is what I was looking at

2019-04-09 15:24:53 GMT <AFaust> Theoretically yes. Practically no, due to shared / global state in ASS...

2019-04-09 15:25:45 GMT <AFaust> Think about shared.properties which is named that way for a reason...

2019-04-09 15:26:45 GMT <AFaust> Some configuration cannot be performed on a per-core level. If I had different Alfresco systems using the same ASS instance, I might want to have different configs for suggestable and cross-locale-search properties / data types.

2019-04-09 15:27:03 GMT <alfresco-discord> <dgradecak> well that is ok for my case

2019-04-09 15:27:11 GMT <alfresco-discord> <dgradecak> I do not want that

2019-04-09 15:27:21 GMT <AFaust> And again, as far as I know, the cache for node metadata / text content is also shared as global state.

2019-04-09 15:27:22 GMT <alfresco-discord> <dgradecak> since it owuld be the exact same model, same application ...

2019-04-09 15:27:48 GMT <alfresco-discord> <dgradecak> well if that last part is shared than it is a complete "screw up"

2019-04-09 15:29:12 GMT <alfresco-discord> <dgradecak> I really like the list of things that do not support multi tenancy ... "RM ..."

2019-04-09 15:29:57 GMT <alfresco-discord> <dgradecak> seems a great lack of noncollaboration in those teams ... remind me of something new also

2019-04-09 15:30:25 GMT <AFaust> For metadata / text cache, see https://github.com/Alfresco/SearchServices/blob/a84a34e19eaa4c50f0ce00b2d45efebd49946134/alfresco-search/src/main/java/org/alfresco/solr/lifecycle/SolrCoreLoadRegistration.java#L77

2019-04-09 15:30:26 GMT <alfbot> Title:SearchServices/SolrCoreLoadRegistration.java at a84a34e19eaa4c50f0ce00b2d45efebd49946134 ยท Alfresco/SearchServices ยท GitHub (at github.com)

2019-04-09 15:31:27 GMT <AFaust> The SolrContentStore is instantiated per core, but always points to the same location configured globally

2019-04-09 15:32:02 GMT <AFaust> either solrHome or whatever is set via the solr.content.dir property

2019-04-09 15:32:33 GMT <AFaust> ^^ I mean the -DSOLR_SOLR_CONTENT_DIR parameter

2019-04-09 15:33:57 GMT <AFaust> In old SOLR4 this could actually be configured via the solr4.xml in tomcat/conf/Catalina/localhost/, but with SOLR6 the -D parameter is the only way...

2019-04-09 15:34:26 GMT <AFaust> I believe they have a prepared ENV variable for that in the solr.in.sh script

2019-04-09 15:36:52 GMT <alfresco-discord> <dgradecak> indeed ... to many things bound together

2019-04-09 15:37:17 GMT <alfresco-discord> <dgradecak> so it is not just sufficent having new cores ... pfff

2019-04-09 15:38:11 GMT <alfresco-discord> <dgradecak> so one DBP per tenant is the solution ๐Ÿ˜„

2019-04-09 15:38:30 GMT <AFaust> Well, "gotta sell some subscriptions"...

2019-04-09 15:39:10 GMT <alfresco-discord> <dgradecak> my use case was this

2019-04-09 15:40:31 GMT <alfresco-discord> <dgradecak> today someone uses a cloud version of "alfresco" that you host with MT enabled and tomorrow they want to move on premises ... and all you need to do is move the storage (solr stores, db and content store)

2019-04-09 15:44:23 GMT <alfresco-discord> <dgradecak> but just of that tenant, you see

2019-04-09 16:05:44 GMT <alfresco-discord> <dgradecak> @Francesco Corti or anyone else ... is ADF/ACA somehow handling an RM site? is there a way to hide the RM site from the "Libraries" list?

2019-04-09 16:45:17 GMT <alfresco-discord> <Francesco Corti> @dgradecak I'm working on this RM site in these days. For the moment there is no way to hide it from the libraries, with an available config. You might need to act on the source code, I'm afraid.

2019-04-09 16:47:17 GMT <alfresco-discord> <dgradecak> I are not the only one afraid ๐Ÿ˜„

2019-04-09 20:19:36 GMT <alfresco-discord> <douglascrp> I am facing a weird problem with share

2019-04-09 20:19:43 GMT <alfresco-discord> <douglascrp> uploading new files works ok

2019-04-09 20:20:00 GMT <alfresco-discord> <douglascrp> but when I try to upload new version for an existing document, it fails with timeout

2019-04-09 20:20:19 GMT <alfresco-discord> <douglascrp> alfresco and share 6.1

2019-04-09 20:20:33 GMT <alfresco-discord> <douglascrp> has anyone faced this kind of problem?

2019-04-09 20:21:03 GMT <alfresco-discord> <douglascrp> and the document being uploaded is a 2 MB pdf, so it has nothing to do with limits or something like that

2019-04-09 20:25:13 GMT <alfresco-discord> <douglascrp> this is all I see in the logs https://pastebin.com/jEt5tXzy

2019-04-09 20:25:14 GMT <alfbot> Title:2019-04-09 22:21:06,504 INFO [org.springframework.extensions.webscripts.connect - Pastebin.com (at pastebin.com)

End of Daily Log

The other logs are at http://esplins.org/hash_alfresco