Changes between Initial Version and Version 37 of HeronAdminDev


Ignore:
Timestamp:
05/15/15 10:02:54 (2 years ago)
Author:
dconnolly
Comment:

refactor: dev env set up thru doctest goes here; integration test etc. goes in HeronAdmin?

Legend:

Unmodified
Added
Removed
Modified
  • HeronAdminDev

    v1 v37  
     1[[PageOutline]]
     2
     3nearby: DevTools
     4
     5While we are [[Using I2B2]] for the bulk of the functionality of [[HERON]],
     6[source:raven-j heron-admin] provides a regulatory enforcement web layer for [[HERON#governance]]. [[HERONTrainingMaterials]] provides end-user documentation. (''Well, it used to; see #1268)
     7
     8''in progress; see ticket:600#comment:11 for context''
     9
     10''Automated tests to match [[HERONTrainingMaterials]] sure would be nice.''
     11
     12== Design ==
     13
     14Developer documentation, including doctests, is generated from the code:
     15
     16  * [http://informatics.kumc.edu/devdoc/heron-admin/ heron_wsgi: Policy Enforcement Web Interface for HERON]
     17
     18=== Access Policy and Authority Flow ===
     19
     20Anyone who can login (via CAS) can review usage stats or sign a system access agreement (which is recorded in [[REDCap]]).
     21
     22Investigators, i.e. faculty and executives, can submit investigator requests (sponsorship, data use) to the DROC.
     23
     24{{{
     25#!graphviz
     26
     27strict digraph "policy" {
     28    graph [
     29        rankdir = "TB",
     30    ]
     31
     32Config -> REDCap_rd
     33Config -> REDCapAPI
     34Config -> LDAP_rd
     35Config -> jboss_deploy
     36jboss_deploy -> i2b2pm_rd
     37
     38login [label="CAS login"]
     39
     40login -> Faculty
     41login -> Executive
     42login -> Sign
     43Sign  [color=green, label="Sign SAA"]
     44REDCapAPI -> Sign
     45
     46
     47Config -> Executive
     48REDCap_rd -> DROC
     49login -> DROC
     50
     51DROC -> Audit
     52i2b2pm_rd -> Audit
     53
     54Audit [color=green]
     55
     56LDAP_rd -> Faculty
     57
     58Executive -> inv
     59Faculty -> inv
     60
     61inv  [shape=invhouse, label="any"]
     62
     63inv -> invreq
     64inv -> build_team
     65
     66LDAP_rd -> build_team
     67build_team [color=green]
     68
     69invreq [color=green, label="Investigator Request"]
     70
     71REDCapAPI -> invreq
     72
     73login -> Usage
     74
     75i2b2pm_rd -> Usage
     76Usage [ color=green]
     77}
     78
     79}}}
     80
     81Investigators and sponsored users, provided their human subjects training is current and they have signed the system access agreement, can follow the "start i2b2 query tool" link; if they have an acknowledgement on file, they can use i2b2; otherwise, they can acknowledge the disclaimer.
     82
     83{{{
     84#!graphviz
     85
     86strict digraph "policy" {
     87    graph [
     88        rankdir = "TB",
     89    ]
     90
     91Config -> REDCap_rd
     92Config -> REDCapAPI
     93Config -> LDAP_rd
     94Config -> jboss_deploy
     95jboss_deploy -> i2b2pm_wr
     96Config -> Chalk
     97
     98login [label="CAS login"]
     99
     100
     101login -> Faculty
     102login -> Executive
     103login -> Sponsored
     104login -> Training
     105login -> SAA
     106login -> Acknowledgement
     107
     108
     109
     110REDCap_rd -> SAA
     111REDCap_rd -> Sponsored
     112REDCap_rd -> Acknowledgement
     113
     114Config -> Executive
     115
     116Chalk -> Training
     117
     118LDAP_rd -> Faculty
     119
     120Faculty -> qualified
     121Executive -> qualified
     122Sponsored -> qualified
     123
     124qualified  [shape=invhouse, label="any"]
     125
     126qualified -> start
     127Training -> start
     128SAA -> start
     129
     130start [shape=invtriangle, label="all"]
     131
     132REDCap_rd -> Disclaimer
     133Disclaimer -> Ack
     134
     135start -> Ack
     136REDCapAPI -> Ack
     137Ack  [color=green]
     138
     139start -> access
     140Acknowledgement -> access
     141access [shape=invtriangle, label="all"]
     142
     143access -> i2b2_authz
     144
     145i2b2_authz [color=green]
     146
     147i2b2pm_wr -> i2b2_authz
     148
     149}
     150
     151}}}
     152
     153
     154=== Module Dependencies ===
     155
     156{{{
     157#!graphviz
     158
     159
     160# This file was generated by sfood-graph.
     161# and then the boring stuff was edited out
     162
     163strict digraph "dependencies" {
     164    graph [
     165        rankdir = "LR",
     166        overlap = "scale",
     167        size = "8,10",
     168        ratio = "fill",
     169        fontsize = "16",
     170        fontname = "Helvetica",
     171        clusterrank = "local"
     172        ]
     173
     174       node [
     175           fontsize=7
     176           shape=ellipse
     177//           style=filled
     178//           shape=box
     179       ];
     180
     181//     node [
     182//         fontsize=7
     183//       style=ellipse
     184//     ];
     185
     186"heron_wsgi/admin_lib/checklist.py"  [style=filled];
     187"heron_wsgi/admin_lib/checklist.py" -> "heron_wsgi/admin_lib/heron_policy.py";
     188"heron_wsgi/admin_lib/checklist.py" -> "heron_wsgi/admin_lib/medcenter.py";
     189"heron_wsgi/admin_lib/disclaimer.py"  [style=filled];
     190"heron_wsgi/admin_lib/disclaimer.py" -> "heron_wsgi/admin_lib/redcap_connect.py";
     191"heron_wsgi/admin_lib/disclaimer.py" -> "heron_wsgi/admin_lib/redcapdb.py";
     192"heron_wsgi/admin_lib/heron_policy.py"  [style=filled];
     193"heron_wsgi/admin_lib/heron_policy.py" -> "heron_wsgi/admin_lib/disclaimer.py";
     194"heron_wsgi/admin_lib/heron_policy.py" -> "heron_wsgi/admin_lib/i2b2pm.py";
     195"heron_wsgi/admin_lib/heron_policy.py" -> "heron_wsgi/admin_lib/medcenter.py";
     196"heron_wsgi/admin_lib/heron_policy.py" -> "heron_wsgi/admin_lib/noticelog.py";
     197"heron_wsgi/admin_lib/heron_policy.py" -> "heron_wsgi/admin_lib/redcap_connect.py";
     198"heron_wsgi/admin_lib/heron_policy.py" -> "heron_wsgi/admin_lib/redcapdb.py";
     199"heron_wsgi/admin_lib/i2b2pm.py"  [style=filled];
     200"heron_wsgi/admin_lib/medcenter.py"  [style=filled];
     201"heron_wsgi/admin_lib/noticelog.py"  [style=filled];
     202"heron_wsgi/admin_lib/noticelog.py" -> "heron_wsgi/admin_lib/redcapdb.py";
     203"heron_wsgi/admin_lib/redcap_connect.py"  [style=filled];
     204"heron_wsgi/admin_lib/redcapdb.py"  [style=filled];
     205"heron_wsgi/cas_auth.py"  [style=filled];
     206"heron_wsgi/drocnotice.py"  [style=filled];
     207"heron_wsgi/drocnotice.py" -> "heron_wsgi/admin_lib/heron_policy.py";
     208"heron_wsgi/drocnotice.py" -> "heron_wsgi/admin_lib/noticelog.py";
     209"heron_wsgi/drocnotice.py" -> "heron_wsgi/admin_lib/redcapdb.py";
     210"heron_wsgi/drocnotice.py" -> "heron_wsgi/genshi_render.py";
     211"heron_wsgi/genshi_render.py"  [style=filled];
     212"heron_wsgi/heron_srv.py"  [style=filled];
     213"heron_wsgi/heron_srv.py" -> "heron_wsgi/admin_lib/checklist.py";
     214"heron_wsgi/heron_srv.py" -> "heron_wsgi/admin_lib/disclaimer.py";
     215"heron_wsgi/heron_srv.py" -> "heron_wsgi/admin_lib/heron_policy.py";
     216"heron_wsgi/heron_srv.py" -> "heron_wsgi/admin_lib/medcenter.py";
     217"heron_wsgi/heron_srv.py" -> "heron_wsgi/admin_lib/redcap_connect.py";
     218"heron_wsgi/heron_srv.py" -> "heron_wsgi/admin_lib/redcapdb.py";
     219"heron_wsgi/heron_srv.py" -> "heron_wsgi/cas_auth.py";
     220"heron_wsgi/heron_srv.py" -> "heron_wsgi/drocnotice.py";
     221"heron_wsgi/heron_srv.py" -> "heron_wsgi/genshi_render.py";
     222"heron_wsgi/heron_srv.py" -> "heron_wsgi/stats.py";
     223"heron_wsgi/stats.py"  [style=filled];
     224"heron_wsgi/stats.py" -> "heron_wsgi/admin_lib/heron_policy.py";
     225
     226
     227}
     228
     229
     230}}}
     231
     232== Development process  #dev-process
     233
     234[http://genshi.edgewall.org/wiki/Documentation/xml-templates.html genshi template language] @@...
     235
     236see source:raven-j/heron_wsgi/Makefile and
     237source:raven-j/README.rst
     238
     239
     240=== Clone Repository
     241
     242UsingVersionControl: Clone the [https://bmi-work.kumc.edu/changes/raven-j raven-j] (a.k.a Heron Admin) repository from using your preferred method (e.g. TortoiseHg, Hg command-line, etc.).
     243
     244=== 2. Setup Virtualenv ===
     245
     246dependencies... mysql, cx_Oracle, etc. ... PythonVirtualEnvironment, PythonOnWindows
     247
     2482.1. Create an associated Python virtualenv (optimally separated from the code).
     249{{{
     250$ virtualenv <venv-path>
     251}}}
     2522.2. Activate your virtualenv.
     253{{{
     254$ source <venv-path>/bin/activate
     255}}}
     2562.3. Use PIP to install necessary Python
     257{{{
     258$ cd <raven-j-path>
     259$ pip install -r requirements.txt
     260}}}
     261... and (introduced in #653 `ldap_cert_653`; TODO: merge requirements files) ...
     262{{{
     263$ cd <raven-j-path>/traincheck/
     264$ pip install -r requirements.txt
     265}}}
     266
     267''see also PythonVirtualEnvironment, PythonOnWindows, WritingQualityCode#pypy)''
     268
     269Unit test can be run with:
     270{{{
     271$ python -m doctest <file>
     272}}}
     273
     274== CLI Integration Testing ==
     275
     276see GroupOnly/HeronAdmin
     277
     278
     279== History ==
     280
     281
     282oops... heron-admin is now ambiguous: support email address and software package.
     283
     284
     285  * milestone:RavenBeta, milestone:heron-system-access for development history