[MarkLogic Dev General] Good Way to Automatical
Geert.Josten at marklogic.com
Mon Jan 22 21:46:02 PST 2018
I just wanted to mention you also have manage rest api to setup CPF:
Which is leveraged by ml-gradle for deployment of CPF:
Another option is the code library that Roxy uses to deploy CPF:
It comes with an XML configuration for pipelines, and such:
On 1/23/18, 12:49 AM, "general-bounces at developer.marklogic.com on behalf
of Eliot Kimber" <general-bounces at developer.marklogic.com on behalf of
ekimber at contrext.com> wrote:
>I've taken the Admin install CPF script and reworked it as a function
>library and removed the code related to default domains (I don't want
>default domains in any case).
>What's left includes code to set up the pipelines and triggers, as
>described in the CPF Configuration chapter.
>It also includes the loading of schemas that are used by the pipelines
>and I didn't see anything that does that (or mentions it) in the CPF API.
>So unless I'm missing something (which is quite possible), I still need
>to do the schema loading.
>What I've extracted from the Admin code seems like a convenient way to
>just get CPF in place so that you can then set up your custom domains.
>It could be optimized for the needs of FlexRep, namely only bothering to
>even install the change and FlexRep pipelines but seems likely that other
>servers that will need automatic conversion might use other pipelines and
>there's no particular harm in having unused pipelines lying about.
>Note my requirement is simply to have CPF available so that I can then
>configure FlexRep. The lack of a quick-and-easy way to programmatically
>install CPF is simply a roadblock to the real configuration I need to do,
> namely configure FlexRep, which is otherwise easy enough to do (once one
>has understood how all the FlexRep parts fit together, which was a little
>harder than it should have been, but I think I've already commented on
>the FlexRep docs...).
>So I was really looking for a "call this one function to get CPF
>installed so you can continue on with your real task of getting FlexRep
>configured via a script" and I'm not seeing that out of the box.
>Or said more directly: there's a one-button task in the Admin UI to get
>CPF installed for a database. There should be a corresponding single-call
>function to do it programmatically and the FlexRep docs should make
>reference to that function at the same time they refer to the manual CPF
>On 1/22/18, 5:32 PM, "general-bounces at developer.marklogic.com on behalf
>of Mary Holstege" <general-bounces at developer.marklogic.com on behalf of
>Mary.Holstege at marklogic.com> wrote:
> There isn't a single API that orchestrates all the pieces, but there
> APIs do do all the necessary parts in the pipelines and domains
> These should be executed against your triggers database. If you share
> triggers database, you don't need to do it all over again.
> p:insert to put a pipeline XML into the right collections etc.
> dom:configuration-create to create the overall configuration object
> defines your restart user etc.
> You need to do this before you create domains or things will go
> horribly wrong.
> dom:create to define your domains
> dom:add-pipeline to attach pipelines if you didn't put them in the
> in dom:create
> All default pipelines are in the Installer directory.
> The thing in the admin GUI makes some default assumptions about some
> this that aren't always the appropriate thing to do.
> I'd suggest making a script that creates the domains you want and
> and attaches the appropriate pipelines.
> On Mon, 22 Jan 2018 14:09:23 -0800, Eliot Kimber
><ekimber at contrext.com>
> > I'm putting together a script that will do all the configuration
> > server all the way through defining a FlexRep app server, domains,
> > targets. The requirement is avoid the need for any manual
> > once the configuration is started.
> > The one fly in this ointment is the CPF--since I'm creating new
> > databases they of course won't have CPF installed, so I need to
> > the CPF into those that are involved in FlexRep.
> > As far as I can tell there is no API for doing this API (there
> > be), so I'm going to attempt to simply call the
> > Admin/database-cpf-admin-go.xqy module, which seems simple enough
> > only need to specify the database name as far as I can tell).
> > But calling an Admin module like this feels a little dirty and has
> > risk since it's not a published API and there's no guarantee it
> > change without warning in the future (although the risk seems
> > small since it's a module that hasn't changed in ages and it's only
> > called in one place in my code).
> > Is there a better way to automate installation of the CPF than
> > what the "confirm CPF installation" UI form does?
> > This is in the context of setting up new servers on demand, e.g.,
> > Docker environment where this server has a very narrow use.
> > Thanks,
> > Eliot
> > --
> > Eliot Kimber
> > http://contrext.com
> > _______________________________________________
> > General mailing list
> > General at developer.marklogic.com
> > Manage your subscription at:
> > http://developer.marklogic.com/mailman/listinfo/general
> Using Opera's revolutionary email client: http://www.opera.com/mail/
> General mailing list
> General at developer.marklogic.com
> Manage your subscription at:
>General mailing list
>General at developer.marklogic.com
>Manage your subscription at:
More information about the General