From af74a6270d6ab6badf04a97495a6ef8ccded9b4b Mon Sep 17 00:00:00 2001
From: ramverma <ram.krishna.verma@ericsson.com>
Date: Tue, 31 Jul 2018 18:25:39 +0100
Subject: Adding first set of apex-pdp document changes

Adding document changes for auth, context, core, model, services & the
main apex-pdp module.

Change-Id: Id0d026baa258f1dc6998978f9911f3c4a73b5b3b
Issue-ID: POLICY-867
Signed-off-by: ramverma <ram.krishna.verma@ericsson.com>
---
 .../apex-policy-model/concept-contextmap.adoc      | 52 ++++++++++++++++++++++
 1 file changed, 52 insertions(+)
 create mode 100644 src/site-docs/adoc/fragments/apex-policy-model/concept-contextmap.adoc

(limited to 'src/site-docs/adoc/fragments/apex-policy-model/concept-contextmap.adoc')

diff --git a/src/site-docs/adoc/fragments/apex-policy-model/concept-contextmap.adoc b/src/site-docs/adoc/fragments/apex-policy-model/concept-contextmap.adoc
new file mode 100644
index 000000000..d3276590c
--- /dev/null
+++ b/src/site-docs/adoc/fragments/apex-policy-model/concept-contextmap.adoc
@@ -0,0 +1,52 @@
+//
+// ============LICENSE_START=======================================================
+//  Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+// 
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+== Concept: ContextMap
+
+The set of context that is available for use by the policies of a __PolicyModel__ is defined as __ContextMap__ concept instances.
+The __PolicyModel__ holds a map of all the __ContextMap__ definitions.
+A __ContextMap__ is itself a container for a group of related context items, each of which is represented by a __ContextItem__ concept instance.
+__ContextMap__ concepts are keyed with an `ArtifactKey` key.
+A developer can use the APEX Policy Editor to create context maps for their application domain.
+
+A __ContextMap__ uses a map to hold the context items.
+The ContextItem concept instances in the map are indexed by the __LocalName__ of their `ReferenceKey`.
+
+The __ContextMapType__ field of a __ContextMap__ defines the type of a context map.
+The type can have either of two values:
+
+* A __BAG__ context map is a context map with fixed content.
+  Each possible context item in the context map is defined at design time and is held in the __ContextMap__ context instance as __ContextItem__ concept definitions and only the values of the context items in the context map can be changed at run time.
+  The context items in a __BAG__ context map have mixed types and distinct __ContextItem__ concept instances of the same type can be defined.
+  A __BAG__ context map is convenient for defining a group of context items that are diverse but are related by domain, such as the characteristics of a device.
+  A fully defined __BAG__ context map has a fully populated __ContextItem__ map but its __ContextItemTemplate__ reference is not defined.
++
+* A __SAMETYPE__ context map is used to represent a group of __ContextItem__ instances of the same type.
+  Unlike a __BAG__ context map, the __ContextItem__ concept instances of a __SAMETYPE__ context map can be added, modified, and deleted at runtime.
+  All __ContextItem__ concept instances in a __SAMETYPE__ context map must be of the same type, and that context item is defined as a single __ContextItemTemplate__ concept instances at design time.
+  At run time, the __ContextItemTemplate__ definition is used to create new __ContextItem__ concept instances for the context map on demand.
+  A fully defined _SAMETYPE__ context map has an empty __ContextItem__ map and its __ContextItemTemplate__ reference is defined.
+
+
+The __Scope__ of a __ContextMap__ defines the range of applicability of a context map in APEX.
+The following scopes of applicability are defined:
+
+* __EPHEMERAL__ scope means that the context map is owned, used, and modified by a single application, but the context map only exists while that application is running
+* __APPLICATION__ scope specifies that the context map is owned, used, and modified by a single application, the context map is persistent
+* __GLOBAL__ scope specifies that the context map is globally owned and is used and modified by any application, the context map is persistent
+* __EXTERNAL__ scope specifies that the context map is owned by an external system and may be used in a read-only manner by any application, the context map is persistent
+
+A much more sophisticated scoping mechanism for context maps is envisaged for
+Apex in future work. In such a mechanism, the scope of a context map would work
+somewhat like the way roles work in security authentication systems.
+
-- 
cgit 1.2.3-korg

