Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
devel:documentation:modules_reports [2019/03/01 14:35]
kotisovam [Admin guide (to be completed)] no need for this section here
devel:documentation:modules_reports [2020/03/11 09:59]
doischert
Line 5: Line 5:
 ====== Modules - Implemented reports [reports] ====== ====== Modules - Implemented reports [reports] ======
  
-[reportsgives the basic [rptmodule true power by enabling real reports based on real use cases. The module evolves often since new reports are added on a regular basis.  +The main purpose of reports is to create a snapshot of current data in IdM which can then be downloaded as a CSV or XLSX file. This is often useful for audits or other cases when an overview of a large amount of data in IdM is needed. The reports module gives the basic [[devel:documentation:modules_rpt|rpt module]] true power because it contains implemented reports for many use-cases. The module evolves often since new reports are added on a regular basis. 
  
 {{ :devel:documentation:rpt.png | [reports] and [rpt] modules}} {{ :devel:documentation:rpt.png | [reports] and [rpt] modules}}
  
-The module contains a bulk of reports: +The module is fully dependent on [[devel:documentation:modules_rpt|reports [rpt]]] module and only contains implemented reportsnot the logic of creating reports in general.
-  * Identities and their roles - supported formatsCSV, XLSX, JSON +
-  * Roles and their identities - supported formats: CSVXLSX, JSON+
  
-The module is fully dependent on [[devel:documentation:modules_rpt|reports [rpt]]] module.+====== Overview of implemented reports ======
  
-====== Read more ======+==== Identities and their roles ====
  
-===== Admin tutorials ===== +This report . Learn more
-  * [[tutorial:adm:modules_reports| Reports module [rpt] - How to prepare a report]]+
  
 +==== Roles and their identities ====
  
-===== Devel guide ===== +This report Learn more
-  * [[.modules_rpt:dev:report_manager]] +
-  * [[.modules_rpt:dev:attachment_manager]]+
  
 +==== Identities, their main contract and their roles ====
 +
 +This report . Learn more
 +
 +===== Developing and releasing =====
 +How to develop a new feature in reports:
 +
 +  - Create a specification page in private section and consult it with module owner and other colleagues (on Slack). Specification page should contain:
 +   - Usecases - which data should the report contain, what problem does it solve, which client needs it?
 +   - Functional specification - how should it work, edge cases
 +  - Ask a module owner, if this feature can be a part of the module and in which version it will be published
 +  - Create ticket in product Redmine with final requirements and with correct target version
 +  - Implement the feature in a separate GIT branch
 +  - Create merge request to develop
 +  - Get someone from the product team, or the module owner to review your changes
 +  - After successful review, ask module owner to merge you code
 +
 +Rules for code review:
 +  * There are [[tutorial:dev:create_report|tests]] (test coverage of 80% for reports is hard to achieve but do your best)
 +  * All features are documented - the report is mentioned above and has a dedicated page describing its use and configuration
 +  * Changelog is updated
 +
 +<note important>If your code does not meet the requirements mentioned above, it may be rejected.</note>
 +
 +  * When developing, use our standard gitflow:
 +    * Branch per feature. Branch naming as usual.
 +    * Develop on top of the ''develop''.
 +    * Master branch contains tagged releases.
 +    * The **only** way for code to get into master is by pull request ''develop -> master''.
 +
 +  * Release process
 +    - After merging all features wanted for the release, one (selected) developer builds the develop. If it builds fine and tests are also OK, the developer edits module version in the ''pom.xml'' file and sets it to ''X.Y.Z''.
 +    - Developer creates pull request on GitHub to merge ''develop -> master''.
 +    - Repo admin (or any other authorized user) reviews the pull request, can request changes if necessary. Unresolved TODOs, missing comments, bad codestyle or documentation, suspected bugs, etc. - all those things can be grounds for change request.
 +    - If the pull request is OK, repo admin merges it.
 +    - Repo admin creates a new release in GitHub interface, version is set to ''X.Y.Z'' to correspond with version set in project sources.
 +    - After release, repo admin makes changes on the ''develop'' branch: upps module version to ''X(+1).Y(+1).Z(+1)-SNAPSHOT'' in the ''pom.xml'' and ''package.json''. What the next version of the module will be is up to discussion preceding the release.
 +
 +====== Read more ======
 +
 +===== Admin tutorials =====
 +  * [[tutorial:adm:modules_reports| Reports module [rpt] - How to create a report]]
 +===== Devel guide =====
 +  * [[devel:documentation:modules_rpt:dev:report_manager|How reports work]]
 +  * [[devel:documentation:modules_rpt:dev:attachment_manager|Attachment manager]]
 ===== Devel tutorials ===== ===== Devel tutorials =====
   * [[ tutorial:dev:create_report | Create a report ]]   * [[ tutorial:dev:create_report | Create a report ]]
  • by sourek