Skip to content

Commit

Permalink
Merge pull request #11 from bitbomdev/naveen/newTheme2
Browse files Browse the repository at this point in the history
Redid docs
  • Loading branch information
naveensrinivasan authored Nov 11, 2024
2 parents 3101d3a + 79eeeb6 commit 8b71a4e
Show file tree
Hide file tree
Showing 112 changed files with 13,769 additions and 5,031 deletions.
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,3 @@
npm-debug.log*
yarn-debug.log*
yarn-error.log*

.idea
4 changes: 4 additions & 0 deletions .idea/docs.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

227 changes: 227 additions & 0 deletions .idea/workspace.xml

Large diffs are not rendered by default.

9 changes: 9 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
node_modules
/build
.docusaurus
.cache-loader
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
11 changes: 11 additions & 0 deletions .prettierrc.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
export default {
arrowParens: 'avoid',
bracketSameLine: true,
bracketSpacing: false,
singleQuote: true,
trailingComma: 'all',
tabWidth: 2,
useTabs: false,
semi: true,
printWidth: 80,
};
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@
slug: Air-Gapped-Vulnerability
title: How Minefield Enables Air-Gapped SBOM Vulnerability Graphing Like Git's Disconnected Mode
description: How Minefield Graphed Vulnerabilities in an Air-Gapped Environment
keywords: [SBOM, dependency graphs, air-gapped, vulnerabilities]
authors: [BitBom]
tags: [air-gapped, vulnerabilities]
image: "/img/blog/air-gapped-sbom-vuln-graphing-like-git-disconnected-mode/caged-floating-island.png"
---

![caged-floating-island](/img/blog/air-gapped-sbom-vuln-graphing-like-git-disconnected-mode/caged-floating-island.png)

Graphing vulnerabilities in an air-gapped environment is considered impossible, and we did it. Here's how.

<!-- truncate -->
Expand Down Expand Up @@ -34,6 +36,7 @@ Minefield's speed and efficiency come from using Roaring Bitmaps and a direct no
**Caching with Pre-Computed Queries:** Minefield caches dependents and dependencies to enhance performance, allowing for O(1) query times. This is critical for maintaining speed in an air-gapped environment.

[![](https://mermaid.ink/img/pako:eNptkTtvhDAMx79K5PlQd4ZKPK6o0tEbaG8odDAXA5EgQXkM1em-e0NoBWrryf7b-cWPG1wVJ4ih1zgP7DVvJPNmXLsKb4b0Ki2W1Ofqwjha_NjEtK7Sc2m-FZL8F6KBROiowHkmzkohqRM08gY2QlY_y56MZbknP1zcKEljK0ZhBRnWaTWFPnZ_ZiyKHllenxRyJqRV4WmLhnZFm3esi9DKH7TS7MXPb3av8oA-_osJqae6oIViiZ0IOelWoeb78Vc3CdXZGqQ_ARxgIj2h4H7ptyXZgB1oogZi73Lq0I122c7dl6KzqvqUV4itdnQAN_vlUy7Qr3aCuMPReHVG-a7UFhMXVulyPWy47wG0cv2wYu5f4KWXlw?type=png)](https://mermaid.live/edit#pako:eNptkTtvhDAMx79K5PlQd4ZKPK6o0tEbaG8odDAXA5EgQXkM1em-e0NoBWrryf7b-cWPG1wVJ4ih1zgP7DVvJPNmXLsKb4b0Ki2W1Ofqwjha_NjEtK7Sc2m-FZL8F6KBROiowHkmzkohqRM08gY2QlY_y56MZbknP1zcKEljK0ZhBRnWaTWFPnZ_ZiyKHllenxRyJqRV4WmLhnZFm3esi9DKH7TS7MXPb3av8oA-_osJqae6oIViiZ0IOelWoeb78Vc3CdXZGqQ_ARxgIj2h4H7ptyXZgB1oogZi73Lq0I122c7dl6KzqvqUV4itdnQAN_vlUy7Qr3aCuMPReHVG-a7UFhMXVulyPWy47wG0cv2wYu5f4KWXlw)

Minefield takes a user-centric approach to vulnerability ingestion, allowing users to process data without Minefield relying on external databases, much like how Git operates offline with local repositories.

Minefield's graphing capabilities are highly optimized for performance, ensuring it can quickly handle complex vulnerability data, even in an air-gapped setup. The data must conform to the OSV (Open Source Vulnerability) schema, a widely recognized standard that promotes consistency and reliability across different data sources.
Expand Down Expand Up @@ -83,4 +86,3 @@ By focusing on an air-gapped design, Minefield offers Git-like control over vuln
With evolving security threats, Minefield offers a reliable solution for managing vulnerabilities in air-gapped environments. It's perfect for organizations needing strong security and complete data control.

To learn more about how we ingest vulnerabilities offline and to get a more hands-on experience, visit our [GitHub repository](https://github.com/bitbomdev/minefield) to get started.

Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@
slug: isolating-and-fixing-vulnerabilities-in-an-air-gapped-environment
title: Isolating and Fixing Vulnerabilities in an Air-Gapped Environment
description: How we isolated and fixed vulnerabilities in an air-gapped environment
keywords: [SBOM, dependency graphs, air-gapped, vulnerabilities]
authors: [BitBom]
tags: [air-gapped, vulnerabilities]
image: "/img/blog/air-gapped-vulnerabilities/air-gapped-vulnerabilities.png"
---

![caged-floating-island](/img/blog/air-gapped-vulnerabilities/air-gapped-vulnerabilities.png)

Isolating and Identifying Critical Vulnerabilities in under 5 minutes (coffee break ;))

<!-- truncate -->
Expand Down Expand Up @@ -135,4 +137,4 @@ Minefield uses fast, roaring bitmaps and flexible bitwise ops. It opens new ways

---

Ready to unleash the power of Minefield in your projects? Our docs explain how bitwise queries can improve your security and dependency management.
Ready to unleash the power of Minefield in your projects? Our docs explain how bitwise queries can improve your security and dependency management.
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@
slug: using-participle
title: Why We Use Participle?
description: Learn why we chose Participle and Roaring Bitmaps over GraphQL for our project.
keywords: [Participle, Roaring Bitmaps, GraphQL, SBOM, dependency graphs]
authors: [NeilNaveen, NaveenSrinivasan]
tags: [participle, roaring bitmaps]
authors: [ NeilNaveen, NaveenSrinivasan ]
tags: [ Participle, Roaring Bitmaps, GraphQL, SBOM, dependency graphs, Minefield ]
image: "/img/blog/using-participle/participle-graph.png"
---

![caged-floating-island](/img/blog/using-participle/participle-graph.png)

We chose Participle and Roaring Bitmaps over GraphQL. Here's why.

<!-- truncate -->
Expand Down Expand Up @@ -130,4 +132,3 @@ GraphQL is an incredibly useful tool for many use cases, but it wasn’t the rig
The takeaway? Always choose the right tool for the problem you’re solving. When you need something more tailored, building a custom solution can save you a lot of headaches down the road—especially when working with large, complex datasets.
If you’re interested in digging deeper into how we built Minefield’s custom DSL or have your own experiences with dependency analysis, check out our [GitHub repository](https://github.com/bitbomdev/minefield) and let us know what you think!
19 changes: 0 additions & 19 deletions blog/tags.yml

This file was deleted.

69 changes: 69 additions & 0 deletions custom-blog-plugin.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
import * as blogPluginExports from '@docusaurus/plugin-content-blog';

const defaultBlogPlugin = blogPluginExports.default;

async function blogPluginExtended(...pluginArgs) {
const blogPluginInstance = await defaultBlogPlugin(...pluginArgs);

const pluginOptions = pluginArgs[1];

return {
...blogPluginInstance,
contentLoaded: async function (params) {
const {content, actions} = params;

const recentPostsLimit = 3;
const recentPosts = [...content.blogPosts].splice(0, recentPostsLimit);

async function createRecentPostModule(blogPost, index) {
return {
metadata: await actions.createData(
`home-page-recent-post-metadata-${index}.json`,
JSON.stringify({
title: blogPost.metadata.title,
description: blogPost.metadata.description,
frontMatter: blogPost.metadata.frontMatter,
}),
),

Preview: {
__import: true,
path: blogPost.metadata.source,
query: {
truncated: true,
},
},
};
}

actions.addRoute({
path: '/',
exact: true,

component: '@site/src/components/Home/index.tsx',

modules: {
homePageBlogMetadata: await actions.createData(
'home-page-blog-metadata.json',
JSON.stringify({
blogTitle: pluginOptions.blogTitle,
blogDescription: pluginOptions.blogDescription,
totalPosts: content.blogPosts.length,
totalRecentPosts: recentPosts.length,
}),
),
recentPosts: await Promise.all(
recentPosts.map(createRecentPostModule),
),
},
});

return blogPluginInstance.contentLoaded(params);
},
};
}

module.exports = {
...blogPluginExports,
default: blogPluginExtended,
};
32 changes: 32 additions & 0 deletions demos/01_startup.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
title: Starting up Minefield
slug: starting-up-minefield
description: 'Learn how to start up Minefield'
authors: [ bitbomdev ]
tags: [ starting-up-minefield ]
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import Install from '../src/partials/_installMinefield.mdx';
import InstallScorecardCollector from '../src/partials/_installScorecardCollector.mdx';

# Starting up Minefield

Learn how to install [Minefield](https://github.com/bitbomdev/minefield)

## Installation

The installation consists of two main components:
- **Minefield**: The core engine that graphs and analyzes Software Bill of Materials (SBOM) data
- **Scorecard Downloader**: A tool to fetch OpenSSF Scorecard data for GitHub repositories (optional)

## Installing Minefield

<Install/>

## Installing Scorecard Downloader (Optional)

The Scorecard Downloader helps fetch security metrics data that can be ingested into Minefield. You can skip this step if you have your own data source.

<InstallScorecardCollector/>
Loading

0 comments on commit 8b71a4e

Please sign in to comment.