Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Cleaned up a lot of sections.

...

3.1.5 Template-Based Policy Creation by GUI user

TBD - No Resources to work on the GUI

Another type of users who prefer to manipulate template-based policies through GUI. Thus, we call them GUI users here, without loss of generality. The sequence diagram is shown below. Basically, all such users' operations are through GUI, including reviewing/selecting existing templates and populating selected template by providing values to fill out configurable parameters in the template. The options to fill configurable parameters should be rendered by GUI. The configurable parameters here include those embedded in the template and the ones in policy metadata like "artifactId", "version" and so on. GUI backend will invoke corresponding API calls and pass in API arguments upon users' input in the GUI. It is worth noting that, in this scenario, all parameter values used to populate the template are specified in the "data" field of the payload and passed in to the API call. PAP will call maven archetype generation plugin to package a policy artifact on top of a populated template and do nexus deployment.

...

Create PDP groupDefine the parameters for the PDP group including the type of PDP
Update PDP groupChange the parameters of the PDP group
Delete PDP group-
Add PDP to PDP GroupAdd a PDP to the PDP group, is the PDP spun up separately or does the PAP initiate the spinning up of the PDP?
Update PDP in PDP groupUpdate parameters of the PDP in the PDP group
Remove PDP from PDP group-
  • Can a PDP be in more than one PDP group??? .....I hope not!
  • We'll assume a single PAP for now.


3.3 Policy Execution APIs

...

New in Casablanca
NameStatusDescription
policy/parentNew in CasablancaParent repository containing the POM and any other information required to build all the sub-projectspolicy/core
Core code shared among all policy repositoriespolicy/commonUsed in Beijing CasablancaPolicy common shared modules
policy/modelsNew in CasablancaThis repository will hold model code agnostic to PDP engines
policy/apiUnused in Beijing CasablancaPolicy CRUD and PEP enforcement client code
policy/pap

Unused in Beijing
Used in Casblanca Casablanca

Policy Administration
policy/distributionNew in CasablancaThis repository will hold the SDC Service Distribution code
policy/pdpUnused in Beijing
Used in Casblanca
Common code shared between PDP enginespolicy/xacml-pdpNew in Casblanca
Code moved from engine repository Casablanca

The XACML PDP implementation

policy/drools-pdpUsed in Beijing and CasablancaCasablancaThe Drools PDP implementation
policy/apex-pdpNew in Casablanca

This repo will hold the next generation Apex PDP engine

policy/drools-applicationsUsed in Beijing CasablancaAPIs and helper code for accessing other ONAP components from PDPs
policy/dockerUsed in Beijing CasablancaPolicy Docker support
policy/guiUnused in BeijingCasablanca
Will be used in the future
Policy Administration GUI (Front End)
policy/engineUsed in BeijingCasablanca
Will be deprecated
Contains the Policy GUI, client SDK, API's and XACML PDP Engine

Questions

  1. What is the relationship between policy/common and policy/core?
    1. Pamela Dragosh - I don't see much "common" in policy/common. I think that majority of code is for drools-pdp and should be moved. The rest can go into policy/core
  2. What is the relationship between policy/models and policy/api?
    1. Pamela Dragosh - Models are models for building policies agnostic to the PDPs. Can be used by the PAP. The API supports the code for our API.
  3. How does policy/pap play with policy/distribution?
    1. Pamela Dragosh - current thought is policy/distribution uses the API to call the policy/pap to create and push policies. This needs more thought on this flow.

5. Writing, Deploying, and Running Policies

How to create policies (how the customers use the platform) - Chenfei Gao will collect details on this regarding current problems

5.1 Writing a policy

5.2 Deploying a Policy

5.3 Running a Policy

6. The PDP SDK: Designing and Deploying your own PDP

PDP Microservice Architecture??

TODO: How to build your own PDP and/or how to extend existing PDP.

TOOD: How a PDP expresses its capabilities and configurability

6.1 Configuring the ONAP PDPs

6.2 Customizing the ONAP PDPs

6.3 Developing your own PDP

7. Summary and Conclusions

8. Terminology

...

9. References

10. Open Questions

...

  1. High-level Conflict Detection and Resolution tools to help identify possible conflicts
  2. Availability of Conflict Detection and Resolution for Policies during development and testing phases

5. Terminology

PAP (Policy Administration Point)A component that administers and manages policies
PDP (Policy Deployment Point)A component that executes a policy artifact (One or many?)
PDP_<>A specific type of PDP
PDP GroupA group of PDPs that execute the same (set of?) policy artifact(s)
Policy DevelopmentThe development environment for policies
PolicyTemplate

A generic prototype policy that may or may not be executable. It can be stored in Nexus and support a maven archetype interface to be to generate other policy templates and/or concrete policies. They are a way to organize a common set of rules into one place for re-usability.

DomainPolicyA specialization of a generic policy for application to a specific domain
PolicyParametersParameters that configure a policy for execution in a PDP group
Executable PolicyA policy that can be stored in Nexus and can execute on a certain type of PDP. An executable policy is a parameterized policy template or domain policy
Executable Policy SetA set of policies that are deployed on a PDP group. One and only one Policy Set is deployed on a PDP group

...

There are a number of ways to handle upgrade/rollback and switch between active and passive modes

...