Repository: syncope Updated Branches: refs/heads/master 685262803 -> 36cc7725f
[SYNCOPE-700] Getting started completed Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/36cc7725 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/36cc7725 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/36cc7725 Branch: refs/heads/master Commit: 36cc7725fcfcc7b3d1101bf5821690d1539ad127 Parents: 6852628 Author: Francesco Chicchiriccò <[email protected]> Authored: Tue Oct 13 17:50:34 2015 +0200 Committer: Francesco Chicchiriccò <[email protected]> Committed: Tue Oct 13 17:50:34 2015 +0200 ---------------------------------------------------------------------- .../syncope/core/logic/ConfigurationLogic.java | 5 +- .../apache/syncope/core/logic/PolicyLogic.java | 30 +- deb/core/pom.xml | 6 + pom.xml | 34 +- src/main/asciidoc/docinfo-footer.html | 23 + src/main/asciidoc/getting-started.adoc | 59 +++ .../getting-started/docinfo-footer.html | 23 - .../getting-started/getting-started.adoc | 69 --- .../getting-started/images/architecture.png | Bin 62994 -> 0 bytes .../getting-started/images/architecture.xml | 20 - .../images/identityLifecycle.png | Bin 121230 -> 0 bytes .../asciidoc/getting-started/introduction.adoc | 114 ----- .../getting-started/systemRequirements.adoc | 50 --- src/main/asciidoc/images/architecture.png | Bin 0 -> 62994 bytes src/main/asciidoc/images/architecture.xml | 20 + src/main/asciidoc/images/identityLifecycle.png | Bin 0 -> 121230 bytes src/main/asciidoc/images/installer1.png | Bin 0 -> 160690 bytes src/main/asciidoc/images/installer10.png | Bin 0 -> 45440 bytes src/main/asciidoc/images/installer2.png | Bin 0 -> 53017 bytes src/main/asciidoc/images/installer3.png | Bin 0 -> 46889 bytes src/main/asciidoc/images/installer4.png | Bin 0 -> 38073 bytes src/main/asciidoc/images/installer5.png | Bin 0 -> 48416 bytes src/main/asciidoc/images/installer6.png | Bin 0 -> 39613 bytes src/main/asciidoc/images/installer7.png | Bin 0 -> 40130 bytes src/main/asciidoc/images/installer8.png | Bin 0 -> 41467 bytes src/main/asciidoc/images/installer9.png | Bin 0 -> 42059 bytes src/main/asciidoc/introduction.adoc | 114 +++++ src/main/asciidoc/obtain.adoc | 431 +++++++++++++++++++ src/main/asciidoc/reference-guide.adoc | 148 +++++++ .../reference-guide/docinfo-footer.html | 23 - .../reference-guide/reference-guide.adoc | 148 ------- src/main/asciidoc/systemRequirements.adoc | 51 +++ 32 files changed, 873 insertions(+), 495 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/core/logic/src/main/java/org/apache/syncope/core/logic/ConfigurationLogic.java ---------------------------------------------------------------------- diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/ConfigurationLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/ConfigurationLogic.java index dca3768..b989ac2 100644 --- a/core/logic/src/main/java/org/apache/syncope/core/logic/ConfigurationLogic.java +++ b/core/logic/src/main/java/org/apache/syncope/core/logic/ConfigurationLogic.java @@ -61,10 +61,9 @@ public class ConfigurationLogic extends AbstractTransactionalLogic<ConfTO> { @PreAuthorize("hasRole('" + Entitlement.CONFIGURATION_DELETE + "')") public void delete(final String schema) { - - final CPlainAttr conf = confDAO.find(schema); + CPlainAttr conf = confDAO.find(schema); if (conf == null) { - final PlainSchema plainSchema = plainSchemaDAO.find(schema); + PlainSchema plainSchema = plainSchemaDAO.find(schema); if (plainSchema == null) { throw new NotFoundException("Configuration schema " + schema); } http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/core/logic/src/main/java/org/apache/syncope/core/logic/PolicyLogic.java ---------------------------------------------------------------------- diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/PolicyLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/PolicyLogic.java index e37dc28..0b4ac92 100644 --- a/core/logic/src/main/java/org/apache/syncope/core/logic/PolicyLogic.java +++ b/core/logic/src/main/java/org/apache/syncope/core/logic/PolicyLogic.java @@ -65,7 +65,7 @@ public class PolicyLogic extends AbstractTransactionalLogic<AbstractPolicyTO> { public PasswordPolicyTO update(final PasswordPolicyTO policyTO) { Policy policy = policyDAO.find(policyTO.getKey()); if (!(policy instanceof PasswordPolicy)) { - throw new NotFoundException("PasswordPolicy with id " + policyTO.getKey()); + throw new NotFoundException("PasswordPolicy with key " + policyTO.getKey()); } return update(policyTO, policy); @@ -75,7 +75,7 @@ public class PolicyLogic extends AbstractTransactionalLogic<AbstractPolicyTO> { public AccountPolicyTO update(final AccountPolicyTO policyTO) { Policy policy = policyDAO.find(policyTO.getKey()); if (!(policy instanceof AccountPolicy)) { - throw new NotFoundException("AccountPolicy with id " + policyTO.getKey()); + throw new NotFoundException("AccountPolicy with key " + policyTO.getKey()); } return update(policyTO, policy); @@ -85,7 +85,7 @@ public class PolicyLogic extends AbstractTransactionalLogic<AbstractPolicyTO> { public SyncPolicyTO update(final SyncPolicyTO policyTO) { Policy policy = policyDAO.find(policyTO.getKey()); if (!(policy instanceof SyncPolicy)) { - throw new NotFoundException("SyncPolicy with id " + policyTO.getKey()); + throw new NotFoundException("SyncPolicy with key " + policyTO.getKey()); } return update(policyTO, policy); @@ -103,20 +103,20 @@ public class PolicyLogic extends AbstractTransactionalLogic<AbstractPolicyTO> { } @PreAuthorize("hasRole('" + Entitlement.POLICY_READ + "')") - public <T extends AbstractPolicyTO> T read(final Long id) { - Policy policy = policyDAO.find(id); + public <T extends AbstractPolicyTO> T read(final Long key) { + Policy policy = policyDAO.find(key); if (policy == null) { - throw new NotFoundException("Policy " + id + " not found"); + throw new NotFoundException("Policy " + key + " not found"); } return binder.getPolicyTO(policy); } @PreAuthorize("hasRole('" + Entitlement.POLICY_DELETE + "')") - public <T extends AbstractPolicyTO> T delete(final Long id) { - Policy policy = policyDAO.find(id); + public <T extends AbstractPolicyTO> T delete(final Long key) { + Policy policy = policyDAO.find(key); if (policy == null) { - throw new NotFoundException("Policy " + id + " not found"); + throw new NotFoundException("Policy " + key + " not found"); } T policyToDelete = binder.getPolicyTO(policy); @@ -129,21 +129,21 @@ public class PolicyLogic extends AbstractTransactionalLogic<AbstractPolicyTO> { protected AbstractPolicyTO resolveReference(final Method method, final Object... args) throws UnresolvedReferenceException { - Long id = null; + Long key = null; if (ArrayUtils.isNotEmpty(args)) { - for (int i = 0; id == null && i < args.length; i++) { + for (int i = 0; key == null && i < args.length; i++) { if (args[i] instanceof Long) { - id = (Long) args[i]; + key = (Long) args[i]; } else if (args[i] instanceof AbstractPolicyTO) { - id = ((AbstractPolicyTO) args[i]).getKey(); + key = ((AbstractPolicyTO) args[i]).getKey(); } } } - if ((id != null) && !id.equals(0L)) { + if ((key != null) && !key.equals(0L)) { try { - return binder.getPolicyTO(policyDAO.find(id)); + return binder.getPolicyTO(policyDAO.find(key)); } catch (Throwable ignore) { LOG.debug("Unresolved reference", ignore); throw new UnresolvedReferenceException(ignore); http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/deb/core/pom.xml ---------------------------------------------------------------------- diff --git a/deb/core/pom.xml b/deb/core/pom.xml index c5f7de5..612357f 100644 --- a/deb/core/pom.xml +++ b/deb/core/pom.xml @@ -77,6 +77,12 @@ under the License. </dependency> <dependency> + <groupId>org.apache.syncope.ext</groupId> + <artifactId>syncope-ext-swagger-ui</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index e565133..f99066d 100644 --- a/pom.xml +++ b/pom.xml @@ -1364,6 +1364,7 @@ under the License. import java.text.MessageFormat def year = MessageFormat.format("{0,date,yyyy}", new Date()) project.properties['year'] = year + project.properties['snapshotOrRelease'] = project.version.endsWith("SNAPSHOT") ? "snapshot": "release" project.properties['licenseUrl'] = project.parent.licenses[0].url </source> </configuration> @@ -1537,31 +1538,7 @@ under the License. <build> <defaultGoal>clean generate-resources</defaultGoal> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-antrun-plugin</artifactId> - <executions> - <execution> - <id>copy-doc-images</id> - <goals> - <goal>run</goal> - </goals> - <phase>generate-resources</phase> - <configuration> - <target> - <copy todir="${project.build.directory}/generated-docs/images"> - <fileset dir="${rootpom.basedir}/src/main/asciidoc/getting-started/images"/> - </copy> - <copy todir="${project.build.directory}/generated-docs/images"> - <fileset dir="${rootpom.basedir}/src/main/asciidoc/reference-guide/images"/> - </copy> - </target> - </configuration> - </execution> - </executions> - </plugin> - + <plugins> <plugin> <groupId>org.asciidoctor</groupId> <artifactId>asciidoctor-maven-plugin</artifactId> @@ -1576,9 +1553,10 @@ under the License. <configuration> <doctype>book</doctype> <relativeBaseDir>true</relativeBaseDir> - <sourceHighlighter>coderay</sourceHighlighter> + <sourceHighlighter>highlightjs</sourceHighlighter> <attributes> <docVersion>${project.version}</docVersion> + <snapshotOrRelease>${snapshotOrRelease}</snapshotOrRelease> <year>${year}</year> <numbered>true</numbered> <icons>font</icons> @@ -1596,7 +1574,6 @@ under the License. <goal>process-asciidoc</goal> </goals> <configuration> - <sourceDirectory>${basedir}/src/main/asciidoc/getting-started</sourceDirectory> <sourceDocumentName>getting-started.adoc</sourceDocumentName> <backend>html</backend> </configuration> @@ -1608,7 +1585,6 @@ under the License. <goal>process-asciidoc</goal> </goals> <configuration> - <sourceDirectory>${basedir}/src/main/asciidoc/getting-started</sourceDirectory> <sourceDocumentName>getting-started.adoc</sourceDocumentName> <backend>pdf</backend> <attributes> @@ -1624,7 +1600,6 @@ under the License. <goal>process-asciidoc</goal> </goals> <configuration> - <sourceDirectory>${basedir}/src/main/asciidoc/reference-guide</sourceDirectory> <sourceDocumentName>reference-guide.adoc</sourceDocumentName> <backend>html</backend> </configuration> @@ -1636,7 +1611,6 @@ under the License. <goal>process-asciidoc</goal> </goals> <configuration> - <sourceDirectory>${basedir}/src/main/asciidoc/reference-guide</sourceDirectory> <sourceDocumentName>reference-guide.adoc</sourceDocumentName> <backend>pdf</backend> <attributes> http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/docinfo-footer.html ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/docinfo-footer.html b/src/main/asciidoc/docinfo-footer.html new file mode 100644 index 0000000..6fdbd5f --- /dev/null +++ b/src/main/asciidoc/docinfo-footer.html @@ -0,0 +1,23 @@ +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> +<div id="footer-text"> + <small>Copyright © 2010â{year} <a href="http://www.apache.org/">The Apache Software Foundation</a>. + All rights reserved. + </small> +</div> http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/getting-started.adoc ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/getting-started.adoc b/src/main/asciidoc/getting-started.adoc new file mode 100644 index 0000000..38f7020 --- /dev/null +++ b/src/main/asciidoc/getting-started.adoc @@ -0,0 +1,59 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +// Quick reference: http://asciidoctor.org/docs/asciidoc-syntax-quick-reference/ +// User manual: http://asciidoctor.org/docs/user-manual/ +// Tricks: https://leanpub.com/awesomeasciidoctornotebook/read + +:homepage: http://syncope.apache.org +:description: Several ways to get started with Apache Syncope +:keywords: Apache Syncope, IdM, provisioning, identity management, getting started, tutorial + +:docinfo1: +:last-update-label!: +:sectanchors: +:sectnums: +:sectlinks: + += Apache Syncope - Getting Started +:revnumber: {docVersion} +:toc: right +:toclevels: 4 + +image::http://syncope.apache.org/images/apache-syncope-logo-small.jpg[Apache Syncope logo] + +[NOTE] +.This document is under active development and discussion! +If you find errors or omissions in this document, please donât hesitate to +http://syncope.apache.org/issue-tracking.html[submit an issue] or +https://github.com/apache/syncope/pulls[open a pull request] with +a fix. We also encourage you to ask questions and discuss any aspects of the project on the +http://syncope.apache.org/mailing-lists.html[mailing lists or IRC]. +New contributors are always welcome! + +[discrete] +== Preface +This guide shows you how to get started with Apache Syncope services for identity management, provisioning, and +compliance. + +include::introduction.adoc[] + +include::systemRequirements.adoc[] + +include::obtain.adoc[] \ No newline at end of file http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/getting-started/docinfo-footer.html ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/getting-started/docinfo-footer.html b/src/main/asciidoc/getting-started/docinfo-footer.html deleted file mode 100644 index 6fdbd5f..0000000 --- a/src/main/asciidoc/getting-started/docinfo-footer.html +++ /dev/null @@ -1,23 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<div id="footer-text"> - <small>Copyright © 2010â{year} <a href="http://www.apache.org/">The Apache Software Foundation</a>. - All rights reserved. - </small> -</div> http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/getting-started/getting-started.adoc ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/getting-started/getting-started.adoc b/src/main/asciidoc/getting-started/getting-started.adoc deleted file mode 100644 index 1f0f520..0000000 --- a/src/main/asciidoc/getting-started/getting-started.adoc +++ /dev/null @@ -1,69 +0,0 @@ -// -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. -// - -// Quick reference: http://asciidoctor.org/docs/asciidoc-syntax-quick-reference/ -// User manual: http://asciidoctor.org/docs/user-manual/ -// Tricks: https://leanpub.com/awesomeasciidoctornotebook/read - -:homepage: http://syncope.apache.org -:description: Several ways to get started with Apache Syncope -:keywords: Apache Syncope, IdM, provisioning, identity management, getting started, tutorial - -:docinfo1: -:last-update-label!: -:sectanchors: -:sectnums: -:sectlinks: - -= Apache Syncope - Getting Started -:revnumber: {docVersion} -:toc: right -:toclevels: 4 - -image::http://syncope.apache.org/images/apache-syncope-logo-small.jpg[Apache Syncope logo] - -[NOTE] -.This document is under active development and discussion! -If you find errors or omissions in this document, please donât hesitate to -http://syncope.apache.org/issue-tracking.html[submit an issue] or -https://github.com/apache/syncope/pulls[open a pull request] with -a fix. We also encourage you to ask questions and discuss any aspects of the project on the -http://syncope.apache.org/mailing-lists.html[mailing lists or IRC]. -New contributors are always welcome! - -[discrete] -== Preface -This guide shows you how to get started with Apache Syncope services for identity management, provisioning, and -compliance. - -include::introduction.adoc[] - -include::systemRequirements.adoc[] - -== Obtain Apache Syncope - -=== Standalone - -=== Debian packages - -=== GUI installer - -=== Maven project - -== Move forward http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/getting-started/images/architecture.png ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/getting-started/images/architecture.png b/src/main/asciidoc/getting-started/images/architecture.png deleted file mode 100644 index 6d437d7..0000000 Binary files a/src/main/asciidoc/getting-started/images/architecture.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/getting-started/images/architecture.xml ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/getting-started/images/architecture.xml b/src/main/asciidoc/getting-started/images/architecture.xml deleted file mode 100644 index a7eb3b1..0000000 --- a/src/main/asciidoc/getting-started/images/architecture.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<mxfile userAgent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:41.0) Gecko/20100101 Firefox/41.0" type="device"><diagram>5Zptc9o4EMc/TV4mA5invKRAcszlQgbS9vpSYMVozlicEE3Ip+9K3jW25bS0yKQzZZjBXtuy/NNf+yBzEQzXL7eKbVb/yJDHF61G+HIRjC5arWY7aMOPsexTS68dpIZIiRBPOhjm4pWjsYHWnQj5tnCiljLWYlM0LmWS8KUu2J5kXLzFhkXU/MEwX7LYtX4WoV6l1n6re7D/xUW0ots0u9fpkQVb/hcpuUvwfhet4Ml+0sNrRm3ZpwrGQExJCc2YrfXLkMeGGgFJH/3mjaNZJxVPsCM/uACH4CuLd/igqWGr9/Tk2xXbmE3+Ak1+COVuYY80Ycc+Fjdtmb3nldB8vmFLc/gZxhxsK72O8TC0E8pn3MHbcqU56cHtuzVhx2+5XHOt9nAKXdBDHaB8Wg3cfz6MT5u0ssqNTUAXMtRJlLV9QAUbSKuaHHLKgZuN548OvJ8itImZSC4jxXlSA69WmRdqI8+rdV3Bq+0Bl6uzu+ntBC47nZdULDFzt35gvd75gHUcYA+z6afJfDK9n9zf+uC2sC37p9a9vsLOI7eAHH2BGzbsmxv64xy3z9PZ3zd3088+mO3hZgZW7VoLiM85tIaRKsdsPh5+nE0ev5zGbCWVeJWJZsbQyCAqc73/cEB0vuPeuhUAM/KnEKQwk5+u49l8Mn8c3w/HfqICgwerXXftdv98umtid4/JPpb7WAAz9c68gn7Rt3Wu3ZhQpbK+D1wuHR5Ckoq7UumVjGTC4vHBmkvRzATMYeIvQv9rzOCt070vBUym6e9Dgp7InbKjkJsCmqmIZ1lwNUzFY6bF12L7J6HByiGnpMn943h2P7gD6/xxOhvcwjTsxiaFXSjYisyWwxOEYew5TIpvxStLU17rw qRItO1p58NFZwQWttMSzqGcmMUigvRtFPMn05RRm4AyYoBmLY1ct6BekUSPZmd02fakzQ4KBLXZ7btxt0nztuACfYgT/UZhLqe8nyAEFDB3/9+ZAsceuEzRDeAEeFZ4EiBBx2mYhtNZNnjQj7S9o0fQA9k2TV+a9RWxhU4pVBo+wLrReRCuRQKmj5MjJH3mqoycH8UTF1ST4OVJ0WUnlWRuEB4n4eVuC1Hj94SVlazvQcsNvsM7YPS+RIJOMb6elciZ4iugUPv0EJR5uG8OmhYqgP50JEaPkY/E9tHOEIip0PfD0AMMEsu7wEAtexLUQTZ1qCZbQn0PUG7VPthsXHhxDGu7uGiRVgWx3Jli8sxeqkOBnar1I72UjyqghQWHdy+Vd1ONq2vafeBKQCdN5WUvzsmwV4sOUQvvosOqJPaNglSs7RuDLMG/YwseP0AloIU0if5Cai3Xb1YAePlopTXsQvp7A1+eyOetfNLPgOhqCVe3bth2y6HeaN3YC8wGW5pnvgyFgpcaUu0vYxjvq00SeUrgOu3y+t21uybQ7FQurHsYAjfd9bYmUNvqXY9Kc1p7aiLBHLEATXlgBPEUYOR78nmc9YrevGe9ryW6fVQNZXxdV2206JJn10PkJ7E7YgFKKwHvF6wX/QGndEamsx88mun8hydg/qnAcbNTG9taAWRxRdAL1vIyfKtiGlcVrT5SaVrx/x5YnoQDpSyBZQxuTiyrQxNtp3EpCzk2BBXijz1WoLqFIKLdm1jzjTC9PyFQId1CnLLOyx2THPEqv0m2o+MZ3uHBrEXlvFCpmsxWxKmJtPd4Vf6tcLkh6hA1VF7sTZ/ZaciqInvs44TivueqRSjFlNnJCc8tlNTxvJ1f9rAZmro0IEcK6XjNlO8UdHHm/rRmaODKXa5BM2618Ec4F+u+39ZMv6QZ8uO/s2ZKZVSAEaoGzWCSUbufafSKsjFr+78iG9tEufby538Ofzaq1BK9fc7++VCblk qqDXq/qqVySU4vMmvQklsljphmCwbJ9e/zQqmYUXqveBold08+IacQEo3vV02BWyLejQYPfw77UrUZVFRMVbPzF9jD7uHPiOlUOfyXMxh/Aw==</diagram></mxfile> http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/getting-started/images/identityLifecycle.png ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/getting-started/images/identityLifecycle.png b/src/main/asciidoc/getting-started/images/identityLifecycle.png deleted file mode 100644 index e9eb528..0000000 Binary files a/src/main/asciidoc/getting-started/images/identityLifecycle.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/getting-started/introduction.adoc ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/getting-started/introduction.adoc b/src/main/asciidoc/getting-started/introduction.adoc deleted file mode 100644 index 5991756..0000000 --- a/src/main/asciidoc/getting-started/introduction.adoc +++ /dev/null @@ -1,114 +0,0 @@ -// -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. -// - -== Introduction - -*Apache Syncope* is an Open Source system for managing digital identities in enterprise environments, implemented in -Java EE technology and released under Apache 2.0 license. - -*Identity management* (or IdM) represents the joint result of business process and IT to manage user data on systems and -applications. IdM involves considering user attributes, roles, resources and entitlements in trying to give a decent -answer to the question bumping up every time in an IT administrator's mind: - -[.text-center] -_Who has access to What, When, How, and Why?_ - -=== What is this Identity Management, anyway? - -**** -Account:: Computers work with records of data about persons. Such records contains technical information needed by the system for -which the account is created and managed. -(Digital) Identity:: A representation of a set of claims made by one digital subject about itself. *It's you!* -**** - -Have you ever been hired by a company, entered an organization or just subscribed a new Google account? -Companies, organizations and cloud entities works with applications that need your data to function properly: -username, password, e-mail, first name, surname, and more. - -Who is going to feed such information? And what happens when you need to be enabled for more applications? And what if -you get promoted and acquire more rights on the applications you already had access to? -Most important, what happens when you quit or they gently let you go? - -Shortly, Identity Management takes care of managing identity data throughout what is called the *Identity Lifecycle*. - -[.text-center] -image::identityLifecycle.png[title="Identity Lifecycle",alt="Identity Lifecycle",width="505",height="324"] - -.Users, groups and any objects -**** -With Apache Syncope 2.0.0, the managed identities are not limited anymore to users and groups. New object types can be -defined so that any object's data can be managed through Syncope: workstations, printers, folders, sensors, services, -and so on. This positions Apache Syncope at best places for bringing Identity Management in the IoT world. -**** - -=== Bird's eye view on Architecture - -*_Core_* is the central component, providing all services offered by Apache Syncope. + -It exposes a full-compliant https://en.wikipedia.org/wiki/Java_API_for_RESTful_Web_Services[JAX-RS 2.0^] -https://en.wikipedia.org/wiki/Representational_state_transfer[RESTful^] interface which enables third-party applications, -written in any programming language, to consume IdM services. - - * *_Logic_* implements the overall business logic that can be triggered via REST services, and controls some additional -features (notifications, reports and audit over all) - * *_Provisioning_* is delegated to manage the internal (via workflow) and external (via specific connectors) -representation of users, groups and any objects. + -Being the crucial decision point for defining and enforcing the consistency and transformations between internal and -external data, this component needs often to be tailored on requirements of specific deployment. For this reason, besides -the all-Java default implementation that can be anyway extended, an http://camel.apache.org/[Apache Camel^]-based -implementation is also available as extension, which brings all the power of runtime changes and adaptation. - * *_Workflow_* is one of pluggable aspects: this lets every deployment choose the preferred engine -among provided - including the one based on http://www.activiti.org/[Activiti BPM^], the reference open source -http://www.bpmn.org/[BPMN 2.0^] implementation - or define new, custom ones. - * *_Persistence_* manages all data (users, groups, attributes, resources, ...) at high level -using a standard https://en.wikipedia.org/wiki/Java_Persistence_API[JPA 2.0^] approach, persisting to an underlying -database, referred as the *_Internal Storage_*. Consistency is ensured via the comprehensive -http://docs.spring.io/spring/docs/4.1.x/spring-framework-reference/html/transaction.html[transaction management^] -provided by the Spring Framework. + -Globally, all this permits to scale up to million entities and at the same time allows great portability with no code -changes: MySQL, MariaDB, PostgreSQL, Oracle and MS SQL Server are fully supported deployment options. - * *_Security_* defines a fine-grained set of entitlements which can be granted to administrators, thus allowing to -implement real delegated administration scenarios. - -[.text-center] -image::architecture.png[title="Architecture",alt="Architecture"] - -*_Admin UI_* is the web-based console for configuring and administering running deployments, with full support -for delegated administration. - -*_End-user UI_* is the web-based application for self-registration, self-service and password reset. - -*_CLI_* is the command-line application for interacting with Apache Syncope from scripts, particularly useful for -system administrators. - -Third-party applications are provided full access to IdM services by leveraging the REST interface, either via the -Java _SyncopeClient_ library (at the basis of Admin UI, End-user UI and CLI) or plain HTTP calls. - -.ConnId -**** -The *_Provisioning_* layer relays on http://connid.tirasa.net[ConnId^]; ConnId is designed to separate the -implementation of an application from the dependencies of the system that the application is attempting to connect to. - -ConnId is the continuation of The Identity Connectors Framework (Sun ICF), a project that used to be part of market -leader Sun IdM and has since been released by Sun Microsystems as an Open Source project. This makes the connectors layer -particularly reliable because most connectors have already been implemented in the framework and widely tested. - -The new ConnId project, featuring contributors from several companies, provides all that is required nowadays for a -modern Open Source project, including an Apache Maven driven build, artifacts and mailing lists. Additional connectors â -such as for SOAP, CSV, PowerShell and Active Directory â are also provided. -**** \ No newline at end of file http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/getting-started/systemRequirements.adoc ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/getting-started/systemRequirements.adoc b/src/main/asciidoc/getting-started/systemRequirements.adoc deleted file mode 100644 index 869ef47..0000000 --- a/src/main/asciidoc/getting-started/systemRequirements.adoc +++ /dev/null @@ -1,50 +0,0 @@ -// -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. -// - -== System Requirements - -=== Hardware - -The numbers below are greatly affected by several requirements of given deployment, in particular the total number of -managed entities (users, groups and any objects), their attributes and resources. - - * CPU: dual core, 2 GHz (minimum) - * RAM: 2 GB (minimum) - * Disk: 100 MB (minimum) - -=== Java - -Apache Syncope {docVersion} requires the latest JDK 7 or JDK 8 available. - -=== Java EE Container - -Apache Syncope {docVersion} is verified with the following Java EE containers: - - . http://tomcat.apache.org/download-80.cgi[Apache Tomcat 8^] - . https://glassfish.java.net/[Glassfish 4.1^] - . http://www.wildfly.org/[Wildfly 9^] - -=== Internal Storage - -Apache Syncope {docVersion} is verified with the recent versions of the following DBMSes, for internal storage: - - . http://www.mysql.com/[MySQL^] - . https://mariadb.org/[MariaDB^] - . https://www.oracle.com/database/index.html[Oracle Database^] - . http://www.microsoft.com/en-us/server-cloud/products/sql-server/[MS SQL Server^] \ No newline at end of file http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/images/architecture.png ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/images/architecture.png b/src/main/asciidoc/images/architecture.png new file mode 100644 index 0000000..6d437d7 Binary files /dev/null and b/src/main/asciidoc/images/architecture.png differ http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/images/architecture.xml ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/images/architecture.xml b/src/main/asciidoc/images/architecture.xml new file mode 100644 index 0000000..a7eb3b1 --- /dev/null +++ b/src/main/asciidoc/images/architecture.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> +<mxfile userAgent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:41.0) Gecko/20100101 Firefox/41.0" type="device"><diagram>5Zptc9o4EMc/TV4mA5invKRAcszlQgbS9vpSYMVozlicEE3Ip+9K3jW25bS0yKQzZZjBXtuy/NNf+yBzEQzXL7eKbVb/yJDHF61G+HIRjC5arWY7aMOPsexTS68dpIZIiRBPOhjm4pWjsYHWnQj5tnCiljLWYlM0LmWS8KUu2J5kXLzFhkXU/MEwX7LYtX4WoV6l1n6re7D/xUW0ots0u9fpkQVb/hcpuUvwfhet4Ml+0sNrRm3ZpwrGQExJCc2YrfXLkMeGGgFJH/3mjaNZJxVPsCM/uACH4CuLd/igqWGr9/Tk2xXbmE3+Ak1+COVuYY80Ycc+Fjdtmb3nldB8vmFLc/gZxhxsK72O8TC0E8pn3MHbcqU56cHtuzVhx2+5XHOt9nAKXdBDHaB8Wg3cfz6MT5u0ssqNTUAXMtRJlLV9QAUbSKuaHHLKgZuN548OvJ8itImZSC4jxXlSA69WmRdqI8+rdV3Bq+0Bl6uzu+ntBC47nZdULDFzt35gvd75gHUcYA+z6afJfDK9n9zf+uC2sC37p9a9vsLOI7eAHH2BGzbsmxv64xy3z9PZ3zd3088+mO3hZgZW7VoLiM85tIaRKsdsPh5+nE0ev5zGbCWVeJWJZsbQyCAqc73/cEB0vuPeuhUAM/KnEKQwk5+u49l8Mn8c3w/HfqICgwerXXftdv98umtid4/JPpb7WAAz9c68gn7Rt3Wu3ZhQpbK+D1wuHR5Ckoq7UumVjGTC4vHBmkvRzATMYeIvQv9rzOCt070vBUym6e9Dgp7InbKjkJsCmqmIZ1lwNUzFY6bF12L7J6HByiGnpMn943h2P7gD6/xxOhvcwjTsxiaFXSjYisyWwxOEYew5TIpvxStLU17rw qRItO1p58NFZwQWttMSzqGcmMUigvRtFPMn05RRm4AyYoBmLY1ct6BekUSPZmd02fakzQ4KBLXZ7btxt0nztuACfYgT/UZhLqe8nyAEFDB3/9+ZAsceuEzRDeAEeFZ4EiBBx2mYhtNZNnjQj7S9o0fQA9k2TV+a9RWxhU4pVBo+wLrReRCuRQKmj5MjJH3mqoycH8UTF1ST4OVJ0WUnlWRuEB4n4eVuC1Hj94SVlazvQcsNvsM7YPS+RIJOMb6elciZ4iugUPv0EJR5uG8OmhYqgP50JEaPkY/E9tHOEIip0PfD0AMMEsu7wEAtexLUQTZ1qCZbQn0PUG7VPthsXHhxDGu7uGiRVgWx3Jli8sxeqkOBnar1I72UjyqghQWHdy+Vd1ONq2vafeBKQCdN5WUvzsmwV4sOUQvvosOqJPaNglSs7RuDLMG/YwseP0AloIU0if5Cai3Xb1YAePlopTXsQvp7A1+eyOetfNLPgOhqCVe3bth2y6HeaN3YC8wGW5pnvgyFgpcaUu0vYxjvq00SeUrgOu3y+t21uybQ7FQurHsYAjfd9bYmUNvqXY9Kc1p7aiLBHLEATXlgBPEUYOR78nmc9YrevGe9ryW6fVQNZXxdV2206JJn10PkJ7E7YgFKKwHvF6wX/QGndEamsx88mun8hydg/qnAcbNTG9taAWRxRdAL1vIyfKtiGlcVrT5SaVrx/x5YnoQDpSyBZQxuTiyrQxNtp3EpCzk2BBXijz1WoLqFIKLdm1jzjTC9PyFQId1CnLLOyx2THPEqv0m2o+MZ3uHBrEXlvFCpmsxWxKmJtPd4Vf6tcLkh6hA1VF7sTZ/ZaciqInvs44TivueqRSjFlNnJCc8tlNTxvJ1f9rAZmro0IEcK6XjNlO8UdHHm/rRmaODKXa5BM2618Ec4F+u+39ZMv6QZ8uO/s2ZKZVSAEaoGzWCSUbufafSKsjFr+78iG9tEufby538Ofzaq1BK9fc7++VCblk qqDXq/qqVySU4vMmvQklsljphmCwbJ9e/zQqmYUXqveBold08+IacQEo3vV02BWyLejQYPfw77UrUZVFRMVbPzF9jD7uHPiOlUOfyXMxh/Aw==</diagram></mxfile> http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/images/identityLifecycle.png ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/images/identityLifecycle.png b/src/main/asciidoc/images/identityLifecycle.png new file mode 100644 index 0000000..e9eb528 Binary files /dev/null and b/src/main/asciidoc/images/identityLifecycle.png differ http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/images/installer1.png ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/images/installer1.png b/src/main/asciidoc/images/installer1.png new file mode 100644 index 0000000..271e40d Binary files /dev/null and b/src/main/asciidoc/images/installer1.png differ http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/images/installer10.png ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/images/installer10.png b/src/main/asciidoc/images/installer10.png new file mode 100644 index 0000000..1e48504 Binary files /dev/null and b/src/main/asciidoc/images/installer10.png differ http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/images/installer2.png ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/images/installer2.png b/src/main/asciidoc/images/installer2.png new file mode 100644 index 0000000..f8498a6 Binary files /dev/null and b/src/main/asciidoc/images/installer2.png differ http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/images/installer3.png ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/images/installer3.png b/src/main/asciidoc/images/installer3.png new file mode 100644 index 0000000..b7e52aa Binary files /dev/null and b/src/main/asciidoc/images/installer3.png differ http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/images/installer4.png ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/images/installer4.png b/src/main/asciidoc/images/installer4.png new file mode 100644 index 0000000..341e2e0 Binary files /dev/null and b/src/main/asciidoc/images/installer4.png differ http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/images/installer5.png ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/images/installer5.png b/src/main/asciidoc/images/installer5.png new file mode 100644 index 0000000..0151666 Binary files /dev/null and b/src/main/asciidoc/images/installer5.png differ http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/images/installer6.png ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/images/installer6.png b/src/main/asciidoc/images/installer6.png new file mode 100644 index 0000000..4c50a22 Binary files /dev/null and b/src/main/asciidoc/images/installer6.png differ http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/images/installer7.png ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/images/installer7.png b/src/main/asciidoc/images/installer7.png new file mode 100644 index 0000000..c2d135e Binary files /dev/null and b/src/main/asciidoc/images/installer7.png differ http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/images/installer8.png ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/images/installer8.png b/src/main/asciidoc/images/installer8.png new file mode 100644 index 0000000..006fa3f Binary files /dev/null and b/src/main/asciidoc/images/installer8.png differ http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/images/installer9.png ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/images/installer9.png b/src/main/asciidoc/images/installer9.png new file mode 100644 index 0000000..cea0f0c Binary files /dev/null and b/src/main/asciidoc/images/installer9.png differ http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/introduction.adoc ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/introduction.adoc b/src/main/asciidoc/introduction.adoc new file mode 100644 index 0000000..f880ab5 --- /dev/null +++ b/src/main/asciidoc/introduction.adoc @@ -0,0 +1,114 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +== Introduction + +*Apache Syncope* is an Open Source system for managing digital identities in enterprise environments, implemented in +Java EE technology and released under Apache 2.0 license. + +*Identity management* (or IdM) represents the joint result of business process and IT to manage user data on systems and +applications. IdM involves considering user attributes, roles, resources and entitlements in trying to give a decent +answer to the question bumping up every time in an IT administrator's mind: + +[.text-center] +_Who has access to What, When, How, and Why?_ + +=== What is this Identity Management, anyway? + +**** +Account:: Computers work with records of data about persons. Such records contains technical information needed by the system for +which the account is created and managed. +(Digital) Identity:: A representation of a set of claims made by one digital subject about itself. *It's you!* +**** + +Have you ever been hired by a company, entered an organization or just subscribed a new Google account? +Companies, organizations and cloud entities work with applications that need your data to function properly: +username, password, e-mail, first name, surname, and more. + +Who is going to feed such information? And what happens when you need to be enabled for more applications? And what if +you get promoted and acquire more rights on the applications you already had access to? +Most important, what happens when you quit or they gently let you go? + +Shortly, Identity Management takes care of managing identity data throughout what is called the *Identity Lifecycle*. + +[.text-center] +image::identityLifecycle.png[title="Identity Lifecycle",alt="Identity Lifecycle",width="505",height="324"] + +.Users, groups and any objects +**** +With Apache Syncope 2.0.0, the managed identities are not limited anymore to users and groups. New object types can be +defined so that any object's data can be managed through Syncope: workstations, printers, folders, sensors, services, +and so on. This positions Apache Syncope at best places for bringing Identity Management in the IoT world. +**** + +=== Bird's eye view on Architecture + +*_Core_* is the central component, providing all services offered by Apache Syncope. + +It exposes a full-compliant https://en.wikipedia.org/wiki/Java_API_for_RESTful_Web_Services[JAX-RS 2.0^] +https://en.wikipedia.org/wiki/Representational_state_transfer[RESTful^] interface which enables third-party applications, +written in any programming language, to consume IdM services. + + * *_Logic_* implements the overall business logic that can be triggered via REST services, and controls some additional +features (notifications, reports and audit over all) + * *_Provisioning_* is delegated to manage the internal (via workflow) and external (via specific connectors) +representation of users, groups and any objects. + +Being the crucial decision point for defining and enforcing the consistency and transformations between internal and +external data, this component needs often to be tailored on requirements of specific deployment. For this reason, besides +the all-Java default implementation that can be anyway extended, an http://camel.apache.org/[Apache Camel^]-based +implementation is also available as extension, which brings all the power of runtime changes and adaptation. + * *_Workflow_* is one of pluggable aspects: this lets every deployment choose the preferred engine +among provided - including the one based on http://www.activiti.org/[Activiti BPM^], the reference open source +http://www.bpmn.org/[BPMN 2.0^] implementation - or define new, custom ones. + * *_Persistence_* manages all data (users, groups, attributes, resources, ...) at high level +using a standard https://en.wikipedia.org/wiki/Java_Persistence_API[JPA 2.0^] approach, persisting to an underlying +database, referred as the *_Internal Storage_*. Consistency is ensured via the comprehensive +http://docs.spring.io/spring/docs/4.1.x/spring-framework-reference/html/transaction.html[transaction management^] +provided by the Spring Framework. + +Globally, all this permits to scale up to million entities and at the same time allows great portability with no code +changes: MySQL, MariaDB, PostgreSQL, Oracle and MS SQL Server are fully supported deployment options. + * *_Security_* defines a fine-grained set of entitlements which can be granted to administrators, thus allowing to +implement real delegated administration scenarios. + +[.text-center] +image::architecture.png[title="Architecture",alt="Architecture"] + +*_Admin UI_* is the web-based console for configuring and administering running deployments, with full support +for delegated administration. + +*_End-user UI_* is the web-based application for self-registration, self-service and password reset. + +*_CLI_* is the command-line application for interacting with Apache Syncope from scripts, particularly useful for +system administrators. + +Third-party applications are provided full access to IdM services by leveraging the REST interface, either via the +Java _SyncopeClient_ library (at the basis of Admin UI, End-user UI and CLI) or plain HTTP calls. + +.ConnId +**** +The *_Provisioning_* layer relays on http://connid.tirasa.net[ConnId^]; ConnId is designed to separate the +implementation of an application from the dependencies of the system that the application is attempting to connect to. + +ConnId is the continuation of The Identity Connectors Framework (Sun ICF), a project that used to be part of market +leader Sun IdM and has since been released by Sun Microsystems as an Open Source project. This makes the connectors layer +particularly reliable because most connectors have already been implemented in the framework and widely tested. + +The new ConnId project, featuring contributors from several companies, provides all that is required nowadays for a +modern Open Source project, including an Apache Maven driven build, artifacts and mailing lists. Additional connectors â +such as for SOAP, CSV, PowerShell and Active Directory â are also provided. +**** \ No newline at end of file http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/obtain.adoc ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/obtain.adoc b/src/main/asciidoc/obtain.adoc new file mode 100644 index 0000000..4ca2c6c --- /dev/null +++ b/src/main/asciidoc/obtain.adoc @@ -0,0 +1,431 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +== Obtain Apache Syncope + +There are several ways to obtain Apache Syncope: each method shows advantages or caveats for different types of users. + +=== Standalone + +The standalone distribution is the simpler way to start exploring Apache Syncope: it contains a full working, in-memory +Tomcat-based environment that can be easily grabbed and put at work on any modern laptop, workstation or server. + +[CAUTION] +.Target Audience +First approach, especially with administration console; does not require technical skills. + +*Not meant for any production environment.* + +Getting ready in few easy steps: + +. http://syncope.apache.org/downloads.html[download^] the standalone distribution +. unzip the distribution archive +. go into the created Apache Tomcat directory +. start Apache Tomcat +* GNU / Linux, Mac OS X ++ +[source,bash] +---- +$ chmod 755 ./bin/*.sh +$ ./bin/startup.sh +---- ++ +* Windows ++ +[source,cmd] +---- +> bin/startup.bat +---- + +[TIP] +Please refer to http://tomcat.apache.org/tomcat-8.0-doc/[Apache Tomcat documentation^] for more advanced setup and +instructions. + +==== Components + +The set of available components, including access URLs and credentials, is the same as reported for +<<paths-and-components,embedded mode>>, with exception of log files, here available under `$CATALINA_HOME/logs`. + +[TIP] +.Internal Storage +==== +By default, the standalone distribution is configured for using an in-memory database instance. +This means that every time Tomcat is shut down all changes made are lost. + +If you want instead to make your changes persistent, replace + +[source,java] +jpa.url=jdbc:h2:mem:syncopedb;DB_CLOSE_DELAY=-1 + +with + +[source,java] +jpa.url=jdbc:h2:~/syncopedb;DB_CLOSE_DELAY=-1 + +in `webapps/syncope/WEB-INF/classes/persistence.properties` from the Apache Tomcat directory. +This will create H2 database files in the home directory of the user running Apache Syncope. + +Please refer to http://www.h2database.com/[H2 documentation^] for more options. +==== + +=== Debian packages + +Debian packages are available for usage with latest http://www.debian.org/[Debian GNU / Linux^], +http://www.ubuntu.com/[Ubuntu^] and their derivatives. + +[CAUTION] +.Target Audience +Getting up and running quickly on Debian / Ubuntu. + +*Difficult to extend beyond pre-sets.* + +Download:: +http://syncope.apache.org/downloads.html[Download^] the latest .deb packages +Prepare:: +. Install Apache Tomcat 8 and PostgreSQL ++ +[source,bash] +sudo apt-get install tomcat8 libpostgresql-jdbc-java postgresql postgresql-client ++ +. Use the PostgreSQL JDBC driver with Tomcat ++ +[source,bash] +sudo ln -s /usr/share/java/postgresql-jdbc4.jar /usr/share/tomcat8/lib/ ++ +. Replace `JAVA_OPTS` in `/etc/default/tomcat8` with the following: ++ +[source,bash] +---- +JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server \ + -Xms1536m -Xmx1536m -XX:NewSize=256m -XX:MaxNewSize=256m + -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC" +---- ++ +Install:: +. Stop Tomcat ++ +[source,bash] +sudo service tomcat8 stop ++ +. Install Apache Syncope core and console via the downloaded packages ++ +[source,bash] +sudo dpkg -i apache-syncope-*.deb ++ +. Create a database for usage with Apache Syncope ++ +[source,bash] +sudo SYNCOPE_USER="syncope" SYNCOPE_PASS="syncope" sh /usr/share/apache-syncope/dbinit-postgresql.sh ++ +. Start Tomcat ++ +[source,bash] +sudo service tomcat8 start + +==== Components + +CAUTION: The following assumes that Apache Tomcat is reachable on host `host.domain` and port `port`. + +[cols="1,2"] +|=== + +| Complete REST API reference +| http://host.domain:port/syncope/index.html + +| http://swagger.io/[Swagger^] UI +| http://host.domain:port/syncope/swagger/ + +| Administration console +| http://localhost:9080/syncope-console/ + +Credentials: `admin` / `password` + +|=== + +=== GUI Installer + +GUI application for configuring and deploying Apache Syncope on supported +<<internal-storage,DBMSes>> and <<java-ee-container, Java EE containers>>. + +[CAUTION] +.Target Audience +Getting up and running quickly on any supported DBMS and Java EE container, independently from underlying +operating system. + +*Difficult to extend beyond pre-sets.* + +==== Prerequisites + + . http://maven.apache.org/[Apache Maven^] (version 3.0.3 or higher) installed + . one of supported <<internal-storage,DBMSes>> up and running + . one of supported <<java-ee-container, Java EE containers>> up and running + . datasource with name `syncopeDataSource` configured in the selected Java EE container, for a database instance in the + DBMS of choice + +[WARNING] +==== +When deploying on Apache Tomcat, don't forget to configure a `manager` user; if not done yet, ensure that the content +of `$CATALINA_HOME/conf/tomcat-users.xml` looks like: + +[source,xml] +<?xml version='1.0' encoding='utf-8'?> +<tomcat-users> + <role rolename="manager-gui"/> + <role rolename="manager-script"/> + <role rolename="manager-jmx"/> + <role rolename="manager-status"/> + <user username="manager" password="s3cret" roles="manager-script"/> +</tomcat-users> +==== + +==== Usage + +Once http://syncope.apache.org/downloads.html[downloaded^], double-click the JAR file or execute via command-line: + +[source,bash] +java -jar syncope-installer-*-uber.jar + +image:installer1.png[width="500",role="thumb",link="images/installer1.png"] + +image:installer2.png[width="500",role="thumb",link="images/installer2.png"] + +image:installer3.png[width="500",role="thumb",link="images/installer3.png"] + +image:installer4.png[width="500",role="thumb",link="images/installer4.png"] + +Installation path:: working directory where the Apache Syncope project will be created and built + +image:installer5.png[width="500",role="thumb",link="images/installer5.png"] + +Maven home directory:: directory where Apache Maven is installed +GroupId:: something like 'com.mycompany' +ArtifactId:: something like 'mySyncopeProject' +Secret Key:: provide any pseudo-random string here that will be used in the generated project for AES ciphering +Anonymous Key:: provide any pseudo-random string here that will be used an authentication key for anonymous requests +Configuration directory:: directory for configuration files +Log directory:: directory for log files +Bundle directory:: directory where ConnId bundles are put +Syncope version:: Apache Syncope version selected for installation + +image:installer6.png[width="500",role="thumb",link="images/installer6.png"] + +image:installer7.png[width="500",role="thumb",link="images/installer7.png"] + +image:installer8.png[width="500",role="thumb",link="images/installer8.png"] + +image:installer9.png[width="500",role="thumb",link="images/installer9.png"] + +image:installer10.png[width="500",role="thumb",link="images/installer10.png"] + +==== Components + +CAUTION: The following assumes that the Java EE container is reachable on host `host.domain` and port `port`. + +[cols="1,2"] +|=== + +| Complete REST API reference +| http://host.domain:port/syncope/index.html + +| http://swagger.io/[Swagger^] UI +| http://host.domain:port/syncope/swagger/ + +| Administration console +| http://localhost:9080/syncope-console/ + +Credentials: `admin` / `password` + +|=== + +=== Maven Project + +This is the *preferred method* for working with Apache Syncope, giving access to the whole set of customization +and extension capabilities. + +[CAUTION] +.Target Audience +Provides access to full capabilities of Apache Syncope, and nearly any possible extension. + +*Requires Apache Maven (and potentially https://en.wikipedia.org/wiki/DevOps[DevOps^]) skills.* + +==== Prerequisites + + . http://maven.apache.org/[Apache Maven^] (version 3.0.3 or higher) installed + . Some basic knowledge about Maven + . Some basic knowledge about http://maven.apache.org/guides/introduction/introduction-to-archetypes.html[Maven archetypes^]. + +==== Create project + +Maven archetypes are templates of projects. Maven can generate a new project from such a template. +In the folder in which the new project folder should be created, type the command shown below. +On Windows, run the command on a single line and leave out the line continuation characters ('\'). + +ifeval::["{snapshotOrRelease}" == "release"] + +[subs="verbatim,attributes"] +---- +mvn archetype:generate \ + -DarchetypeGroupId=org.apache.syncope \ + -DarchetypeArtifactId=syncope-archetype \ + -DarchetypeRepository=http://repo1.maven.org/maven2 \ + -DarchetypeVersion={docVersion} +---- + +endif::[] + +ifeval::["{snapshotOrRelease}" == "snapshot"] + +[subs="verbatim,attributes"] +---- +mvn archetype:generate \ + -DarchetypeGroupId=org.apache.syncope \ + -DarchetypeArtifactId=syncope-archetype \ + -DarchetypeRepository=http://repository.apache.org/content/repositories/snapshots \ + -DarchetypeVersion={docVersion} +---- + +[WARNING] +==== +Once the Maven project is generated, add the following right before `</project>` in the root `pom.xml` of the +generated project: + +[source,xml] +---- +<repositories> + <repository> + <id>ASF</id> + <url>https://repository.apache.org/content/repositories/snapshots/</url> + <snapshots> + <enabled>true</enabled> + </snapshots> + </repository> +</repositories> +---- +==== + +endif::[] + +The archetype is configured with default values for all properties required; if you want to customize any of these +property values, type 'n' when prompted for confirmation. + +You will be asked for: + +groupId:: + something like 'com.mycompany' +artifactId:: + something like 'myproject' +version number:: + You can use the default; it is good practice to have 'SNAPSHOT' in the version number during development and the +maven release plugin makes use of that string. But ensure to comply to the desired numbering scheme for your project. +package name:: + The java package name. A folder structure according to this name will be generated automatically; by default, equal +to the groupId. +secretKey:: + Provide any pseudo-random string here that will be used in the generated project for AES ciphering. +anonymousKey:: + Provide any pseudo-random string here that will be used an authentication key for anonymous requests. + +Maven will create a project for you (in a newly created directory named after the value of the `artifactId` property +specified above) containing three modules: `common`, `core` and `console`. + +You are now able to perform the first build via + +[source,bash] +mvn clean verify + +After downloading all the needed dependencies, this will produce two WAR files: + +. `core/target/syncope.war` +. `console/target/syncope-console.war` + +If no failures are encountered, your basic Apache Syncope project is now set. + +[NOTE] +You should consider reading the _Apache Syncope Reference Guide_ for understanding how to configure, extend, customize +and deploy your new Apache Syncope project. + +==== Embedded Mode + +Every Apache Syncope project has the ability to run a full-blown in-memory environment, particularly useful either when +evaluating the product and during the development phase of an IdM solution. + +[WARNING] +==== +Don't forget that this environment is completely in-memory: this means that every time Maven is stopped, all changes +made are lost. +==== + +From the top-level directory of your project, execute: + +[source,bash] +mvn clean verify + +then, from the `console` subdirectory, execute: + +[source,bash] +mvn -P embedded + +===== Paths and Components + +[cols="1,2a"] +|=== + +| Log files +| Available under `core/target/log` and `console/target/log` + +| ConnId bundles +| Available under `console/target/bundles` + +| Complete REST API reference +| http://localhost:9080/syncope/index.html + +| http://swagger.io/[Swagger^] UI +| http://localhost:9080/syncope/swagger/ + +| Administration console +| http://localhost:9080/syncope-console/ + +Credentials: `admin` / `password` + +| Internal storage +| A SQL web interface is available at http://localhost:9080/syncope/db.jsp + + + + Choose configuration 'Generic H2 (Embedded)' + + Insert `jdbc:h2:mem:syncopedb` as JDBC URL + + Click 'Connect' button + +| External resource: LDAP +| An http://directory.apache.org/apacheds/[Apache DS^] instance is available. + +You can configure any LDAP client (as http://jxplorer.org/[JXplorer^], for example) with the following information: + + + + host: `localhost` + + port: `1389` + + base DN: `o=isp` + + bind DN: `uid=admin,ou=system` + + bind password: `secret` + +| External resource: SOAP +| An example SOAP server is available at http://localhost:9080/wssample/services + + + + You can check its internal data by visiting http://localhost:9080/wssample/exploredb.jsp + +| External resource: database +| http://www.h2database.com/[H2^] TCP database is available. + + + + A SQL web interface is available at http://localhost:9082/ + + + + Choose configuration 'Generic H2 (Server)' + + Insert `jdbc:h2:tcp://localhost:9092/mem:testdb` as JDBC URL + + Set 'sa' as password + + Click 'Connect' button + +|=== http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/reference-guide.adoc ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/reference-guide.adoc b/src/main/asciidoc/reference-guide.adoc new file mode 100644 index 0000000..661c5d3 --- /dev/null +++ b/src/main/asciidoc/reference-guide.adoc @@ -0,0 +1,148 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +// Quick reference: http://asciidoctor.org/docs/asciidoc-syntax-quick-reference/ +// User manual: http://asciidoctor.org/docs/user-manual/ +// Tricks: https://leanpub.com/awesomeasciidoctornotebook/read + +:homepage: http://syncope.apache.org +:description: Comprehensive guide about Apache Syncope +:keywords: Apache Syncope, IdM, provisioning, identity management, reference, guide + +:docinfo1: +:last-update-label!: +:sectanchors: +:sectnums: +:sectlinks: + += Apache Syncope - Reference Guide +:revnumber: {docVersion} +:toc: right +:toclevels: 4 + +image::http://syncope.apache.org/images/apache-syncope-logo-small.jpg[Apache Syncope logo] + +[NOTE] +.This document is under active development and discussion! +If you find errors or omissions in this document, please donât hesitate to +http://syncope.apache.org/issue-tracking.html[submit an issue] or +https://github.com/apache/syncope/pulls[open a pull request] with +a fix. We also encourage you to ask questions and discuss any aspects of the project on the +http://syncope.apache.org/mailing-lists.html[mailing lists or IRC]. +New contributors are always welcome! + +[discrete] +== Preface +This guide provides comprehensive reference to Apache Syncope services for identity management, provisioning, and +compliance. + +== Introduction + +=== A bit of history + +== Identity and Access Management + +=== Identity Stores + +=== Provisioning Engines + +=== Access Managers + +=== The Complete Picture + +== Architecture + +=== Design Principles + +=== Implementation Guidelines + +== Concepts + +=== Data model + +==== Schema + +==== Attributes + +==== Users, Groups and Any objects + +==== Realms + +==== Domains + +=== Tasks + +=== Provisioning + +==== Connectors + +==== Resources + +==== Propagation, Push & Synchronization + +=== Policies + +==== Account + +==== Password + +==== Push + +==== Synchronization + +=== Workflow and Approval + +=== Notifications + +=== Reports + +=== Audit + +=== Delegated Administration + +== Working with Apache Syncope + +=== Using the Admin Console + +=== RESTful services + +==== Client library + +=== Customization + +==== Core + +==== Console + +==== New extensions + +=== Deploying in production + +=== Options + +=== High-Availability + +== Extensions + +=== Apache Camel + +== Use Cases + +// Chapters will be placed in separate .adoc files in the same directory +//include::XXX.adoc[] \ No newline at end of file http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/reference-guide/docinfo-footer.html ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/reference-guide/docinfo-footer.html b/src/main/asciidoc/reference-guide/docinfo-footer.html deleted file mode 100644 index 6fdbd5f..0000000 --- a/src/main/asciidoc/reference-guide/docinfo-footer.html +++ /dev/null @@ -1,23 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<div id="footer-text"> - <small>Copyright © 2010â{year} <a href="http://www.apache.org/">The Apache Software Foundation</a>. - All rights reserved. - </small> -</div> http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/reference-guide/reference-guide.adoc ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/reference-guide/reference-guide.adoc b/src/main/asciidoc/reference-guide/reference-guide.adoc deleted file mode 100644 index 661c5d3..0000000 --- a/src/main/asciidoc/reference-guide/reference-guide.adoc +++ /dev/null @@ -1,148 +0,0 @@ -// -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. -// - -// Quick reference: http://asciidoctor.org/docs/asciidoc-syntax-quick-reference/ -// User manual: http://asciidoctor.org/docs/user-manual/ -// Tricks: https://leanpub.com/awesomeasciidoctornotebook/read - -:homepage: http://syncope.apache.org -:description: Comprehensive guide about Apache Syncope -:keywords: Apache Syncope, IdM, provisioning, identity management, reference, guide - -:docinfo1: -:last-update-label!: -:sectanchors: -:sectnums: -:sectlinks: - -= Apache Syncope - Reference Guide -:revnumber: {docVersion} -:toc: right -:toclevels: 4 - -image::http://syncope.apache.org/images/apache-syncope-logo-small.jpg[Apache Syncope logo] - -[NOTE] -.This document is under active development and discussion! -If you find errors or omissions in this document, please donât hesitate to -http://syncope.apache.org/issue-tracking.html[submit an issue] or -https://github.com/apache/syncope/pulls[open a pull request] with -a fix. We also encourage you to ask questions and discuss any aspects of the project on the -http://syncope.apache.org/mailing-lists.html[mailing lists or IRC]. -New contributors are always welcome! - -[discrete] -== Preface -This guide provides comprehensive reference to Apache Syncope services for identity management, provisioning, and -compliance. - -== Introduction - -=== A bit of history - -== Identity and Access Management - -=== Identity Stores - -=== Provisioning Engines - -=== Access Managers - -=== The Complete Picture - -== Architecture - -=== Design Principles - -=== Implementation Guidelines - -== Concepts - -=== Data model - -==== Schema - -==== Attributes - -==== Users, Groups and Any objects - -==== Realms - -==== Domains - -=== Tasks - -=== Provisioning - -==== Connectors - -==== Resources - -==== Propagation, Push & Synchronization - -=== Policies - -==== Account - -==== Password - -==== Push - -==== Synchronization - -=== Workflow and Approval - -=== Notifications - -=== Reports - -=== Audit - -=== Delegated Administration - -== Working with Apache Syncope - -=== Using the Admin Console - -=== RESTful services - -==== Client library - -=== Customization - -==== Core - -==== Console - -==== New extensions - -=== Deploying in production - -=== Options - -=== High-Availability - -== Extensions - -=== Apache Camel - -== Use Cases - -// Chapters will be placed in separate .adoc files in the same directory -//include::XXX.adoc[] \ No newline at end of file http://git-wip-us.apache.org/repos/asf/syncope/blob/36cc7725/src/main/asciidoc/systemRequirements.adoc ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/systemRequirements.adoc b/src/main/asciidoc/systemRequirements.adoc new file mode 100644 index 0000000..a18534e --- /dev/null +++ b/src/main/asciidoc/systemRequirements.adoc @@ -0,0 +1,51 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +== System Requirements + +=== Hardware + +The numbers below are greatly affected by several requirements of given deployment, in particular the total number of +managed entities (users, groups and any objects), their attributes and resources. + + * CPU: dual core, 2 GHz (minimum) + * RAM: 2 GB (minimum) + * Disk: 100 MB (minimum) + +=== Java + +Apache Syncope {docVersion} requires the latest JDK 7 or JDK 8 available. + +=== Java EE Container + +Apache Syncope {docVersion} is verified with the following Java EE containers: + + . http://tomcat.apache.org/download-80.cgi[Apache Tomcat 8^] + . https://glassfish.java.net/[Glassfish 4.1^] + . http://www.wildfly.org/[Wildfly 9^] + +=== Internal Storage + +Apache Syncope {docVersion} is verified with the recent versions of the following DBMSes, for internal storage: + + . http://www.postgresql.org/[PostgreSQL^] + . https://mariadb.org/[MariaDB^] + . http://www.mysql.com/[MySQL^] + . https://www.oracle.com/database/index.html[Oracle Database^] + . http://www.microsoft.com/en-us/server-cloud/products/sql-server/[MS SQL Server^] \ No newline at end of file
