Skip to content

Commit 83fed6c

Browse files
Remove mvn site and stop publishing to github-pages (#412)
* Remove mvn site plugin and travis deploy job * Move all markdown files out to wiki/ * Change links to be relative * Update front-end links and add links between step by step aggregation guide
1 parent 9a55c7d commit 83fed6c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+465
-641
lines changed

.remarkrc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"plugins": [
3+
"remark-preset-lint-recommended",
4+
["remark-lint-list-item-indent", false]
5+
]
6+
}

.travis.yml

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,11 @@ before_install:
1919
- uname -a
2020
- chmod +x pom.xml
2121

22-
# Only running report_coverage and deploy stage (after merge) to master branch
22+
# Only running report_coverage (after merge) to master branch
2323
stages:
2424
- test
2525
- name: report_coverage
2626
if: branch = master AND type != pull_request
27-
- name: deploy
28-
if: branch = master AND type != pull_request
2927

3028
# List of jobs to run, tied to specific stages
3129
jobs:
@@ -43,19 +41,6 @@ jobs:
4341
- sleep 60
4442
script:
4543
- mvn verify -DskipUTs -Djasypt.encryptor.password=integrationtest -Dspring.config.location=src/integrationtests/resources/application.properties -B
46-
- stage: deploy
47-
name: deployGitHubPages
48-
script: skip # do not run default test scripts
49-
install: skip # do not run default mvn install
50-
# Generate site documentation using mvn site plugin
51-
before_deploy:
52-
- rm -rf docs
53-
- mvn site -B
54-
deploy:
55-
provider: pages
56-
skip_cleanup: true
57-
github-token: $GITHUB_TOKEN
58-
local_dir: docs/
5944
- stage: report_coverage
6045
name: report_coverage
6146
# Generating test coverage report and publishing to Codacy

README.md

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Eiffel Intelligence is a real time data aggregation and analysis solution
2727
for Eiffel events. While Eiffel represents an event based architecture,
2828
Eiffel Intelligence addresses the need of stakeholders to view the current
2929
state of the system by bridging the divide from immutable events to mutable
30-
state representation. More information [can be found here](https://github.com/eiffel-community/eiffel-intelligence/blob/master/wiki/markdown/index.md).
30+
state representation. More information can be found in the below documentation links.
3131

3232
Eiffel Intelligence consists of two components: the Eiffel Intelligence
3333
back-end (this repository) and the [Eiffel Intelligence front-end](https://github.com/eiffel-community/eiffel-intelligence-frontend),
@@ -45,31 +45,30 @@ Visit [Eiffel Community](https://eiffel-community.github.io) to get started and
4545

4646
## Documentation
4747

48-
1. [**Running Eiffel Intelligence**](wiki/markdown/running-eiffel-intelligence.md)
49-
- [**Prerequisites**](wiki/markdown/running-eiffel-intelligence.md#Prerequisites)
50-
- [**Configuration**](wiki/markdown/configuration.md)
51-
- [**Run in Docker**](wiki/markdown/docker.md)
52-
2. [**Understanding subscriptions**](wiki/markdown/subscriptions.md)
53-
- [**REST POST notification**](wiki/markdown/subscription-with-REST-POST-notification.md)
54-
- [**HTTP POST notification to trigger parameterized Jenkins jobs**](wiki/markdown/triggering-jenkins-jobs.md)
55-
- [**Email notification**](wiki/markdown/subscription-with-email-notification.md)
56-
- [**Step by Step Subscription Notification**](wiki/markdown/step-by-step-subscription-notification.md)
57-
3. [**Understanding rules**](wiki/markdown/rules.md)
58-
- [**What is JMESPath?**](wiki/markdown/rules.md#What-is-JMESPath?)
59-
- [**Rule set up**](wiki/markdown/rules.md#Rule-set-up)
60-
- [**MergeResolverRules**](wiki/markdown/merge-resolver-rules.md)
61-
- [**History Rules**](wiki/markdown/history-rules.md)
62-
- [**Example rules**](wiki/markdown/example-rules.md)
63-
- [**Mapping Rules To Aggregations**](wiki/markdown/mapping-rules-to-aggregations.md)
64-
4. [**Step by Step Aggregation on Eiffel events**](wiki/markdown/step-by-step-aggregation.md)
65-
- [**ArtifactCreatedEvent Aggregation**](wiki/markdown/artifact-created-event-aggregation.md)
66-
- [**TestCaseTriggeredEvent Aggregation**](wiki/markdown/test-case-triggered-event-aggregation.md)
67-
- [**TestCaseStartedEvent Aggregation**](wiki/markdown/test-case-started-event-aggregation.md)
68-
- [**TestCaseFinishedEvent Aggregation**](wiki/markdown/test-case-finished-event-aggregation.md)
69-
- [**ArtifactPublishedEvent Aggregation**](wiki/markdown/artifact-published-event-aggregation.md)
70-
- [**ConfidenceLevelModifiedEvent Aggregation**](wiki/markdown/confidence-level-modified-event-aggregation.md)
71-
5. [**REST API**](wiki/markdown/REST-API.md)
72-
6. [**Compatibility**](wiki/markdown/compatibility.md)
73-
7. [**Known limitations**](wiki/markdown/known-limitations.md)
74-
75-
**Eiffel Intelligence documentation** [**can be found here**](https://eiffel-community.github.io/eiffel-intelligence/)
48+
1. [**What is Eiffel Intelligence?**](wiki/index.md)
49+
2. [**Running Eiffel Intelligence**](wiki/running-eiffel-intelligence.md)
50+
- [**Prerequisites**](wiki/running-eiffel-intelligence.md#Prerequisites)
51+
- [**Configuration**](wiki/configuration.md)
52+
- [**Run in Docker**](wiki/docker.md)
53+
3. [**Understanding subscriptions**](wiki/subscriptions.md)
54+
- [**REST POST notification**](wiki/subscription-with-REST-POST-notification.md)
55+
- [**HTTP POST notification to trigger parameterized Jenkins jobs**](wiki/triggering-jenkins-jobs.md)
56+
- [**Email notification**](wiki/subscription-with-email-notification.md)
57+
- [**Step by Step Subscription Notification**](wiki/step-by-step-subscription-notification.md)
58+
4. [**Understanding rules**](wiki/rules.md)
59+
- [**What is JMESPath?**](wiki/rules.md#What-is-JMESPath?)
60+
- [**Rule set up**](wiki/rules.md#Rule-set-up)
61+
- [**MergeResolverRules**](wiki/merge-resolver-rules.md)
62+
- [**History Rules**](wiki/history-rules.md)
63+
- [**Example rules**](wiki/example-rules.md)
64+
- [**Mapping Rules To Aggregations**](wiki/mapping-rules-to-aggregations.md)
65+
5. [**Step by Step Aggregation on Eiffel events**](wiki/step-by-step-aggregation.md)
66+
- [**ArtifactCreatedEvent Aggregation**](wiki/artifact-created-event-aggregation.md)
67+
- [**TestCaseTriggeredEvent Aggregation**](wiki/test-case-triggered-event-aggregation.md)
68+
- [**TestCaseStartedEvent Aggregation**](wiki/test-case-started-event-aggregation.md)
69+
- [**TestCaseFinishedEvent Aggregation**](wiki/test-case-finished-event-aggregation.md)
70+
- [**ArtifactPublishedEvent Aggregation**](wiki/artifact-published-event-aggregation.md)
71+
- [**ConfidenceLevelModifiedEvent Aggregation**](wiki/confidence-level-modified-event-aggregation.md)
72+
6. [**REST API**](wiki/REST-API.md)
73+
7. [**Compatibility**](wiki/compatibility.md)
74+
8. [**Known limitations**](wiki/known-limitations.md)

pom.xml

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -556,55 +556,6 @@
556556
<failOnMissingWebXml>false</failOnMissingWebXml>
557557
</configuration>
558558
</plugin>
559-
560-
<plugin>
561-
<artifactId>maven-resources-plugin</artifactId>
562-
<version>3.1.0</version>
563-
<executions>
564-
<execution>
565-
<id>copy-resources</id>
566-
<!-- here the phase you need -->
567-
<phase>pre-site</phase>
568-
<goals>
569-
<goal>copy-resources</goal>
570-
</goals>
571-
<configuration>
572-
<!-- site plugin requires all resources to exist
573-
within resources/ directory -->
574-
<!-- but we don't want to break links in documentation -->
575-
<outputDirectory>${basedir}/wiki/resources/images</outputDirectory>
576-
<resources>
577-
<resource>
578-
<directory>${basedir}/wiki/markdown/images</directory>
579-
<includes>
580-
<include>*.png</include>
581-
</includes>
582-
</resource>
583-
</resources>
584-
</configuration>
585-
</execution>
586-
</executions>
587-
</plugin>
588-
589-
<plugin>
590-
<groupId>org.apache.maven.plugins</groupId>
591-
<artifactId>maven-site-plugin</artifactId>
592-
<version>3.7.1</version>
593-
<configuration>
594-
<!-- This is where site.xml is located -->
595-
<siteDirectory>${basedir}/wiki</siteDirectory>
596-
<!-- Github pages only generates documentation from docs
597-
directory -->
598-
<outputDirectory>${basedir}/docs</outputDirectory>
599-
</configuration>
600-
<dependencies>
601-
<dependency>
602-
<groupId>org.apache.maven.doxia</groupId>
603-
<artifactId>doxia-module-markdown</artifactId>
604-
<version>1.8</version>
605-
</dependency>
606-
</dependencies>
607-
</plugin>
608559
<plugin>
609560
<groupId>org.codehaus.mojo</groupId>
610561
<artifactId>cobertura-maven-plugin</artifactId>

wiki/REST-API.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# REST API
2+
3+
Eiffel intelligence provides a REST API for performing CRUD operations on
4+
the following endpoints:
5+
6+
* [Query](query-aggregated-objects.md) - query Eiffel Intelligence for aggregated objects which fulfills a given condition.
7+
* [Failed Notifications](failed-notifications.md) - query for failed notifications which fulfills a given condition.
8+
* [Rules](running-rules-on-objects.md) - test rules work as expected.
9+
* [Authentication](authentication.md)
10+
* [Subscriptions](subscription-API.md) - Manage subscriptions (Create, Read, Update, Delete) via HTTP POST requests.
11+
* [Get templates](templates.md) - Download template files for Eiffel events, subscriptions and rules.
12+
* [Status](status.md) - Check Eiffel Intelligence status via HTTP POST requests.

wiki/markdown/artifact-created-event-aggregation.md renamed to wiki/artifact-created-event-aggregation.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# ArtifactCreatedEvent Aggregation
22

3+
## Eiffel Events Are Sent
34
Suppose, we publish an “EiffelArtifactCreatedEvent” (given below) on the
45
message bus.
56

@@ -57,18 +58,17 @@ message bus.
5758
}
5859
}
5960

60-
6161
When this message is received at EI, processing begins for possible aggregation
6262
and notification. In the next step a rules object for the message is extracted.
6363
The rules object is a set of rules in JSON format that helps extract required
6464
information from an event by using JMESPath API (for more information about the
65-
EI rules follow this [link](https://github.com/eiffel-community/eiffel-intelligence/blob/master/wiki/markdown/rules.md)). From the rules object,
65+
EI rules follow this [link](rules.md)). From the rules object,
6666
“IdentifyRules” is extracted which is a JMESPath identifier of ids and will be
6767
used to search for all existing aggregated objects linked to the event under
6868
process. Here it should be noted that rules object path is configured in the
6969
application.properties file as “rules.path”.
7070

71-
### Rule object extracted from the event under consideration: ###
71+
## Extract Data from Eiffel Event Based on Rules
7272

7373
{
7474
"TemplateName": "ARTIFACT_1",
@@ -77,18 +77,15 @@ application.properties file as “rules.path”.
7777
"IdRule": "meta.id",
7878
"StartEvent": "YES",
7979
"IdentifyRules": "[meta.id]",
80-
"MatchIdRules": {
81-
"_id": "%IdentifyRules_objid%"
82-
},
80+
"MatchIdRules": { "_id": "%IdentifyRulesEventId%" },
8381
"ExtractionRules": "{ id : meta.id, type : meta.type, time : meta.time, identity : data.identity, fileInformation : data.fileInformation, buildCommand : data.buildCommand }",
8482
"DownstreamIdentifyRules": "links | [?type=='COMPOSITION'].target",
85-
"DownstreamMergeRules": "{\"externalComposition\":{\"eventId\":%IdentifyRules%}}",
83+
"DownstreamMergeRules": "{\"externalComposition\":{\"eventId\":%IdentifyRulesEventId%}}",
8684
"DownstreamExtractionRules": "{artifacts: [{id : meta.id}]}",
8785
"HistoryIdentifyRules": "links | [?type=='COMPOSITION'].target",
8886
"HistoryExtractionRules": "{id : meta.id, identity : data.identity, fileInformation : data.fileInformation}",
8987
"HistoryPathRules": "{artifacts: [{id: meta.id}]}",
9088
"ProcessRules": null,
91-
"ProcessFunction": null
9289
}
9390

9491
If no event-linked aggregated object is found, then next step is to check
@@ -108,12 +105,13 @@ aggregated object. It should be noted that this event has no links to any
108105
aggregated object. However, as it is a start event so a new aggregated object
109106
is created by extracting information from this event.
110107

111-
### Information Extraction from an Event: ###
112-
In this step, information from a given event is extracted. This information will then be added into a relevant
113-
aggregated object. This is what the term aggregation comes from. What
114-
information is extracted from a given event is encoded in the extraction rules.
115-
Extraction rules are represented in the rules object with a key named
116-
“ExtractionRules”. For example, for the current event and rule object,
108+
## Data Extraction from Event
109+
110+
In this step, information from a given event is extracted. This information will
111+
then be added into a relevant aggregated object. This is what the term aggregation
112+
comes from. What information is extracted from a given event is encoded in the
113+
extraction rules. Extraction rules are represented in the rules object with a key
114+
named “ExtractionRules”. For example, for the current event and rule object,
117115
following information will be extracted:
118116

119117
{
@@ -143,13 +141,15 @@ next step is to query the database for all the upstream linked objects for this
143141
event. Then each of the linked object is processed individually. For each
144142
object, its rule object field “HistoryExtractionRules” is used to extract
145143
contents from it and merge with the aggregated object. More about the
146-
“HistoryExtractionRules” can be found [here](https://github.com/eiffel-community/eiffel-intelligence/blob/master/wiki/markdown/rules.md). Finally, the modified
144+
“HistoryExtractionRules” can be found [here](rules.md). Finally, the modified
147145
aggregated object is updated in the database.
148146

149147
On the other hand, If the event is linked to aggregated object(s) then each of
150148
the aggregated object is processed together with this event. The contents of
151149
the event to be merged into the aggregated object are extracted and added to
152150
the aggregated object using “MergeResolverRules”. More about
153-
“MergeResolverRules” can be found [here](https://github.com/eiffel-community/eiffel-intelligence/blob/master/wiki/markdown/rules.md). Next, “ProcessRules”
154-
(if exist) are applied on the aggregated object and the resulting modified
151+
“MergeResolverRules” can be found [here](rules.md). Next, “ProcessRules”
152+
(if they exist) are applied on the aggregated object and the resulting modified
155153
aggregated object is updated in the database.
154+
155+
#### [**Next: Aggregating a TestCaseTriggered Event**](test-case-triggered-event-aggregation.md)

wiki/markdown/artifact-published-event-aggregation.md renamed to wiki/artifact-published-event-aggregation.md

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# ArtifactPublishedEvent Aggregation
22

3-
Consider an artifact has been published and EiffelArtifactPublished event is
3+
## Eiffel Events Are Sent
4+
Consider an artifact has been published and ArtifactPublishedEvent is
45
generated as follow:
56

67
{
@@ -43,6 +44,7 @@ generated as follow:
4344
}
4445
}
4546

47+
## Extract Data from Eiffel Event Based on Rules
4648
In the next step rules for this event are extracted:
4749

4850
{
@@ -52,9 +54,7 @@ In the next step rules for this event are extracted:
5254
"IdRule":"meta.id",
5355
"StartEvent":"NO",
5456
"IdentifyRules":"links | [?type=='ARTIFACT'].target",
55-
"MatchIdRules":{
56-
"_id":"%IdentifyRules_objid%"
57-
},
57+
"MatchIdRules":{ "_id":"%IdentifyRulesEventId%" },
5858
"ExtractionRules":"{ eventId : meta.id, time : meta.time, locations : data.locations }",
5959
"MergeResolverRules":"[ {NONEPATH:NONE}, {publications: [{ eventId: meta.id }]} ]",
6060
"HistoryIdentifyRules":"",
@@ -63,7 +63,8 @@ In the next step rules for this event are extracted:
6363
"ProcessFunction":null
6464
}
6565

66-
Following aggregated object is extracted by using the identify rules:
66+
## Current Aggregation
67+
Following aggregated object is extracted by using the IdentifyRules:
6768

6869
{
6970
"_id": "6acc3c87-75e0-4b6d-88f5-b1a5d4e62b43",
@@ -213,6 +214,7 @@ Following aggregated object is extracted by using the identify rules:
213214
]
214215
}
215216

217+
## Data Extraction from Event
216218
Process begins to extract content from the event as specified in the extraction
217219
rule and puts it in the aggregated object.
218220

@@ -233,7 +235,7 @@ And Extracted contents are:
233235
]
234236
}
235237

236-
Next the merge rules template is extracted as:
238+
Next the merge rules is extracted as:
237239

238240
[{NONEPATH:NONE}, {publications: [{ eventId: meta.id }]}]
239241

@@ -262,7 +264,8 @@ Contents are prepared to merge in the object:
262264
]
263265
}
264266

265-
Finally, after merging the content, the merged object looks like this:
267+
## Updated Aggregation
268+
Finally, after merging the content, the aggregated object looks like this:
266269

267270
{
268271
"fileInformation":[
@@ -423,9 +426,8 @@ Finally, after merging the content, the merged object looks like this:
423426
]
424427
}
425428

429+
Next step is to apply the ProcessRules on the aggregated object, but in
430+
this case no ProcessRules are defined for this Eiffel event, so this step is skipped.
426431

427-
Next step is to extract the process rules apply on the aggregated object:
428-
429-
In this case, since there are no process rules provided, this step is skipped.
430-
432+
#### [**Next: Aggregating an ConfidenceLevelModified Event**](confidence-level-modified-event-aggregation.md)
431433

wiki/markdown/authentication.md renamed to wiki/authentication.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ the subscriptions.
1919
When Eiffel Intelligence is configured without LDAP the subscriptions are
2020
available to anyone to view, edit and delete.
2121

22-
## Check if security is enabled
22+
## Check if Security is Enabled
2323

2424
Returns the json variable '_security_' that is set to either true or false
2525

@@ -33,7 +33,7 @@ Example of response body
3333

3434
{"security":true}
3535

36-
## Login point that returns the name of current user
36+
## Login Endpoint Returns the Name of Current User
3737

3838
Upon the first time valid credentials are used the response will contain an
3939
'X-Auth-Token' header that must be saved and attached to any following calls to
@@ -49,7 +49,6 @@ Curl command
4949

5050
Example of full response
5151

52-
5352
< HTTP/1.1 200
5453
< X-Content-Type-Options: nosniff
5554
< X-XSS-Protection: 1; mode=block
@@ -66,8 +65,7 @@ Example of full response
6665
* Connection #0 to host localhost left intact
6766
{"user":"myuser"}
6867

69-
70-
## Delete session of current user
68+
## Delete Session of Current User
7169

7270
Removes the current session bound to the client. If 'X-Auth-Token' is used to
7371
authenticate then the same token needs to be attached when calling the logout
File renamed without changes.

0 commit comments

Comments
 (0)