11import React from 'react' ;
2- import { graphql , withPrefix , Link } from 'gatsby' ;
2+ import { graphql , Link } from 'gatsby' ;
33import SEO from '../../components/SEO' ;
44import Layout from '../../components/Layout' ;
5+ import IntegrationCard from '../../components/IntegrationCard' ;
56
6- const Integrations = props => {
7+ const Integrations = ( props ) => {
78 const scanner = props . data . scanner . edges ;
9+ const hook = props . data . hook . edges ;
810 const persistenceProvider = props . data . persistenceProvider . edges ;
911
1012 return (
@@ -15,84 +17,88 @@ const Integrations = props => {
1517 < div className = "row" >
1618 < div className = "col-12" >
1719 < h1 > Integrations</ h1 >
18- < h2 > Out of the Box</ h2 >
20+ < h2 > Out of the Box and ready to use </ h2 >
1921 < p >
2022 Each Scanner is an individual tool. We took no part in building
2123 them and did not adjust them for our purposes, which is great,
2224 because, like so we can provide them as they are and ready for
2325 use.
2426 </ p >
27+ < p >
28+ If you miss your favorite security Scanner or tool you can
29+ easily integrate it by adding a contribution (GitHub Pull
30+ Request) or contact us if you want help with it.
31+ </ p >
2532 </ div >
2633 </ div >
2734 </ div >
2835 </ div >
29- < div className = "container pb-2 pb-md-3" >
30- < div className = "row justify -content-center" >
36+ < div className = "container pb-2 pb-md-3" >
37+ < div className = "row left -content-center" >
3138 < div className = "col-12" >
3239 < h2 className = "title-3 text-dark mb-2" > Scanner</ h2 >
40+ < p >
41+ Each Scanner is an individual tool. We took no part in building
42+ them and did not adjust them for our purposes, which is great,
43+ because, like so we can provide them as they are and ready for
44+ use.
45+ </ p >
3346 </ div >
3447 { scanner . map ( ( edge , index ) => (
3548 < div
3649 key = { index }
37- className = "col-12 col-md-6 col-lg-6 col-sm-12 mb-2 no-highlight"
50+ className = "col-12 col-md-6 col-lg-6 col-sm-12 no-highlight"
3851 >
3952 < Link to = { edge . node . frontmatter . path } >
40- < div className = "feature hoverable" >
41- < div className = "feature-scanner-icon" >
42- < img
43- className = "scanner-icon"
44- src = { withPrefix (
45- '/integrationIcons/' +
46- edge . node . frontmatter . title +
47- '.svg'
48- ) }
49- alt = "scanner icon"
50- > </ img >
51- </ div >
52- < h2 className = "feature-title" >
53- { edge . node . frontmatter . title }
54- </ h2 >
55- < div className = "feature-content" >
56- < p > { edge . node . frontmatter . usecase } </ p >
57- </ div >
58- < div className = "feature-scanner-icon-right-gap" > </ div >
59- </ div >
53+ < IntegrationCard frontmatter = { edge . node . frontmatter } />
6054 </ Link >
6155 </ div >
6256 ) ) }
6357 </ div >
6458 </ div >
6559 < div className = "container pb-2 pb-md-3" >
66- < div className = "row justify -content-center" >
60+ < div className = "row left -content-center" >
6761 < div className = "col-12" >
68- < h2 className = "title-3 text-dark mb-2" > Persistence Provider</ h2 >
62+ < h2 className = "title-3 text-dark " > Persistence Provider</ h2 >
63+ < p >
64+ Each Scanner is an individual tool. We took no part in building
65+ them and did not adjust them for our purposes, which is great,
66+ because, like so we can provide them as they are and ready for
67+ use.
68+ </ p >
6969 </ div >
70- { persistenceProvider . map ( edge => (
70+ { persistenceProvider . map ( ( edge , index ) => (
7171 < div
72- key = { edge . node . id }
72+ key = { index }
7373 className = "col-12 col-md-6 col-lg-6 col-sm-12 mb-2 no-highlight"
7474 >
7575 < Link to = { edge . node . frontmatter . path } >
76- < div className = "feature hoverable" >
77- < div className = "feature-scanner-icon" >
78- < img
79- className = "scanner-icon"
80- src = { withPrefix (
81- '/integrationIcons/' +
82- edge . node . frontmatter . title +
83- '.svg'
84- ) }
85- alt = "persistence provider icon"
86- > </ img >
87- </ div >
88- < h2 className = "feature-title" >
89- { edge . node . frontmatter . title }
90- </ h2 >
91- < div className = "feature-content" >
92- < p > { edge . node . frontmatter . usecase } </ p >
93- </ div >
94- < div className = "feature-scanner-icon-right-gap" > </ div >
95- </ div >
76+ < IntegrationCard frontmatter = { edge . node . frontmatter } />
77+ </ Link >
78+ </ div >
79+ ) ) }
80+ </ div >
81+ </ div >
82+ < div className = "container pb-2 pb-md-3" >
83+ < div className = "row left-content-center" >
84+ < div className = "col-12" >
85+ < h2 className = "title-3 text-dark mb-2" >
86+ Data Processing and Integration Hooks
87+ </ h2 >
88+ < p >
89+ Each Scanner is an individual tool. We took no part in building
90+ them and did not adjust them for our purposes, which is great,
91+ because, like so we can provide them as they are and ready for
92+ use.
93+ </ p >
94+ </ div >
95+ { hook . map ( ( edge , index ) => (
96+ < div
97+ key = { index }
98+ className = "col-12 col-md-6 col-lg-6 col-sm-12 no-highlight"
99+ >
100+ < Link to = { edge . node . frontmatter . path } >
101+ < IntegrationCard frontmatter = { edge . node . frontmatter } />
96102 </ Link >
97103 </ div >
98104 ) ) }
@@ -116,24 +122,56 @@ export const query = graphql`
116122 path
117123 category
118124 usecase
125+ type
126+ state
127+ appVersion
119128 }
120129 }
121130 }
122131 }
123- persistenceProvider : allMarkdownRemark(
132+ hook : allMarkdownRemark(
124133 filter: {
125- fileAbsolutePath: { regex: "/integrations/persistence-provider/" }
134+ frontmatter: {
135+ category: { eq: "hook" }
136+ type: { ne: "persistenceProvider" }
137+ }
126138 }
139+ sort: { fields: [frontmatter___title], order: ASC }
127140 ) {
128141 edges {
129142 node {
143+ html
130144 frontmatter {
131145 title
132146 path
133147 category
148+ usecase
149+ type
150+ state
134151 }
135- id
152+ }
153+ }
154+ }
155+ persistenceProvider: allMarkdownRemark(
156+ filter: {
157+ frontmatter: {
158+ category: { eq: "hook" }
159+ type: { eq: "persistenceProvider" }
160+ }
161+ }
162+ sort: { fields: [frontmatter___title], order: ASC }
163+ ) {
164+ edges {
165+ node {
136166 html
167+ frontmatter {
168+ title
169+ path
170+ category
171+ usecase
172+ type
173+ state
174+ }
137175 }
138176 }
139177 }
0 commit comments