You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@syncope.apache.org by Adam Levine <ad...@gmail.com> on 2019/04/05 17:46:45 UTC

Preconfigured MasterContent.xml

I like to keep initial structuring in a repeatable form. For instance, I
have LDIFs I import to build out my custom schema, and then the LDAP
hierarchy itself, and then seed with base content.  Recreating this by hand
is not something anyone wants to do.

With that, is there a way to build out content to feed MasterContent.xml,
other than wiring everything in the GUI and exporting?  I could edit the
XML by hand, but that, too, looks fragile if it's dependent upon correct
GUID cross-references.

Thank you !

Re: Preconfigured MasterContent.xml

Posted by Francesco Chicchiriccò <il...@apache.org>.
On 22/04/19 09:35, Adam Levine wrote:
> This question again :)
>
>   I think I gave too much information and confused my question:
>
>  I want to create XML Spring beans, and use those to make 
> [Domain]Content.xml
>
> <bean id="domain" class="org.apache.....Domain">
>    <property name="jdbcConnection" ref="jdbcBean"/>
>    <property name="realms" .....
>    <property name="types"
>    <property name="realms"
>    <property name="policies"
>     ......
> </bean>
>
> Can this be done?  I can't find a Domain object graph.
>  If this can be done, which classes should I look at to load and export?
>
> Thank you again. I hope this time I don't confuse anyone.

So, you want to create a Java class, to be used as Spring bean as above, 
which will take care to generate [Master]Content.xml?

If so, I would suggest to take a look at

https://github.com/apache/syncope/blob/2_1_X/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java

Start from the export() method and follow the calls.

FYI, that class is the one behind the "export configuration" feature 
accessible via REST under GET /configurations/stream or from Admin Console.

Regards.

> On Mon, Apr 8, 2019 at 2:57 AM Francesco Chicchiriccò 
> <ilgrosso@apache.org <ma...@apache.org>> wrote:
>
>     On 08/04/19 09:51, Adam Levine wrote:
>>     Francesco, thank you for your reply.
>>
>>     I will look at that link and see what more it can tell  me. 
>>      But, I think maybe my question is misunderstood.
>>
>>     I'd like to create the content of the Content.xml by hand, which
>>     yes, is then fed into an initial deployment.
>
>     Ok, I see.
>
>     I would suggest anyway to not start from scratch, but at least
>     from an existing
>
>     core/src/main/resources/domains/MasterContent.xml
>
>     in order to avoid missing important stuff.
>
>>     I find creating structure for a system in text to be manageable. 
>>     Using only the GUI to configure everything is a slower process,
>>     and it's not as easy to proof that all my content is there.   
>>     This will be like writing LDIF text files, and then sending that
>>     into LDAP to create your hierarchies.
>>
>>     One of my concerns in creating the content by hand is not knowing
>>     how to handle items that have IDs or use IDs to show their
>>     parent.  It looks like those numbers are generated by the GUI,
>>     which would make editing the  file by hand more difficult.
>
>     The UUID values are generated by the Core code, during the
>     database insertion process; we chose the UUID format because it is
>     portable across deployments and avoids conflicts.
>
>     If you are looking for a simple way to generated correct UUID
>     values, just visit
>
>     https://www.uuidgenerator.net/
>
>     (version 4)
>
>     HTH
>     Regards.
>
>>     On Mon, Apr 8, 2019, 2:33 AM Francesco Chicchiriccò
>>     <ilgrosso@apache.org <ma...@apache.org>> wrote:
>>
>>         Hi,
>>         feeding Syncope's internal storage with initial content is
>>         exactly the purpose of *Content.xml - MasterContent.xml for
>>         the Master domain - you might be interested in [1].
>>
>>         The export feature (you can access either via REST under GET
>>         /configurations/stream or from Admin Console after clicking
>>         on the top-right triple gear icon) takes element precedence
>>         into account - so, any Realm is exported before any
>>         LogicActions referring to it, for example.
>>
>>         You are naturally free to add / change / remove any element
>>         from the exported MasterContent.xml before attempting to
>>         start Syncope with it - as always, watch the log files for
>>         any error.
>>
>>         Regards.
>>
>>         [1]
>>         http://syncope.apache.org/docs/2.1/reference-guide.html#deal-with-internal-storage-export-import
>>
>>         On 07/04/19 20:53, Adam Levine wrote:
>>>         I had a thought that I could wire up beans using Spring
>>>         IOC.  From there I could instantiate and export as XML. 
>>>         However, I'm digging through, trying to find my parent level
>>>         class, and  not having much luck.  And even if/when I do,
>>>         there's the question of having GUIDs on entries: are they
>>>         required for initial import?  If they're all contained
>>>         within a singular domain content file, do they know their
>>>         proper parent association when relevant?
>>>
>>>
>>>         Beyond being repeatable configuration, this would allow for
>>>         iterative and better consistency in naming and linking, and
>>>         avoiding my often scenario of "oops, forgot to create this
>>>         piece first".
>>>
>>>         Is what I'm wanting to do feasible, or is the web console
>>>         the only way to build out content?
>>>
>>>         thank you for your guidance!
>>>
>>>
>>>         On Fri, Apr 5, 2019, 12:46 PM Adam Levine
>>>         <adam.l.levine@gmail.com <ma...@gmail.com>>
>>>         wrote:
>>>
>>>             I like to keep initial structuring in a repeatable form.
>>>             For instance, I have LDIFs I import to build out my
>>>             custom schema, and then the LDAP hierarchy itself, and
>>>             then seed with base content.  Recreating this by hand is
>>>             not something anyone wants to do.
>>>             With that, is there a way to build out content to feed
>>>             MasterContent.xml, other than wiring everything in the
>>>             GUI and exporting?  I could edit the XML by hand, but
>>>             that, too, looks fragile if it's dependent upon correct
>>>             GUID cross-references.
>>>
>>>             Thank you !
>>>
-- 
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
http://home.apache.org/~ilgrosso/


Re: Preconfigured MasterContent.xml

Posted by Adam Levine <ad...@gmail.com>.
This question again :)

  I think I gave too much information and confused my question:

 I want to create XML Spring beans, and use those to make
[Domain]Content.xml


<bean id="domain" class="org.apache.....Domain">
   <property name="jdbcConnection" ref="jdbcBean"/>
   <property name="realms" .....
   <property name="types"
   <property name="realms"
   <property name="policies"
    ......
</bean>

Can this be done?  I can't find a Domain object graph.

 If this can be done, which classes should I look at to load and export?

Thank you again. I hope this time I don't confuse anyone.


On Mon, Apr 8, 2019 at 2:57 AM Francesco Chicchiriccò <il...@apache.org>
wrote:

> On 08/04/19 09:51, Adam Levine wrote:
>
> Francesco, thank you for your reply.
>
> I will look at that link and see what more it can tell  me.   But, I think
> maybe my question is misunderstood.
>
> I'd like to create the content of the Content.xml by hand, which yes, is
> then fed into an initial deployment.
>
> Ok, I see.
>
> I would suggest anyway to not start from scratch, but at least from an
> existing
>
> core/src/main/resources/domains/MasterContent.xml
>
> in order to avoid missing important stuff.
>
> I find creating structure for a system in text to be manageable.  Using
> only the GUI to configure everything is a slower process, and it's not as
> easy to proof that all my content is there.    This will be like writing
> LDIF text files, and then sending that into LDAP to create your hierarchies.
>
> One of my concerns in creating the content by hand is not knowing how to
> handle items that have IDs or use IDs to show their parent.  It looks like
> those numbers are generated by the GUI, which would make editing the  file
> by hand more difficult.
>
> The UUID values are generated by the Core code, during the database
> insertion process; we chose the UUID format because it is portable across
> deployments and avoids conflicts.
>
> If you are looking for a simple way to generated correct UUID values, just
> visit
>
> https://www.uuidgenerator.net/
>
> (version 4)
>
> HTH
> Regards.
>
> On Mon, Apr 8, 2019, 2:33 AM Francesco Chicchiriccò <il...@apache.org>
> wrote:
>
>> Hi,
>> feeding Syncope's internal storage with initial content is exactly the
>> purpose of *Content.xml - MasterContent.xml for the Master domain - you
>> might be interested in [1].
>>
>> The export feature (you can access either via REST under GET
>> /configurations/stream or from Admin Console after clicking on the
>> top-right triple gear icon) takes element precedence into account - so, any
>> Realm is exported before any LogicActions referring to it, for example.
>>
>> You are naturally free to add / change / remove any element from the
>> exported MasterContent.xml before attempting to start Syncope with it - as
>> always, watch the log files for any error.
>>
>> Regards.
>>
>> [1]
>> http://syncope.apache.org/docs/2.1/reference-guide.html#deal-with-internal-storage-export-import
>>
>> On 07/04/19 20:53, Adam Levine wrote:
>>
>> I had a thought that I could wire up beans using Spring IOC.  From there
>> I could instantiate and export as XML.  However, I'm digging through,
>> trying to find my parent level class, and  not having much luck.  And even
>> if/when I do, there's the question of having GUIDs on entries: are they
>> required for initial import?  If they're all contained within a singular
>> domain content file, do they know their proper parent association when
>> relevant?
>>
>>
>> Beyond being repeatable configuration, this would allow for iterative and
>> better consistency in naming and linking, and avoiding my often scenario of
>> "oops, forgot to create this piece first".
>>
>> Is what I'm wanting to do feasible, or is the web console the only way to
>> build out content?
>>
>> thank you for your guidance!
>>
>>
>> On Fri, Apr 5, 2019, 12:46 PM Adam Levine <ad...@gmail.com>
>> wrote:
>>
>>> I like to keep initial structuring in a repeatable form. For instance, I
>>> have LDIFs I import to build out my custom schema, and then the LDAP
>>> hierarchy itself, and then seed with base content.  Recreating this by hand
>>> is not something anyone wants to do.
>>>
>>> With that, is there a way to build out content to feed
>>> MasterContent.xml, other than wiring everything in the GUI and exporting?
>>> I could edit the XML by hand, but that, too, looks fragile if it's
>>> dependent upon correct GUID cross-references.
>>>
>>> Thank you !
>>>
>> --
> Francesco Chicchiriccò
>
> Tirasa - Open Source Excellencehttp://www.tirasa.net/
>
> Member at The Apache Software Foundation
> Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMailhttp://home.apache.org/~ilgrosso/
>
>

Re: Preconfigured MasterContent.xml

Posted by Francesco Chicchiriccò <il...@apache.org>.
On 08/04/19 09:51, Adam Levine wrote:
> Francesco, thank you for your reply.
>
> I will look at that link and see what more it can tell  me.   But, I 
> think maybe my question is misunderstood.
>
> I'd like to create the content of the Content.xml by hand, which yes, 
> is then fed into an initial deployment.

Ok, I see.

I would suggest anyway to not start from scratch, but at least from an 
existing

core/src/main/resources/domains/MasterContent.xml

in order to avoid missing important stuff.

> I find creating structure for a system in text to be manageable.  
> Using only the GUI to configure everything is a slower process, and 
> it's not as easy to proof that all my content is there.    This will 
> be like writing LDIF text files, and then sending that into LDAP to 
> create your hierarchies.
>
> One of my concerns in creating the content by hand is not knowing how 
> to handle items that have IDs or use IDs to show their parent.  It 
> looks like those numbers are generated by the GUI, which would make 
> editing the  file by hand more difficult.

The UUID values are generated by the Core code, during the database 
insertion process; we chose the UUID format because it is portable 
across deployments and avoids conflicts.

If you are looking for a simple way to generated correct UUID values, 
just visit

https://www.uuidgenerator.net/

(version 4)

HTH
Regards.

> On Mon, Apr 8, 2019, 2:33 AM Francesco Chicchiriccò 
> <ilgrosso@apache.org <ma...@apache.org>> wrote:
>
>     Hi,
>     feeding Syncope's internal storage with initial content is exactly
>     the purpose of *Content.xml - MasterContent.xml for the Master
>     domain - you might be interested in [1].
>
>     The export feature (you can access either via REST under GET
>     /configurations/stream or from Admin Console after clicking on the
>     top-right triple gear icon) takes element precedence into account
>     - so, any Realm is exported before any LogicActions referring to
>     it, for example.
>
>     You are naturally free to add / change / remove any element from
>     the exported MasterContent.xml before attempting to start Syncope
>     with it - as always, watch the log files for any error.
>
>     Regards.
>
>     [1]
>     http://syncope.apache.org/docs/2.1/reference-guide.html#deal-with-internal-storage-export-import
>
>     On 07/04/19 20:53, Adam Levine wrote:
>>     I had a thought that I could wire up beans using Spring IOC. 
>>     From there I could instantiate and export as XML.  However, I'm
>>     digging through, trying to find my parent level class, and  not
>>     having much luck. And even if/when I do, there's the question of
>>     having GUIDs on entries: are they required for initial import? If
>>     they're all contained within a singular domain content file, do
>>     they know their proper parent association when relevant?
>>
>>
>>     Beyond being repeatable configuration, this would allow for
>>     iterative and better consistency in naming and linking, and
>>     avoiding my often scenario of "oops, forgot to create this piece
>>     first".
>>
>>     Is what I'm wanting to do feasible, or is the web console the
>>     only way to build out content?
>>
>>     thank you for your guidance!
>>
>>
>>     On Fri, Apr 5, 2019, 12:46 PM Adam Levine
>>     <adam.l.levine@gmail.com <ma...@gmail.com>> wrote:
>>
>>         I like to keep initial structuring in a repeatable form. For
>>         instance, I have LDIFs I import to build out my custom
>>         schema, and then the LDAP hierarchy itself, and then seed
>>         with base content. Recreating this by hand is not something
>>         anyone wants to do.
>>         With that, is there a way to build out content to feed
>>         MasterContent.xml, other than wiring everything in the GUI
>>         and exporting?  I could edit the XML by hand, but that, too,
>>         looks fragile if it's dependent upon correct GUID
>>         cross-references.
>>
>>         Thank you !
>>
-- 
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
http://home.apache.org/~ilgrosso/


Re: Preconfigured MasterContent.xml

Posted by Adam Levine <ad...@gmail.com>.
Francesco, thank you for your reply.

 I will look at that link and see what more it can tell  me.   But, I think
maybe my question is misunderstood.


I'd like to create the content of the Content.xml by hand, which yes, is
then fed into an initial deployment.

I find creating structure for a system in text to be manageable.  Using
only the GUI to configure everything is a slower process, and it's not as
easy to proof that all my content is there.    This will be like writing
LDIF text files, and then sending that into LDAP to create your hierarchies.

One of my concerns in creating the content by hand is not knowing how to
handle items that have IDs or use IDs to show their parent.  It looks like
those numbers are generated by the GUI, which would make editing the  file
by hand more difficult.

Does that explain my question better?

Thank you!




On Mon, Apr 8, 2019, 2:33 AM Francesco Chicchiriccò <il...@apache.org>
wrote:

> Hi,
> feeding Syncope's internal storage with initial content is exactly the
> purpose of *Content.xml - MasterContent.xml for the Master domain - you
> might be interested in [1].
>
> The export feature (you can access either via REST under GET
> /configurations/stream or from Admin Console after clicking on the
> top-right triple gear icon) takes element precedence into account - so, any
> Realm is exported before any LogicActions referring to it, for example.
>
> You are naturally free to add / change / remove any element from the
> exported MasterContent.xml before attempting to start Syncope with it - as
> always, watch the log files for any error.
>
> Regards.
>
> [1]
> http://syncope.apache.org/docs/2.1/reference-guide.html#deal-with-internal-storage-export-import
>
> On 07/04/19 20:53, Adam Levine wrote:
>
> I had a thought that I could wire up beans using Spring IOC.  From there I
> could instantiate and export as XML.  However, I'm digging through, trying
> to find my parent level class, and  not having much luck.  And even if/when
> I do, there's the question of having GUIDs on entries: are they required
> for initial import?  If they're all contained within a singular domain
> content file, do they know their proper parent association when relevant?
>
>
> Beyond being repeatable configuration, this would allow for iterative and
> better consistency in naming and linking, and avoiding my often scenario of
> "oops, forgot to create this piece first".
>
> Is what I'm wanting to do feasible, or is the web console the only way to
> build out content?
>
> thank you for your guidance!
>
>
> On Fri, Apr 5, 2019, 12:46 PM Adam Levine <ad...@gmail.com> wrote:
>
>> I like to keep initial structuring in a repeatable form. For instance, I
>> have LDIFs I import to build out my custom schema, and then the LDAP
>> hierarchy itself, and then seed with base content.  Recreating this by hand
>> is not something anyone wants to do.
>>
>> With that, is there a way to build out content to feed MasterContent.xml,
>> other than wiring everything in the GUI and exporting?  I could edit the
>> XML by hand, but that, too, looks fragile if it's dependent upon correct
>> GUID cross-references.
>>
>> Thank you !
>>
>
> --
> Francesco Chicchiriccò
>
> Tirasa - Open Source Excellencehttp://www.tirasa.net/
>
> Member at The Apache Software Foundation
> Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMailhttp://home.apache.org/~ilgrosso/
>
>

Re: Preconfigured MasterContent.xml

Posted by Francesco Chicchiriccò <il...@apache.org>.
Hi,
feeding Syncope's internal storage with initial content is exactly the 
purpose of *Content.xml - MasterContent.xml for the Master domain - you 
might be interested in [1].

The export feature (you can access either via REST under GET 
/configurations/stream or from Admin Console after clicking on the 
top-right triple gear icon) takes element precedence into account - so, 
any Realm is exported before any LogicActions referring to it, for example.

You are naturally free to add / change / remove any element from the 
exported MasterContent.xml before attempting to start Syncope with it - 
as always, watch the log files for any error.

Regards.

[1] 
http://syncope.apache.org/docs/2.1/reference-guide.html#deal-with-internal-storage-export-import

On 07/04/19 20:53, Adam Levine wrote:
> I had a thought that I could wire up beans using Spring IOC.  From 
> there I could instantiate and export as XML. However, I'm digging 
> through, trying to find my parent level class, and  not having much 
> luck.  And even if/when I do, there's the question of having GUIDs on 
> entries: are they required for initial import?  If they're all 
> contained within a singular domain content file, do they know their 
> proper parent association when relevant?
>
>
> Beyond being repeatable configuration, this would allow for iterative 
> and better consistency in naming and linking, and avoiding my often 
> scenario of "oops, forgot to create this piece first".
>
> Is what I'm wanting to do feasible, or is the web console the only way 
> to build out content?
>
> thank you for your guidance!
>
>
> On Fri, Apr 5, 2019, 12:46 PM Adam Levine <adam.l.levine@gmail.com 
> <ma...@gmail.com>> wrote:
>
>     I like to keep initial structuring in a repeatable form. For
>     instance, I have LDIFs I import to build out my custom schema, and
>     then the LDAP hierarchy itself, and then seed with base content. 
>     Recreating this by hand is not something anyone wants to do.
>     With that, is there a way to build out content to feed
>     MasterContent.xml, other than wiring everything in the GUI and
>     exporting?  I could edit the XML by hand, but that, too, looks
>     fragile if it's dependent upon correct GUID cross-references.
>
>     Thank you !
>

-- 
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
http://home.apache.org/~ilgrosso/


Re: Preconfigured MasterContent.xml

Posted by Adam Levine <ad...@gmail.com>.
I had a thought that I could wire up beans using Spring IOC.  From there I
could instantiate and export as XML.  However, I'm digging through, trying
to find my parent level class, and  not having much luck.  And even if/when
I do, there's the question of having GUIDs on entries: are they required
for initial import?  If they're all contained within a singular domain
content file, do they know their proper parent association when relevant?


Beyond being repeatable configuration, this would allow for iterative and
better consistency in naming and linking, and avoiding my often scenario of
"oops, forgot to create this piece first".

Is what I'm wanting to do feasible, or is the web console the only way to
build out content?

thank you for your guidance!


On Fri, Apr 5, 2019, 12:46 PM Adam Levine <ad...@gmail.com> wrote:

> I like to keep initial structuring in a repeatable form. For instance, I
> have LDIFs I import to build out my custom schema, and then the LDAP
> hierarchy itself, and then seed with base content.  Recreating this by hand
> is not something anyone wants to do.
>
> With that, is there a way to build out content to feed MasterContent.xml,
> other than wiring everything in the GUI and exporting?  I could edit the
> XML by hand, but that, too, looks fragile if it's dependent upon correct
> GUID cross-references.
>
> Thank you !
>