diff --git a/gatsby-node.js b/gatsby-node.js
index f5c9e7bd0fadd7bcca3bea591d77b2f9ba43c0af..883c5aed7c12293f5d26be25ae56ce72c5813c6b 100644
--- a/gatsby-node.js
+++ b/gatsby-node.js
@@ -65,13 +65,15 @@ const mdPagesFromTemplate = async (
return;
}
result.data.allMarkdownRemark.edges.forEach(({ node }) => {
- createPage({
- path: node.frontmatter.slug,
- component: pageTemplate,
- context: {
- // additional data can be passed via context
- slug: node.frontmatter.slug,
- },
- });
+ if (node.frontmatter.slug) {
+ createPage({
+ path: node.frontmatter.slug,
+ component: pageTemplate,
+ context: {
+ // additional data can be passed via context
+ slug: node.frontmatter.slug,
+ },
+ });
+ }
});
};
diff --git a/src/components/app/Header.js b/src/components/app/Header.js
index 02850cf0c5005a98640d85819dc8a6c24452aa29..acd12662ca8e331a88f3d26c80108ab612fee033 100644
--- a/src/components/app/Header.js
+++ b/src/components/app/Header.js
@@ -14,7 +14,7 @@ import theme from '../../styles/theme';
* color based on fixed state and page type.
*/
const StyledHeader = styled(GHeader)`
- z-index: 10;
+ z-index: 25;
position: absolute;
top: 0;
left: 0;
@@ -39,7 +39,7 @@ const Header = ({ transparent }) => {
{
-
+
About Us
@@ -47,27 +46,60 @@ const Nav = ({ sticky }) => {
Our Other Programs
-
+ {sticky && (
+
+ )}
+
-
-
+ >
+
+
+ Available Services
+
+ {menuOpen ? (
+
+ ) : (
+
+ )}
+
+
+
-
+
+
+
({ textTransform: 'uppercase', letterSpacing: '0.05em' }),
+ },
+ anchor: {
+ fontFamily: korolevFont,
+ },
+};
+
+const CtaLink = ({ children, ...rest }) => (
+
+
+
+
+
+ {children}
+ {' '}
+
+
+
+
+
+);
+
+export default CtaLink;
diff --git a/src/components/core/index.js b/src/components/core/index.js
index 764928d8304e7f29a62e8254290fa4d353f0dc72..4b7ce970fe4f7345aab85ccc24f67777987b9628 100644
--- a/src/components/core/index.js
+++ b/src/components/core/index.js
@@ -1,4 +1,5 @@
export { default as Link } from './Link';
+export { default as CtaLink } from './CtaLink';
export { default as Markdown } from './Markdown';
export { default as PrimaryButton } from './PrimaryButton';
export { default as SecondaryButton } from './SecondaryButton';
diff --git a/src/components/icons/DtTriad.js b/src/components/icons/DtTriad.js
new file mode 100644
index 0000000000000000000000000000000000000000..e9f7f1164c176b3ed01b92fc2377fa0a64385319
--- /dev/null
+++ b/src/components/icons/DtTriad.js
@@ -0,0 +1,16 @@
+import React from 'react';
+
+import { StyledIcon } from 'grommet-icons/StyledIcon';
+
+export const DtTriad = (props) => (
+
+
+
+);
diff --git a/src/components/icons/index.js b/src/components/icons/index.js
index 4c3c37679351dc7285c089454b141949e1d3a843..95b0485c35dc5f5af7e14d75b32a5579347acc65 100644
--- a/src/components/icons/index.js
+++ b/src/components/icons/index.js
@@ -6,3 +6,4 @@ export * from './DtComputeStore';
export * from './DtDataAnalysis';
export * from './DtSquare';
export * from './DtHex';
+export * from './DtTriad';
diff --git a/src/components/mega-menu/MegaMenu.js b/src/components/mega-menu/MegaMenu.js
index 96b28de9b37c8761fb7914a6041dcf89b93271ba..d749989b2c99774f310e1e833217356454b0e8b9 100644
--- a/src/components/mega-menu/MegaMenu.js
+++ b/src/components/mega-menu/MegaMenu.js
@@ -1,5 +1,5 @@
-import React from 'react';
-import { Box, Text, Heading } from 'grommet';
+import React, { useContext } from 'react';
+import { Box, Text, Heading, ResponsiveContext, Layer } from 'grommet';
import styled from 'styled-components';
import {
DtNetConn,
@@ -14,14 +14,14 @@ import { Link } from '../core';
const StyledMenu = styled(Box)`
position: absolute;
- top: ${(props) => (props.sticky ? '60px' : '100px')};
+ top: ${(props) => (props.sticky ? '48px' : '93px')};
left: 20px;
right: 20px;
`;
const Divider = ({ ...props }) => (
(
margin={{ vertical: 'small' }}
>
{icon}
-
- {label}
-
- {overview && (
-
- Overview
-
- )}
+
+
+ {label}
+
+ {overview && (
+
+ Overview
+
+ )}
+
);
-const MegaMenu = ({ sticky }) => (
-
-
-
- Available Services
-
-
- The following services are available to your organization through C3I&N
-
-
-
- }
- overview="/networking-connectivity"
- />
+const containerPad = {
+ xlarge: 'large',
+ large: 'medium',
+ medium: 'medium',
+};
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }
- overview="/hosting-infrastructure"
- />
-
-
-
-
- }
- />
-
+const MegaMenu = ({ sticky }) => {
+ const size = useContext(ResponsiveContext);
+ const isVert = size === 'medium';
+
+ return (
+
+
+
+
+ Available Services
+
+
+ The following services are available to your organization through
+ C3I&N
+
+
+
+ }
+ overview="/networking-connectivity"
+ />
+
+
+
+
+
+
+
+
+
+
+
-
-
- } />
-
-
-
-
- } />
-
+ {isVert && }
+
+
+
+ }
+ overview="/hosting-infrastructure"
+ />
+
+
+
+
+ }
+ />
+
+
-
-
- } />
-
+
+
+ } />
+
+
+
+
+ } />
+
+
+
+
+ } />
+
+
-
-
-);
+
+ );
+};
export default MegaMenu;
diff --git a/src/components/mega-menu/MenuGroup.js b/src/components/mega-menu/MenuGroup.js
index 19b414235c2ca6b66b67368ca4f6e84a8343d96a..0ceaf7f364e7efd054a9555a51a1c6da3c76d4f5 100644
--- a/src/components/mega-menu/MenuGroup.js
+++ b/src/components/mega-menu/MenuGroup.js
@@ -42,6 +42,7 @@ const MenuGroup = ({ category, title }) => {
key={item.id}
gap="small"
pad={{ horizontal: 'large' }}
+ flex={{ shrink: 0 }}
>
{item.frontmatter.title}
diff --git a/src/components/pages/home/OfferAccordion.js b/src/components/pages/home/OfferAccordion.js
index 15886f183f5627a2bf8a3713ad618c1a1ed07354..6c6fd6cc6a4e19c2db15e0ff091e527bcd786418 100644
--- a/src/components/pages/home/OfferAccordion.js
+++ b/src/components/pages/home/OfferAccordion.js
@@ -1,14 +1,20 @@
-import React, { useState } from 'react';
-import { Accordion, AccordionPanel, Box, Text } from 'grommet';
+import React, { useState, useContext } from 'react';
+import {
+ Accordion,
+ AccordionPanel,
+ Box,
+ Text,
+ ResponsiveContext,
+} from 'grommet';
import { FormUp, FormDown } from 'grommet-icons';
import Reference from '../../icons/Reference';
import { MenuGroup } from '../../mega-menu';
-const OfferHeader = ({ title, icon, description, active }) => (
+const OfferHeader = ({ title, icon, description, active, isMobile }) => (
(
justify="between"
>
- {icon}
+ {!isMobile && {icon}}
{title}
{description && {description}}
@@ -27,17 +33,29 @@ const OfferHeader = ({ title, icon, description, active }) => (
);
+const widths = {
+ xsmall: '100%',
+ small: '100%',
+ medium: '100%',
+ large: 'large',
+ xlarge: 'large',
+};
+
const OfferAcc = () => {
const [activeList, setActiveList] = useState([]);
+ const size = useContext(ResponsiveContext);
+
+ const isMobile = ['xsmall', 'small'].includes(size);
+
const handleChange = (list) => {
setActiveList(list);
};
return (
-
+
@@ -47,11 +65,12 @@ const OfferAcc = () => {
title="Networking & Connectivity"
icon={}
active={activeList.includes(0)}
+ isMobile={isMobile}
/>
}
>
@@ -84,6 +103,7 @@ const OfferAcc = () => {
title="Compute & Store"
icon={}
active={activeList.includes(1)}
+ isMobile={isMobile}
/>
}
>
@@ -103,6 +123,7 @@ const OfferAcc = () => {
title="Software Development & DevSecOps"
icon={}
active={activeList.includes(2)}
+ isMobile={isMobile}
/>
}
>
@@ -122,6 +143,7 @@ const OfferAcc = () => {
title="Digital Engineering"
icon={}
active={activeList.includes(3)}
+ isMobile={isMobile}
/>
}
>
@@ -141,6 +163,7 @@ const OfferAcc = () => {
title="Communications"
icon={}
active={activeList.includes(4)}
+ isMobile={isMobile}
/>
}
>
@@ -160,6 +183,7 @@ const OfferAcc = () => {
title="Data Analysis"
icon={}
active={activeList.includes(5)}
+ isMobile={isMobile}
/>
}
>
diff --git a/src/components/pages/home/Solutions.js b/src/components/pages/home/Solutions.js
index 2b845ea060e4a81dfba4a043203c55c4c5b27ec2..5f9b9ae6f9e58846c8a32cca33acfc7248554f54 100644
--- a/src/components/pages/home/Solutions.js
+++ b/src/components/pages/home/Solutions.js
@@ -1,9 +1,32 @@
-import React from 'react';
+import React, { useContext } from 'react';
import { useStaticQuery, graphql } from 'gatsby';
-import { Box, Text, Heading, Paragraph } from 'grommet';
-import { DtNetConn } from '../../icons';
+import { Box, Text, Heading, Paragraph, ResponsiveContext } from 'grommet';
+import { DtTriad } from '../../icons';
import Reference from '../../icons/Reference';
-import { Link, PrimaryButton } from '../../core';
+import { CtaLink, PrimaryButton } from '../../core';
+
+const SolutionGroup = ({ node, basis, isMobile }) => (
+
+
+
+ {node.frontmatter.useCase}
+
+
+
+
+ {node.frontmatter.categories.map((item) => (
+
+
+
+ {item}
+
+
+ ))}
+
+
+ Learn More
+
+);
/**
* 2 column responsive grid block
@@ -31,14 +54,21 @@ const Solutions = () => {
}
`);
+ const size = useContext(ResponsiveContext);
+ const isMobile = ['xsmall', 'small'].includes(size);
+
// Use the first 2 items from the solutions list
const s1 = allMarkdownRemark.edges[0].node;
const s2 = allMarkdownRemark.edges[1].node;
return (
-
+
-
+ {
-
-
-
-
- {s1.frontmatter.useCase}
-
- {s1.frontmatter.categories.map((item) => (
-
-
-
- {item}
-
-
- ))}
- Learn More
-
-
-
- {s2.frontmatter.useCase}
-
- {s2.frontmatter.categories.map((item) => (
-
-
-
- {item}
-
-
- ))}
- Learn More
-
+
+
+
diff --git a/src/components/pages/service-category/ServiceList.js b/src/components/pages/service-category/ServiceList.js
index e95cd5324f76213fca2a31ba4f21165b0dacb970..e9251a8a8ef5bd28c8a1462fcea269f6a891f9d7 100644
--- a/src/components/pages/service-category/ServiceList.js
+++ b/src/components/pages/service-category/ServiceList.js
@@ -4,7 +4,7 @@ import { Box, Heading, Paragraph, ResponsiveContext } from 'grommet';
import { useStaticQuery, graphql } from 'gatsby';
import { DtSquare } from '../../icons';
import { Container, Column } from '../../layout';
-import { Link } from '../../core';
+import { CtaLink } from '../../core';
import Classification from '../../Classification';
const listQuery = graphql`
@@ -37,7 +37,7 @@ const ServiceItem = ({ node, pad }) => (
{node.frontmatter.excerpt || node.excerpt}
- Learn More >
+ Learn More
);
@@ -45,8 +45,8 @@ const rowPad = {
xsmall: '0',
small: '0',
medium: 'medium',
- large: 'large',
- xlarge: 'large',
+ large: 'medium',
+ xlarge: 'medium',
};
const ServiceList = ({ categories }) => {
@@ -63,7 +63,7 @@ const ServiceList = ({ categories }) => {
const isMobile = ['xsmall', 'small'].includes(size);
return (
-
+
{catGroup.map((group, i) => (
{categories.length > 1 && (
@@ -94,7 +94,7 @@ const ServiceList = ({ categories }) => {
gap="large"
key={item1.id}
>
- {item1 && }
+ {item1 && }
{item2 && }
);
diff --git a/src/components/pages/solution-detail/SolutionList.js b/src/components/pages/solution-detail/SolutionList.js
index 389f5c71530ff0f1da6580a09ab4d763d0e7f50a..4cfa868d811e232c2344582985495a0ecdd6cc80 100644
--- a/src/components/pages/solution-detail/SolutionList.js
+++ b/src/components/pages/solution-detail/SolutionList.js
@@ -2,7 +2,7 @@ import React from 'react';
import PropTypes from 'prop-types';
import { Box, Heading, Paragraph, Text } from 'grommet';
import { useStaticQuery, graphql } from 'gatsby';
-import { Link } from '../../core';
+import { CtaLink } from '../../core';
import Classification from '../../Classification';
const listQuery = graphql`
@@ -33,28 +33,32 @@ const ServiceItem = ({ node, pad }) => (
{node.frontmatter.title}
- {node.frontmatter.categories.map((item) => (
-
- {item}
-
- ))}
+ {node.frontmatter.categories &&
+ node.frontmatter.categories.map((item) => (
+
+ {item}
+
+ ))}
-
+ {node.frontmatter.levels && (
+
+ )}
{/* Undo this "flex" if we don't want learn more to line up */}
{node.frontmatter.excerpt || node.excerpt}
-
- Learn More >
+ {node.frontmatter.slug && (
+ Learn More
+ )}
);
-const SolutionList = ({ shoppable, nonShoppable }) => {
+const SolutionList = ({ list }) => {
const {
allMarkdownRemark: { nodes },
} = useStaticQuery(listQuery);
- const ordered = shoppable.reduce((acc, curr, i) => {
+ const ordered = list.reduce((acc, curr, i) => {
const matchingNode = nodes.find((node) => {
const matchTitle = node.frontmatter.shortTitle || node.frontmatter.title;
return matchTitle === curr;
@@ -75,21 +79,12 @@ const SolutionList = ({ shoppable, nonShoppable }) => {
)
)}
- {nonShoppable &&
- nonShoppable.map((node) => (
-
-
- {node}
-
-
- ))}
);
};
SolutionList.propTypes = {
- shoppable: PropTypes.array.isRequired,
- nonShoppable: PropTypes.array,
+ list: PropTypes.array.isRequired,
};
export default SolutionList;
diff --git a/src/content/service-detail/af7.md b/src/content/service-detail/af7.md
index 6e6269b2b23d331cf28c7431b865f0a1a3940147..7bc012bdb70bde28b8820b1d651db214cf18d5a0 100644
--- a/src/content/service-detail/af7.md
+++ b/src/content/service-detail/af7.md
@@ -2,7 +2,7 @@
slug: '/services/af7'
title: 'Air Force Special Enclave Video Enterprise Network (AF7)'
shortTitle: 'AF7'
-categories:
+categories:
- Communications
levels:
- S-SAR
diff --git a/src/content/service-detail/afsen-coin.md b/src/content/service-detail/afsen-coin.md
index 9786cbe3fff2ff884f48dd56314301d2df33782c..a4e52a149f6511f15322e8eb74d19b77bac5f035 100644
--- a/src/content/service-detail/afsen-coin.md
+++ b/src/content/service-detail/afsen-coin.md
@@ -2,11 +2,16 @@
slug: '/services/afsen-coin'
title: 'AFSEN COIN'
shortTitle: 'COIN'
-categories:
+categories:
- Networking & Connectivity
- Global Connectivity / WAN
+levels:
+ - S-SAR
+ - S-SCI
+ - TS-SAR
+ - TS-SCI
excerpt: 'AFSEN-COIN is designed to provide a standardized means of information transportation to improve service and connectivity between locations.'
-updated: March 23, 2021 at 2:54:52 PM EDT
+updated: March 26
---
AFSEN-COIN is a Virtual Private Network (VPN) service provided through the Defense Information Systems Agency (DISA) Global Information Grid (GIG). AFSEN-COIN provides the transport pipe for Secret//Special Access Required (SAR) up to Top Secret Sensitive Compartmented Information (SCI)//SAR traffic that is National Security Agency (NSA) Type-1 encrypted using DISA’s Layer 3-VPN service for long-haul transport. AFSEN-COIN provides customers with dedicated transport/bandwidth for Special Access Program (SAP) missions without having to compete with existing NIPRNet bandwidth. Private Network (VPN) service provided through the Defense Information Systems Agency (DISA) Global Information Grid (GIG). AFSEN-COIN provides the transport pipe for Secret//Special Access Required (SAR) up to Top Secret Sensitive Compartmented Information (SCI)//SAR traffic that is National Security Agency (NSA) Type-1 encrypted using DISA’s Layer 3-VPN service for long-haul transport. AFSEN-COIN provides customers with dedicated transport/bandwidth for Special Access Program (SAP) missions without having to compete with existing NIPRNet bandwidth.
diff --git a/src/content/service-detail/base-it.md b/src/content/service-detail/base-it.md
index f68ec0b9fb4b76e735129ba7afefdd41c6a85d5d..4c1ec5ef4e59cab8460d611fe77a6a750c022dbf 100644
--- a/src/content/service-detail/base-it.md
+++ b/src/content/service-detail/base-it.md
@@ -2,7 +2,7 @@
slug: '/services/base-it-infrastructure'
title: 'Base IT Infrastructure'
shortTitle: 'BITI'
-categories:
+categories:
- Networking & Connectivity
- Local Connectivity / BAN
- Global Connectivity / WAN
@@ -10,20 +10,20 @@ levels:
- U
- S
excerpt: 'Base IT Infrastructure services are centrally managed to provide both wired and wireless WAN and BAN capabilities.'
-updated: March 23, 2021 at 2:54:52 PM EDT
+updated: March 26
---
**Wired**
- All switches, critical and non-critical, to be replaced with improved technology.
-- Software Defined Networking (SDN) capable
-- Enhanced network security (802.1x, 2FA)
+ - Software Defined Networking (SDN) capable
+ - Enhanced network security (802.1x, 2FA)
**Wireless**
- Replacement/addition of facility wireless and flight-line wireless.
-- Wi-Fi 6 capable
-- Citizens Broadband Radio Service (CBRS) capable (flight-line only)
-- Private/Public/5G LTE delivery (flight-line only)
+ - Wi-Fi 6 capable
+ - Citizens Broadband Radio Service (CBRS) capable (flight-line only)
+ - Private/Public/5G LTE delivery (flight-line only)
**Centralized Management**
- Deploy centralized management system for management of wireless, wired and deployment of security policies.
diff --git a/src/content/service-detail/cloud-gateway.md b/src/content/service-detail/cloud-gateway.md
index 2a7168fb42f2e51686966cb8205bf44d25adc763..64a3633fe439d9f82f3882a802781690b3c6a6bc 100644
--- a/src/content/service-detail/cloud-gateway.md
+++ b/src/content/service-detail/cloud-gateway.md
@@ -3,8 +3,15 @@ slug: '/services/cloud-gateway'
title: 'Cloud Gateway'
categories:
- Network & Connectivity
- - Cloud Accesslevels
+ - Cloud Access
+levels:
+ - S
+ - S-SAR
+ - S-SCI
+ - TS
+ - TS-SAR
+ - TS-SCI
excerpt: 'Cloud Gateway provides access to approved SAP Clouds & Services, SAP Meet Me Point (MMPs), and COMSEC collocation by offering high speed Cloud access and leverages common transports. It is tailored towards DoD SAP and ICON Defense Industrial Based (DIB) participants'
-updated: March 23, 2021 at 2:54:52 PM EDT
+updated: March 26
---
diff --git a/src/content/service-detail/core-rock.md b/src/content/service-detail/core-rock.md
index f5262e57a17fc81fb831b03ea30857eade6dd75c..80301a07972234fa2ede77994d605e6e1b35b6a3 100644
--- a/src/content/service-detail/core-rock.md
+++ b/src/content/service-detail/core-rock.md
@@ -21,16 +21,16 @@ CORE is an Air Force Special Access Program (SAP) suite of services approved for
- Consolidates disparate architectures
- Eliminates secure faxing and human courier time
- Webmail service
- - Adapts based on user clearances
- - No limit on inbox size
- - Attach files
+ - Adapts based on user clearances
+ - No limit on inbox size
+ - Attach files
- Cloud-based file transfer
- - Multi-level Compartmentalization
- - Adapts based on user clearances
+ - Multi-level Compartmentalization
+ - Adapts based on user clearances
- 3rd Party Introduction
- - User SAP accesses pulled from JADE
- - Strips PII information for general users
-
+ - User SAP accesses pulled from JADE
+ - Strips PII information for general users
+
### Requirements
All necessary forms are provided by the Rock Connections Team
diff --git a/src/content/service-detail/d1scovery.md b/src/content/service-detail/d1scovery.md
index a7057c54b441e40c08b9a77dbd9d4cd33114b0ad..4c1c46e4cbab74b271604dd26847a596ec48ed4b 100644
--- a/src/content/service-detail/d1scovery.md
+++ b/src/content/service-detail/d1scovery.md
@@ -6,7 +6,7 @@ categories:
levels:
- U
excerpt: 'An enterprise Big Data Analytics platform hosted on Cloud One that provides advanced data analytics and data management tools up to IL4.'
-updated: March 23, 2021 at 2:54:52 PM EDT
+updated: March 26
---
D1scovery provides an operational environment for analytics-based solutions and gives users access to cutting-edge commercial business intelligence and advanced data analytics tools and environment on Microsoft’s Azure Government Cloud.
@@ -15,6 +15,7 @@ D1scovery provides an operational environment for analytics-based solutions and
### Benefits & Features
**Benefits**
+
- Reduce cost and time needed to field Data Analytics Solutions with Data Lab sandbox to test analyses and draft solutions.
- Publish vetted analytic solutions that can be shared with any CAC user via URL
- Access a metadata catalog and Data Specialists to explore over 50 data sources and existing solutions
@@ -23,6 +24,7 @@ D1scovery provides an operational environment for analytics-based solutions and
- Utilize a comprehensive knowledge portal and on-demand toolbox resources to reduce training and start-up time.
**Available Features**
+
- Apache MiFI
- Apache Spark
- Azure Data Factory
diff --git a/src/content/service-detail/dual-path.md b/src/content/service-detail/dual-path.md
new file mode 100644
index 0000000000000000000000000000000000000000..be2c08f6eac341fe7c64e8311502dd95f9a5d2c9
--- /dev/null
+++ b/src/content/service-detail/dual-path.md
@@ -0,0 +1,6 @@
+---
+title: Dual-Path Resiliency
+shortTitle: DPR
+excerpt: 'Dual Path Text: Base IT Infrastructure services are centrally managed to provide both wired and wireless WAN and BAN capabilities.'
+updated: March 29
+---
\ No newline at end of file
diff --git a/src/content/service-detail/fences.md b/src/content/service-detail/fences.md
index f7512dc9bbaa40e4d5db8cf4f0455562559a6f45..532041195c1e7e0605488908875012003d2754e3 100644
--- a/src/content/service-detail/fences.md
+++ b/src/content/service-detail/fences.md
@@ -11,7 +11,7 @@ levels:
- TS-SAR
- TS-SCI
excerpt: 'FENCES is the only SAP-compliant enterprise cloud solution for the DoD at independent levels of security.'
-updated: March 23, 2021 at 2:54:52 PM EDT
+updated: March 26
---
FENCES provides PL-2 workload templates for SAP customers that easily provide virtual desktops, DevSecOps, modeling & simulation, edge computing, and data backup capabilities. These workload templates are available across every security level to simplify development and migration of mission applications for SAP data.
diff --git a/src/content/service-detail/hnp-it.md b/src/content/service-detail/hnp-it.md
new file mode 100644
index 0000000000000000000000000000000000000000..8b9dd5f547d7ae5172f3192c77358198647d7e87
--- /dev/null
+++ b/src/content/service-detail/hnp-it.md
@@ -0,0 +1,6 @@
+---
+title: HN Performance & Integration Team
+shortTitle: HNP-IT
+excerpt: 'HN Performance & Integration Team Text: Base IT Infrastructure services are centrally managed to provide both wired and wireless WAN and BAN capabilities.'
+updated: March 29
+---
\ No newline at end of file
diff --git a/src/content/service-detail/icon.md b/src/content/service-detail/icon.md
index 19495c27b8ea71295ce9d00eaaf8a96c3ae0c5a2..9053ced05fb84388304f5c9df7248c33d91bd438 100644
--- a/src/content/service-detail/icon.md
+++ b/src/content/service-detail/icon.md
@@ -5,8 +5,15 @@ shortTitle: 'ICON'
categories:
- Networking & Connectivity
- Reference Architectures
+levels:
+ - S
+ - S-SAR
+ - S-SCI
+ - TS
+ - TS-SAR
+ - TS-SCI
excerpt: 'ICON is a reference architecture for industry partners to build out their own PL-3 networks to connect to FENCES or Summit.'
-updated: March 23, 2021 at 2:54:52 PM EDT
+updated: March 26
---
ICON connect industry to DoD’s Enterprise SAP Services (SWS) and cloud environment by providing a standardized architecture, security, cyber and operations across industry through the ICON Reference Architecture.
diff --git a/src/content/service-detail/platform-one-cnap.md b/src/content/service-detail/platform-one-cnap.md
index e8aabbf240038d7a18a5692d714b6c61eb6cae34..f58e1a1fe14d00bcdd6bb72a93f847696a7f7554 100644
--- a/src/content/service-detail/platform-one-cnap.md
+++ b/src/content/service-detail/platform-one-cnap.md
@@ -7,17 +7,16 @@ categories:
- Cloud Access
levels:
- U
-excerpt: 'CNAP provides access to cloud-based development, testing, and production enclaves.'
-updated: March 23, 2021 at 2:54:52 PM EDT
+excerpt: 'The Cloud Native Acess Point is available on Cloud One to provide access to Development, Testing, and Production enclaves at IL-2, IL-4, and IL-5 that use Platform One DevSecOps DevSecOps environments by using an internet-facing Cloud-native Zero trust model.'
+updated: March 26
---
+CNAP brings a full Zero Trust tech stack enforcing device state, user RBAC, and Software Defined Perimeter / Networks based on Google BeyondCorp concepts and allows access to Cloud One (AWS GovCloud and soon Azure Government) and Platform One without a BCAP or IAP. CNAP allows thick client access from BYOD Government-owned devices (both mobile and desktop) through AppGate Zero Trust clients to enforce device states.
+
### Benefits & Features
-- Brings a full Zero Trust tech stack enforcing device state, user RBAC, and Software Defined Perimeter / Networks based on Google BeyondCorp concepts
-- Allows access to Cloud One (AWS GovCloud and soon Azure Government) and Platform One without a BCAP or IAP
-- Allows thick client access from BYOD Government-owned devices (both mobile and desktop) through AppGate Zero Trust clients to enforce device states
- Allows for VDI options for zero / thin clients
-- Enables internet egress at IL 5 in development enclaves
+- Enables internet egress at IL2, IL4, IL5 in development enclaves
- Brings DMZ Network / Perimeter stack with break and inspect, IDS / IPS , WAF Capability, full packet captures as an elastic Cloud-based stack
- Brings SSO with various DoD PKI authentication options and IL2 MFA options.
- Centralizes and aggregates logs and pushes to CSSP
diff --git a/src/content/service-detail/platform-one.md b/src/content/service-detail/platform-one.md
index fd2d5bdce746b072b9d98faa4fbe840122c0c859..0e276bb74858d2d2dbda5c3b224257068f4482d2 100644
--- a/src/content/service-detail/platform-one.md
+++ b/src/content/service-detail/platform-one.md
@@ -7,7 +7,13 @@ levels:
- U
- S
excerpt: 'Platform One provides the secure DevSecOps platform and pipelines needed to implement and automate the accreditation and deployment of warfighting software capabilities at commercial speeds.'
-updated: March 23, 2021 at 2:54:52 PM EDT
+updated: March 26
---
Platform One implements the DoD DevSecOps transformation with program offices under the technical direction and vision of the Air Force Chief Software Officer. Platform One is also the DoD CIO’s preferred DevSecOps service provider.
+
+### Benefits & Features
+
+- Build and deliver new and accredited custom software applications (microservices)
+- DoD Continuous Authority to Operate (cATO) (pay per app)
+- Teams can use existing CI/CD pipelines hosted on Repo One with their current Infrastructure as Code (IaC) Code
\ No newline at end of file
diff --git a/src/content/service-detail/seitaas-isp.md b/src/content/service-detail/seitaas-isp.md
index 1efcb46cd9cf94e36e8d570235a9119b685d123e..2cd86f073966aff9c879f467b8b3a23dfe737d28 100644
--- a/src/content/service-detail/seitaas-isp.md
+++ b/src/content/service-detail/seitaas-isp.md
@@ -5,8 +5,15 @@ shortTitle: 'SEITaaS ISP'
categories:
- Networking & Connectivity
- Global Connectivity / WAN
+levels:
+ - S
+ - S-SAR
+ - S-SCI
+ - TS
+ - TS-SAR
+ - TS-SCI
excerpt: 'SEITaaS network transport will be provided by a catalogue of service providers including both government and commercial internet providers.'
-updated: March 23, 2021 at 2:54:52 PM EDT
+updated: March 26
---
-During site surveys and end user requirements refinement the SEITaaS/Summit team will evaluate all available options for connectivity at a site and use the best available option to meet the user requirements.
+During site surveys and end user requirements refinement the SEITaaS/Summit team will evaluate all available options for connectivity at a site and use the best available option to meet the user requirements. Options considered will include government provided transport (NIPR, COIN, DREN, etc.) or locally available commercial ISP.
diff --git a/src/content/service-detail/seitaas-remote-connect.md b/src/content/service-detail/seitaas-remote-connect.md
index c0f9b977d28e6401c0cc575a58e09298f7af8f44..5ebcf11e0ca6f09c5755b50f4d3dcef46e352eb1 100644
--- a/src/content/service-detail/seitaas-remote-connect.md
+++ b/src/content/service-detail/seitaas-remote-connect.md
@@ -10,6 +10,6 @@ levels:
- TS-SAR
- TS-SCI
excerpt: 'SEITaaS will enable enterprise capabilities to be provided as a service to users accessing thin client, zero client, or connected self sustained performer LANs.'
-updated: March 23, 2021 at 2:54:52 PM EDT
+updated: March 26
---
diff --git a/src/content/service-detail/seitaas-summit.md b/src/content/service-detail/seitaas-summit.md
index c741414c31b53fe50782bf76dc3129c64142d2ef..ee048044978570615c3f286082ceb80572e3a859 100644
--- a/src/content/service-detail/seitaas-summit.md
+++ b/src/content/service-detail/seitaas-summit.md
@@ -13,3 +13,16 @@ updated: March 23, 2021 at 2:51:35 PM EDT
---
SEITaaS/Summit delivers End User Services, MLS applications, and NaaS to include data transport and endpoints. These capabilities are maintained centrally and down to the desktop. Users have the ability to select applications and new capabilities from a government service catalog or request new services to add to the government service catalog as needed.
+
+### Benefits & Features
+
+- Modernize AF SAP IT enterprise services
+- Consolidate AF SAP IT systems and services
+- Better secure AF SAP IT systems and data
+- Optimize AF SAP IT enterprise services
+- Validate the Government technical approach
+- Rapidly meet urgent customer needs
+- Gather comprehensive "as a service" data
+- Reduce the overall cost of SAP IT services
+- Refine customer assessment and fielding processes
+- Transfer the solution to follow on "as a service" vendor(s)
\ No newline at end of file
diff --git a/src/content/solutions/biti.md b/src/content/solutions/biti.md
index d278c722a0041dd6fc350824e81c6cf341305a1d..a335e3f63ef459008d5702df0fa9b5c216545b0a 100644
--- a/src/content/solutions/biti.md
+++ b/src/content/solutions/biti.md
@@ -5,10 +5,11 @@ useCase: Optimize and modernize networks and connectivity across a base
categories:
- Networking & Connectivity
shoppable:
- - Base IT Infrastructure
- - AFSEN COIN
+ - BITI
+ - COIN
nonShoppable:
- - Dual-Path Resiliency
- - HN Performance & Integration Team
+ - DPR
+ - HNP-IT
+
index: 2
---
\ No newline at end of file
diff --git a/src/pages/other-programs.js b/src/pages/other-programs.js
index 64b8a58e7f1d69bf5f451ff5a107203840f626af..e0e2e42480f618aa086e9c8a61f4d947e955b738 100644
--- a/src/pages/other-programs.js
+++ b/src/pages/other-programs.js
@@ -61,7 +61,7 @@ const OtherPrograms = ({ data }) => {
/>
diff --git a/src/pages/solutions.js b/src/pages/solutions.js
index 781226d7b0b33869680f549a4308c23af40b4d71..b48e8d53c9e13ec61d7b77992dc9db3567eb909e 100644
--- a/src/pages/solutions.js
+++ b/src/pages/solutions.js
@@ -5,7 +5,7 @@ import { AppLayout, SEO } from '../components/app';
import { Container, Column } from '../components/layout';
import { ServiceHero } from '../components/hero';
import { DtSquare } from '../components/icons';
-import { Link } from '../components/core';
+import { CtaLink } from '../components/core';
const Solutions = ({ data }) => {
const imageFluid = data.allFile.edges[0].node.childImageSharp.fluid;
@@ -57,7 +57,7 @@ const Solutions = ({ data }) => {
)}
- View Details
+ Learn More
))}
diff --git a/src/styles/global.css b/src/styles/global.css
index e98cc642d5b4cc70dfa666301938ab3a17add403..293d3b1f13166c35a834e0811f57acb0e7b481fc 100644
--- a/src/styles/global.css
+++ b/src/styles/global.css
@@ -1,6 +1,3 @@
body {
margin: 0;
- /* Hack for megamenu modal mode */
- /* TODO: Find a better way */
- /* overflow: auto !important; */
}
diff --git a/src/templates/ServiceDetail.js b/src/templates/ServiceDetail.js
index ae9c746bd034c3d5791c5b70174162d1a949d17c..64fd7dca5206494f1535a2d6fce4dc437d7765b8 100644
--- a/src/templates/ServiceDetail.js
+++ b/src/templates/ServiceDetail.js
@@ -57,6 +57,7 @@ export const pageQuery = graphql`
title
categories
levels
+ excerpt
}
}
allFile(filter: { absolutePath: { regex: "/images/detail-header.png/" } }) {
diff --git a/src/templates/SolutionDetail.js b/src/templates/SolutionDetail.js
index 6da179f9eec0f1feeac16a63acc18505e7aef9c8..ea5beff293b1ba13e75290a3f7e9aa5780df816a 100644
--- a/src/templates/SolutionDetail.js
+++ b/src/templates/SolutionDetail.js
@@ -17,7 +17,9 @@ import { SolutionList } from '../components/pages/solution-detail';
const SolutionDetailTemplate = ({ data }) => {
const { frontmatter } = data.markdownRemark;
const images = data.allFile.edges;
-
+ const solutionList = frontmatter.nonShoppable
+ ? [...frontmatter.shoppable, ...frontmatter.nonShoppable]
+ : frontmatter.shoppable;
return (
{
{`The following C3I&N services could be used together to help ${frontmatter.useCase}`}
-
+