@appland/appmap 3.100.1 → 3.102.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/built/cmds/compare/loadFindings.js +1 -23
- package/built/cmds/compare/loadFindings.js.map +1 -1
- package/built/cmds/compare-report/ChangeReport.js +12 -19
- package/built/cmds/compare-report/ChangeReport.js.map +1 -1
- package/built/cmds/compare-report/MarkdownReport.js +11 -2
- package/built/cmds/compare-report/MarkdownReport.js.map +1 -1
- package/built/cmds/compare-report/Preprocessor.js +25 -5
- package/built/cmds/compare-report/Preprocessor.js.map +1 -1
- package/built/cmds/compare-report/ReportSection.js +94 -37
- package/built/cmds/compare-report/ReportSection.js.map +1 -1
- package/built/cmds/compare-report/helpers.js +106 -0
- package/built/cmds/compare-report/helpers.js.map +1 -0
- package/built/cmds/compare-report/normalizeAppMapId.js +15 -0
- package/built/cmds/compare-report/normalizeAppMapId.js.map +1 -0
- package/built/cmds/inventory/inventory.js +1 -15
- package/built/cmds/inventory/inventory.js.map +1 -1
- package/built/cmds/inventory-report/MarkdownReport.js +16 -56
- package/built/cmds/inventory-report/MarkdownReport.js.map +1 -1
- package/built/cmds/inventory-report/inventoryReport.js +10 -3
- package/built/cmds/inventory-report/inventoryReport.js.map +1 -1
- package/built/html/appmap.js +94 -94
- package/built/html/appmap.js.map +4 -4
- package/built/html/sequenceDiagram.js +94 -94
- package/built/html/sequenceDiagram.js.map +4 -4
- package/built/lib/loadAppMapConfig.js.map +1 -1
- package/package.json +1 -1
- package/resources/change-report/changed-appmaps/details.hbs +1 -1
- package/resources/change-report/changed-appmaps/heading.hbs +1 -1
- package/resources/change-report/failed-tests/details.hbs +1 -1
- package/resources/change-report/findings/details.hbs +15 -19
- package/resources/change-report/findings/heading.hbs +7 -9
- package/resources/change-report/new-appmaps/details.hbs +1 -1
- package/resources/change-report/new-appmaps/heading.hbs +2 -2
- package/resources/change-report/openapi-diff/details.hbs +1 -1
- package/resources/change-report/openapi-diff/heading.hbs +1 -1
- package/resources/change-report/removed-appmaps/details.hbs +1 -1
- package/resources/change-report/removed-appmaps/heading.hbs +3 -1
- package/resources/inventory-report/welcome/welcome.hbs +95 -60
- package/resources/inventory-report/default/inventory.hbs +0 -89
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadAppMapConfig.js","sourceRoot":"","sources":["../../src/lib/loadAppMapConfig.ts"],"names":[],"mappings":";;AAAA,0CAAuC;AACvC,qCAA+B;
|
|
1
|
+
{"version":3,"file":"loadAppMapConfig.js","sourceRoot":"","sources":["../../src/lib/loadAppMapConfig.ts"],"names":[],"mappings":";;AAAA,0CAAuC;AACvC,qCAA+B;AA2ChB,KAAK,UAAU,gBAAgB,CAC5C,QAAQ,GAAG,YAAY;;IAEvB,IAAI,gBAAoC,CAAC;IACzC,IAAI;QACF,gBAAgB,GAAG,MAAM,IAAA,mBAAQ,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KACtD;IAAC,OAAO,CAAC,EAAE;QACV,OAAO;KACR;IAED,MAAM,eAAe,GAAG,IAAA,cAAI,EAAC,gBAAgB,CAAQ,CAAC;IACtD,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,OAAO,eAAe,KAAK,QAAQ,CAAC;QAAE,OAAO;IAEvE,MAAM,YAAY,GAAG,eAA+B,CAAC;IACrD,YAAY,CAAC,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,0CAAE,MAAM,CAAC,CAAC;IAE5C,OAAO,YAAY,CAAC;AACtB,CAAC;AAjBD,mCAiBC;AAED,SAAS,YAAY,CAAC,GAAoC;IACxD,IAAI,CAAC,GAAG;QAAE,OAAO;IAEjB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAClC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAClF,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,GAAG,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;KAC3B;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -19,7 +19,7 @@ Review changes
|
|
|
19
19
|
{{/each}}
|
|
20
20
|
|
|
21
21
|
{{#if pruned}}
|
|
22
|
-
Because there are
|
|
22
|
+
Because there are many changed AppMaps, some of them are not listed in this report.
|
|
23
23
|
{{/if}}
|
|
24
24
|
</details>
|
|
25
25
|
{{/if}}
|
|
@@ -52,6 +52,6 @@ The error occurred at [{{failureLocation}}]({{ source_url failureLocation }}):
|
|
|
52
52
|
|
|
53
53
|
{{/each}}
|
|
54
54
|
{{#if pruned}}
|
|
55
|
-
Because there are
|
|
55
|
+
Because there are many failed tests, some of them are not listed in this report.
|
|
56
56
|
{{/if}}
|
|
57
57
|
{{/if}}
|
|
@@ -51,30 +51,26 @@
|
|
|
51
51
|
|
|
52
52
|
</details>
|
|
53
53
|
{{/inline}}
|
|
54
|
-
{{#
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
{{#if (length findingDiff.newFindings findingDiff.resolvedFindings)}}
|
|
55
|
+
<h2 id="{{ metadata.anchor }}">{{ metadata.title }}</h2>
|
|
56
|
+
{{#if (length findingDiff.newFindings) }}
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
### :beetle: New findings ({{ length this}})
|
|
58
|
+
### {{metadata.emoji}} New problems detected ({{ length findingDiff.newFindings }})
|
|
60
59
|
|
|
61
|
-
|
|
60
|
+
{{#each findingDiff.newFindings}}
|
|
62
61
|
{{> finding}}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
{{/each}}
|
|
63
|
+
{{/if}}
|
|
64
|
+
{{#if (length findingDiff.resolvedFindings) }}
|
|
66
65
|
|
|
67
|
-
|
|
68
|
-
### :tada: Resolved findings ({{ length this}})
|
|
66
|
+
### :tada: Problems resolved ({{ length findingDiff.resolvedFindings}})
|
|
69
67
|
|
|
70
|
-
|
|
68
|
+
{{#each findingDiff.resolvedFindings}}
|
|
71
69
|
{{> finding}}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
70
|
+
{{/each}}
|
|
71
|
+
{{/if}}
|
|
72
|
+
{{#if findingDiff.pruned}}
|
|
75
73
|
|
|
76
|
-
|
|
77
|
-
Because there are so many new and resolved findings, some of them are not listed in this report.
|
|
78
|
-
{{/if}}
|
|
74
|
+
Because there are many new and resolved {{ metadata.name }}, some of them are not listed in this report.
|
|
79
75
|
{{/if}}
|
|
80
|
-
{{/
|
|
76
|
+
{{/if}}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
| [
|
|
2
|
-
{{~#
|
|
3
|
-
|
|
4
|
-
:white_check_mark: None
|
|
1
|
+
| [{{ metadata.title }}](#{{ metadata.anchor }}) |
|
|
2
|
+
{{~#unless (length findingDiff.newFindings findingDiff.resolvedFindings) }}
|
|
3
|
+
:white_check_mark: None detected
|
|
5
4
|
{{~/unless}}
|
|
6
|
-
{{~#if (length newFindings) }}
|
|
7
|
-
|
|
5
|
+
{{~#if (length findingDiff.newFindings) }}
|
|
6
|
+
{{ metadata.emoji }} {{length findingDiff.newFindings}} new
|
|
8
7
|
{{~/if}}
|
|
9
|
-
{{~#if (length resolvedFindings) }}
|
|
10
|
-
:tada: {{length resolvedFindings}} resolved
|
|
8
|
+
{{~#if (length findingDiff.resolvedFindings) }}
|
|
9
|
+
:tada: {{length findingDiff.resolvedFindings}} resolved
|
|
11
10
|
{{~/if}}
|
|
12
|
-
{{~/with}}
|
|
13
11
|
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
| [New AppMaps](#new-appmaps) |
|
|
2
|
-
{{~#
|
|
3
|
-
|
|
2
|
+
{{~#with (group_appmaps_by_recorder_name newAppMaps) }} :star: {{#each @this}}{{#unless @first }}, {{/unless}}{{ count }} new {{ recorderName }}{{#if isTest}} {{ pluralize count 'test' }}{{/if}}{{/each}} {{else}} :zero: No new AppMaps {{/with~}}
|
|
3
|
+
|
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
{{/if}}
|
|
38
38
|
|
|
39
39
|
{{#if pruned}}
|
|
40
|
-
Because there are
|
|
40
|
+
Because there are many OpenAPI changes, some of them are not listed in this report,
|
|
41
41
|
and the full diff has not been printed either.
|
|
42
42
|
{{else}}
|
|
43
43
|
<details>
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
{{~#if differenceCount }}
|
|
4
4
|
{{~#if breakingDifferenceCount }} 🚧 {{breakingDifferenceCount}} breaking{{~/if}}
|
|
5
5
|
{{~#if nonBreakingDifferenceCount }}{{#if breakingDifferenceCount }},{{~/if}} :wrench: {{nonBreakingDifferenceCount}} non-breaking{{/if~}}
|
|
6
|
-
{{~else}} :
|
|
6
|
+
{{~else}} :zero: No API changes
|
|
7
7
|
{{~/if}} |
|
|
8
8
|
{{~/with}}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
{{#if removedAppMaps.length ~}}
|
|
2
|
-
| [Removed AppMaps](#removed-appmaps) |
|
|
2
|
+
| [Removed AppMaps](#removed-appmaps) |
|
|
3
|
+
{{~#with (group_appmaps_by_recorder_name removedAppMaps) }} :heavy_multiplication_x: {{#each @this}}{{#unless @first }}, {{/unless}}{{ count }} removed {{ recorderName }}{{#if isTest}} {{ pluralize count 'test' }}{{/if}}{{/each}} {{/with~}}
|
|
4
|
+
|
|
|
3
5
|
{{~/if}}
|
|
@@ -1,59 +1,82 @@
|
|
|
1
|
-
##
|
|
1
|
+
## AppMap configuration report
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
test cases. Here's how the AppMaps in this project were created:
|
|
6
|
-
|
|
7
|
-
| Recorder | Number of AppMaps |
|
|
8
|
-
| --- | --- |
|
|
9
|
-
{{#each appmapCountByRecorderName}}
|
|
10
|
-
| {{@key}} | {{@this}} |
|
|
11
|
-
{{/each}}
|
|
3
|
+
Success! Your project has been successfully configured to record AppMaps when
|
|
4
|
+
you run your tests.
|
|
12
5
|
|
|
13
|
-
Continue
|
|
6
|
+
> **[Continue with AppMap Setup >>](https://getappmap.com/github/configuration_report)**
|
|
14
7
|
|
|
15
|
-
|
|
16
|
-
- [REST API analysis](#rest-api-analysis)
|
|
17
|
-
- [SQL profile](#sql-profile)
|
|
8
|
+
<hr/>
|
|
18
9
|
|
|
19
|
-
|
|
10
|
+
<details>
|
|
11
|
+
<summary>
|
|
12
|
+
View details
|
|
13
|
+
</summary>
|
|
20
14
|
|
|
21
|
-
|
|
22
|
-
performance problems, and code anti-patterns. On each pull request, you'll get a report of
|
|
23
|
-
the new and resolved issues for the repo.
|
|
15
|
+
<h3><a id="data-sources">AppMap data sources</a></h3>
|
|
24
16
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
summary:
|
|
17
|
+
In GitHub Actions and other CI systems, AppMaps are created by recording
|
|
18
|
+
test cases. Here's how the AppMaps in this project were created:
|
|
28
19
|
|
|
29
|
-
|
|
20
|
+
{{#if (eq (length appmapCountByRecorderName) 1) }}
|
|
21
|
+
| Number of AppMaps | Type of recording |
|
|
30
22
|
| --- | --- |
|
|
31
|
-
|
|
32
|
-
| {{@
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
23
|
+
{{#each appmapCountByRecorderName}}
|
|
24
|
+
| {{@this}} | {{@key}} |
|
|
25
|
+
{{/each}}
|
|
26
|
+
{{else}}
|
|
27
|
+
```mermaid
|
|
28
|
+
pie showData
|
|
29
|
+
title Sources of AppMap data in this project
|
|
30
|
+
{{#each appmapCountByRecorderName}}
|
|
31
|
+
"{{@key}}" : {{@this}}
|
|
32
|
+
{{/each}}
|
|
33
|
+
```
|
|
37
34
|
{{/if}}
|
|
38
35
|
|
|
39
|
-
|
|
36
|
+
<h3><a id="code-profile">Code profile</a></h3>
|
|
40
37
|
|
|
41
|
-
|
|
38
|
+
Your _appmap.yml_ configuration file specifies all the code that you want AppMap to instrument and record.
|
|
39
|
+
By default, sub-modules of any requested code are recorded as well. In this project, the packages specified
|
|
40
|
+
in _appmap.yml_ are:
|
|
42
41
|
|
|
43
|
-
|
|
42
|
+
```yaml
|
|
43
|
+
{{{ format_as_yaml appmapConfig.packages }}}```
|
|
44
44
|
|
|
45
|
-
{{
|
|
45
|
+
By applying this configuration to your {{ appmapConfig.language }} project, AppMap has recorded the
|
|
46
|
+
following packages and modules:
|
|
46
47
|
|
|
47
|
-
|
|
48
|
-
include HTTP server requests:
|
|
48
|
+
{{#each (packages_matching_configuration packages appmapConfig.packages) }}`{{ @this }}` {{/each}}
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
| --- | --- |
|
|
52
|
-
| None | {{ coalesce appmapCountByHTTPServerRequestCount.[0] 'No AppMaps' }} |
|
|
53
|
-
| Between 1 and 5 | {{ sum_values_by_key_range appmapCountByHTTPServerRequestCount 1 5 }} |
|
|
54
|
-
| More than 5 | {{ sum_values_by_key_range appmapCountByHTTPServerRequestCount 5 }} |
|
|
50
|
+
<h3><a id="ws-api-profile">Web service API profile</a></h3>
|
|
55
51
|
|
|
56
|
-
|
|
52
|
+
When you record AppMaps that include HTTP server requests, AppMap automatically generates OpenAPI definitions
|
|
53
|
+
based on the observed data.
|
|
54
|
+
|
|
55
|
+
{{#if (length appmapCountByHTTPServerRequestCount) }}
|
|
56
|
+
|
|
57
|
+
**{{ format_as_percentage
|
|
58
|
+
(divide
|
|
59
|
+
(subtract
|
|
60
|
+
(sum (values appmapCountByRecorderName))
|
|
61
|
+
(coalesce appmapCountByHTTPServerRequestCount.[0] 0)
|
|
62
|
+
)
|
|
63
|
+
(sum (values appmapCountByRecorderName))
|
|
64
|
+
)
|
|
65
|
+
}}** of the AppMaps in this project contain **at least one** HTTP server request.
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
**{{ format_as_percentage
|
|
69
|
+
(divide
|
|
70
|
+
(subtract
|
|
71
|
+
(sum (values appmapCountByRecorderName))
|
|
72
|
+
(coalesce appmapCountByHTTPServerRequestCount.[0] 0)
|
|
73
|
+
(coalesce appmapCountByHTTPServerRequestCount.[1] 0)
|
|
74
|
+
)
|
|
75
|
+
(sum (values appmapCountByRecorderName))
|
|
76
|
+
)
|
|
77
|
+
}}** of the AppMaps in this project contain **more than one** HTTP server request.
|
|
78
|
+
|
|
79
|
+
Here's **a summary of the web service routes** that are provided by this project:
|
|
57
80
|
|
|
58
81
|
{{#each routeCountByResource}}`{{@key}}` {{/each}}
|
|
59
82
|
|
|
@@ -69,47 +92,59 @@ As you change your code and tests, AppMap will automatically update the OpenAPI
|
|
|
69
92
|
You'll see a summary of the REST API changes in each pull request.
|
|
70
93
|
|
|
71
94
|
{{~else~}}
|
|
72
|
-
This project doesn't have any AppMaps that contain HTTP server requests. If
|
|
73
|
-
|
|
95
|
+
This project doesn't have any AppMaps that contain HTTP server requests. If your app provides
|
|
96
|
+
web service APIs, and you don't see any HTTP server requests here, you can add some test cases that
|
|
97
|
+
exercise the HTTP server. The more of these type of tests you add,
|
|
74
98
|
the better the AppMap data will be for generating OpenAPI definitions and comparing the API
|
|
75
99
|
changes in each pull request.
|
|
76
100
|
{{/if}}
|
|
77
101
|
|
|
78
|
-
|
|
102
|
+
<h3><a id="sql-profile">SQL profile</a></h3>
|
|
79
103
|
|
|
80
104
|
When your code makes a SQL query, AppMap records the SQL query in detail. It even parses the queries
|
|
81
105
|
to figure out which tables your app is using, and how it's using them.
|
|
82
106
|
|
|
83
107
|
{{#if (length appmapCountBySQLQueryCount) }}
|
|
84
108
|
|
|
85
|
-
Here's a summary of how many SQL queries are in the AppMaps of this project:
|
|
86
109
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
110
|
+
**{{ format_as_percentage
|
|
111
|
+
(divide
|
|
112
|
+
(subtract
|
|
113
|
+
(sum (values appmapCountByRecorderName))
|
|
114
|
+
(coalesce appmapCountBySQLQueryCount.[0] 0)
|
|
115
|
+
)
|
|
116
|
+
(sum (values appmapCountByRecorderName))
|
|
117
|
+
)
|
|
118
|
+
}}** of the AppMaps in this project contain **at least one** SQL query.
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
**{{ format_as_percentage
|
|
122
|
+
(divide
|
|
123
|
+
(subtract
|
|
124
|
+
(sum (values appmapCountByRecorderName))
|
|
125
|
+
(coalesce appmapCountBySQLQueryCount.[0] 0)
|
|
126
|
+
(coalesce appmapCountBySQLQueryCount.[1] 0)
|
|
127
|
+
)
|
|
128
|
+
(sum (values appmapCountByRecorderName))
|
|
129
|
+
)
|
|
130
|
+
}}** of the AppMaps in this project contain **more than one** SQL query.
|
|
92
131
|
|
|
93
132
|
{{#if (length sqlTables) }}
|
|
94
133
|
|
|
95
|
-
|
|
134
|
+
Here are the SQL tables that are present in the observed queries:
|
|
96
135
|
|
|
97
136
|
{{#each sqlTables}}`{{@this}}` {{/each}}
|
|
98
137
|
{{/if}}
|
|
99
138
|
|
|
100
139
|
{{~else~}}
|
|
101
|
-
This project doesn't have any AppMaps of SQL queries. If
|
|
102
|
-
you can add some test cases that interact with the database. The more of these type of tests you add,
|
|
140
|
+
This project doesn't have any AppMaps of SQL queries. If your app uses a database,
|
|
141
|
+
and you don't see SQL queries here, you can add some test cases that interact with the database. The more of these type of tests you add,
|
|
103
142
|
the better the AppMap data will be for analyzing the SQL changes in each pull request.
|
|
104
143
|
{{/if}}
|
|
105
144
|
|
|
106
|
-
|
|
107
|
-
## External services profile
|
|
108
|
-
|
|
109
|
-
TODO
|
|
110
|
-
|
|
111
|
-
## Code organization
|
|
145
|
+
### Learn more
|
|
112
146
|
|
|
113
|
-
|
|
114
|
-
|
|
147
|
+
To learn more about AppMap, visit
|
|
148
|
+
[appmap.io/docs](https://appmap.io/docs).
|
|
115
149
|
|
|
150
|
+
</details>
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
## AppMap data profile
|
|
2
|
-
|
|
3
|
-
#### How is AppMap data created in this project?
|
|
4
|
-
|
|
5
|
-
| Recorder | Number of AppMaps |
|
|
6
|
-
| --- | --- |
|
|
7
|
-
{{#each appmapCountByRecorderName}}
|
|
8
|
-
| {{@key}} | {{@this}} |
|
|
9
|
-
{{/each}}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
## Code quality
|
|
13
|
-
|
|
14
|
-
#### Findings
|
|
15
|
-
|
|
16
|
-
| Impact Domain | Number of Findings |
|
|
17
|
-
| --- | --- |
|
|
18
|
-
{{#each findingCountByImpactDomain}}
|
|
19
|
-
| {{@key}} | {{@this}} |
|
|
20
|
-
{{/each}}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
## Server API profile
|
|
24
|
-
|
|
25
|
-
{{#if (length appmapCountByHTTPServerRequestCount) }}
|
|
26
|
-
|
|
27
|
-
#### How many AppMaps have HTTP server requests, and how many do they have?
|
|
28
|
-
|
|
29
|
-
| Number of HTTP server requests | Number of AppMaps |
|
|
30
|
-
| --- | --- |
|
|
31
|
-
| None | {{ coalesce appmapCountByHTTPServerRequestCount.[0] 'No AppMaps' }} |
|
|
32
|
-
| Between 1 and 5 | {{ sum_values_by_key_range appmapCountByHTTPServerRequestCount 1 5 }} |
|
|
33
|
-
| More than 5 | {{ sum_values_by_key_range appmapCountByHTTPServerRequestCount 5 }} |
|
|
34
|
-
|
|
35
|
-
#### What are the HTTP server routes of the project?
|
|
36
|
-
|
|
37
|
-
| Route prefix | Number of routes |
|
|
38
|
-
| --- | --- |
|
|
39
|
-
{{#each routeCountByResource}}
|
|
40
|
-
| {{@key}} | {{@this}} |
|
|
41
|
-
{{/each}}
|
|
42
|
-
|
|
43
|
-
#### What HTTP content types are served by the project?
|
|
44
|
-
|
|
45
|
-
| Response Content Type | Number of Routes |
|
|
46
|
-
| --- | --- |
|
|
47
|
-
{{#each routeCountByContentType}}
|
|
48
|
-
| {{@key}} | {{@this}} |
|
|
49
|
-
{{/each}}
|
|
50
|
-
|
|
51
|
-
{{~else~}}
|
|
52
|
-
This project doesn't have any AppMaps of HTTP server requests.
|
|
53
|
-
{{/if}}
|
|
54
|
-
|
|
55
|
-
## SQL profile
|
|
56
|
-
|
|
57
|
-
#### How many AppMaps have SQL queries, and how many do they have?
|
|
58
|
-
|
|
59
|
-
{{#if (length appmapCountBySQLQueryCount) }}
|
|
60
|
-
| SQL queries | Number of AppMaps |
|
|
61
|
-
| --- | --- |
|
|
62
|
-
| None | {{ coalesce appmapCountBySQLQueryCount.[0] 'No AppMaps' }} |
|
|
63
|
-
| Between 1 and 5 | {{ sum_values_by_key_range appmapCountBySQLQueryCount 1 5 }} |
|
|
64
|
-
| More than 5 | {{ sum_values_by_key_range appmapCountBySQLQueryCount 5 }} |
|
|
65
|
-
|
|
66
|
-
#### What SQL tables are used by this project?
|
|
67
|
-
|
|
68
|
-
{{#if (length sqlTables) }}
|
|
69
|
-
| Table name |
|
|
70
|
-
| --- |
|
|
71
|
-
{{#each sqlTables}}
|
|
72
|
-
| {{@this}} |
|
|
73
|
-
{{/each}}
|
|
74
|
-
{{/if}}
|
|
75
|
-
|
|
76
|
-
{{~else~}}
|
|
77
|
-
This project doesn't have any AppMaps of SQL queries.
|
|
78
|
-
{{/if}}
|
|
79
|
-
|
|
80
|
-
<!--
|
|
81
|
-
## External services profile
|
|
82
|
-
|
|
83
|
-
TODO
|
|
84
|
-
-->
|
|
85
|
-
|
|
86
|
-
## Code organization
|
|
87
|
-
|
|
88
|
-
The app contains `{{ length packages }}` code packages.
|
|
89
|
-
|