1head:
2    prefix: detail
3    label: I18N_OPENXPKI_UI_WORKFLOW_TYPE_REPORT_DETAIL_LABEL
4    description: I18N_OPENXPKI_UI_WORKFLOW_TYPE_REPORT_DETAIL_DESC
5    persister: Volatile
6
7state:
8    INITIAL:
9        action:
10          - initialize > GENERATE
11
12    GENERATE:
13        autorun: 1
14        action:
15          - generate_to_context global_uuid store_in_datapool create_download_link > SUCCESS ? use_datapool
16          - generate_to_disk create_download_link > SUCCESS ? !use_datapool
17
18    SUCCESS:
19        label: I18N_OPENXPKI_UI_WORKFLOW_STATE_REPORT_DETAIL_SUCCESS_LABEL
20        description: I18N_OPENXPKI_UI_WORKFLOW_STATE_REPORT_DETAIL_SUCCESS_DESC
21        output:
22          - valid_at
23          - total_count
24          - download
25
26action:
27    initialize:
28        class: OpenXPKI::Server::Workflow::Activity::Noop
29        label: I18N_OPENXPKI_UI_WORKFLOW_ACTION_REPORT_DETAIL_INITIALIZE_LABEL
30        input:
31          - valid_at
32          - target_filename
33          - report_config
34
35    generate_to_context:
36        class: OpenXPKI::Server::Workflow::Activity::Reports::Detail
37        param:
38            target_key: _report_data
39            _map_valid_at: $valid_at
40            _map_report_config: $report_config
41
42    generate_to_disk:
43        class: OpenXPKI::Server::Workflow::Activity::Reports::Detail
44        param:
45            target_umask: 0644
46            _map_valid_at: $valid_at
47            _map_target_filename: $target_filename
48            target_dir: /tmp
49            _map_report_config: $report_config
50
51    store_in_datapool:
52        class: OpenXPKI::Server::Workflow::Activity::Tools::Datapool::SetEntry
53        param:
54            namespace: workflow.download
55            _map_key: $uuid
56            _map_value: $_report_data
57            encrypt: 0
58            force: 1
59            expiration_date: "+000001"
60
61    create_download_link:
62        class: OpenXPKI::Server::Workflow::Activity::Tools::SetContextHash
63        param:
64          target_key: download
65          _map_filename: "Certificate Detail Report [% USE date(format='%Y-%m-%dT%H:%M:%S') %][% date.format( context.valid_at ) %].csv"
66          _map_source: >
67              [% IF context.report_filename %]file:[% context.report_filename %]
68              [% ELSE %]datapool:[% context.uuid %][% END %]
69
70
71condition:
72    use_datapool:
73        class: Workflow::Condition::Evaluate
74        param:
75            test: not $context->{target_filename}
76
77field:
78    valid_at:
79        name: valid_at
80        label: I18N_OPENXPKI_UI_WORKFLOW_REPORT_FIELD_VALID_AT_LABEL
81        description: I18N_OPENXPKI_UI_WORKFLOW_REPORT_FIELD_VALID_AT_DESCRIPTION
82        required: 0
83        type: datetime
84        format: timestamp
85        default: now
86
87    total_count:
88        name: total_count
89        label: I18N_OPENXPKI_UI_WORKFLOW_REPORT_FIELD_TOTAL_COUNT
90
91    target_filename:
92        name: target_filename
93        type: server
94        required: 0
95
96    report_config:
97        name: report_config
98        label: I18N_OPENXPKI_UI_REPORT_CONFIG_LABEL
99        type: select
100        option:
101           item@: report
102           mode: map
103        required: 1
104
105    download:
106        label: I18N_OPENXPKI_UI_REPORT_DOWNLOAD_LABEL
107        name: download
108        format: download
109        param:
110            mime: application/csv; charset=utf-8
111            auto: 1
112
113acl:
114    CA Operator:
115        creator: any
116
117    RA Operator:
118        creator: any
119        fail: 1
120        resume: 1
121        wakeup: 1
122        context: 1
123    System:
124        creator: any
125
126