policy/distribution document updates
[policy/parent.git] / docs / distribution / Distribution-Introduction.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3
4
5 Introduction to Policy Distribution
6 ***********************************
7
8          .. container:: paragraph
9
10             The main job of policy distribution component is to receive
11             incoming notifications, download artifacts, decode policies
12             from downloaded artifacts & forward the decoded policies to
13             all configured policy forwarders.
14
15 |
16
17          .. container:: paragraph
18
19             The current implementation of distribution component comes
20             with built-in SDC reception handler for receiving incoming
21             distribution notifications from SDC using SDC client library.
22             Upon receiving the notification, the corresponding CSAR artifacts
23             are downloaded using SDC client library.The downloaded CSAR is
24             then given to the configured policy decoder for decoding and
25             generating policies. The generated policies are then forwarded
26             to all configured policy forwarders. Related distribution status
27             is sent to SDC at each step (download/deploy/done) during the
28             entire flow.
29
30 |
31
32          .. container:: paragraph
33
34             The distribution component also comes with built-in REST based
35             endpoints for fetching health check status & statistical data
36             of running distribution system.
37
38 |
39
40          .. container:: paragraph
41
42             The distribution component is designed using plugin based architecture.
43             All the handlers, decoders & forwarders are basically plugins to
44             the running distribution engine. The plugins are configured in the
45             configuration JSON file provided during startup of distribution engine.
46             Adding a new plugin is simply implementing the related interfaces,
47             adding them to the configuration JSON file & making the classes available
48             in the classpath while starting distribution engine. There is no need
49             to edit anything in the distribution core engine.
50             Refer to distribution user manual for more details about the system and
51             the configuration.