-
Notifications
You must be signed in to change notification settings - Fork 0
fix(deploy): rename hardened Kubernetes manifest to wardnet.yaml #144
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
seonghobae
wants to merge
20
commits into
main
Choose a base branch
from
fix/kubernetes-manifest-path-20260901
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
Show all changes
20 commits
Select commit
Hold shift + click to select a range
f25e0ac
test(deploy): require Wardnet Kubernetes manifest path
seonghobae cec889c
chore: abandon incomplete manifest-path experiment
seonghobae e06d569
test(deploy): require canonical Wardnet manifest path
seonghobae 10bf291
fix(deploy): move hardened manifest to canonical Wardnet path
seonghobae 3bc9fe7
fix(commercial): publish canonical Wardnet manifest path
seonghobae 57386f0
test(deploy): distinguish migration history from stale manifest refer…
seonghobae 6cd0b16
test(deploy): narrow legacy manifest path exemptions
seonghobae 6ced885
docs: make Wardnet README product-first
seonghobae e6518b5
docs: add public Pages landing source
seonghobae b9eb18c
test(deploy): keep stale-path fixture self-scannable
seonghobae 170d906
test(docs): reject broken repository links from Pages landing
seonghobae deba232
docs: replace unpublished gap-baseline link
seonghobae 4b9869f
docs: remove stale Kubernetes path literal
seonghobae 4ab1e8a
style(tests): apply rustfmt to documentation landing contract
seonghobae 8fd2461
style(tests): apply rustfmt to Kubernetes path contract
seonghobae a76c641
test(docs): expose unsafe landing-link handling
seonghobae 9616b94
fix(docs): validate landing links within repository
seonghobae b07e4d2
fix(test): own Kubernetes path scan results
seonghobae 8d656d3
test(deploy): satisfy Rust 1.98 clippy contract
codex 04692b2
merge(main): adopt protected workflow controls for path migration
seonghobae File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,32 @@ | ||
| --- | ||
| title: Wardnet | ||
| --- | ||
|
|
||
| # Wardnet | ||
|
|
||
| Wardnet is a Rust-first gateway and security-operations control plane for governed traffic policy, threat evidence, DNSBL operations, request enforcement, and operator handoff. | ||
|
|
||
| [](https://deepwiki.com/ContextualWisdomLab/wardnet) | ||
|
|
||
| ## Start here | ||
|
|
||
| Use the [repository README](https://github.com/ContextualWisdomLab/wardnet#readme) for the current product boundary, maturity, local quick start, management APIs, deployment guidance, and verification posture. Wardnet deliberately does not present its current source as a complete hardened WAF, IDS, SIEM, or SOAR. | ||
|
|
||
| ## Product responsibility | ||
|
|
||
| Wardnet owns its gateway and SOC control-plane surface: route policy, current local threat and DNSBL evidence, request scoring and enforcement mode, operational evidence, support handoff, and bounded management APIs. Proven external WAF/IDS engines, SIEM and telemetry destinations, threat-intelligence providers, model routing, identity, TLS, secrets, and deployment topology remain independently authoritative. | ||
|
|
||
| ## Documentation | ||
|
|
||
| - [README](https://github.com/ContextualWisdomLab/wardnet#readme) — product overview, quick start, maturity, security and verification. | ||
| - [Architecture](https://github.com/ContextualWisdomLab/wardnet/blob/main/docs/architecture.md) — system boundaries and integration responsibilities. | ||
| - [Buyer due diligence](https://github.com/ContextualWisdomLab/wardnet/blob/main/docs/commercial/buyer-due-diligence.md) — current buyer-facing evidence surfaces and their verification boundaries. | ||
| - [Operations](https://github.com/ContextualWisdomLab/wardnet/tree/main/docs/runbooks) — operator and recovery guidance. | ||
| - [Releases](https://github.com/ContextualWisdomLab/wardnet/releases) — immutable release evidence when published. | ||
| - [Ask DeepWiki](https://deepwiki.com/ContextualWisdomLab/wardnet) — repository-grounded navigation and questions. | ||
|
|
||
| ## Evidence boundary | ||
|
|
||
| A source version, readiness endpoint, passing test, support bundle, or open pull request is not by itself a production deployment, certification, customer adoption, or published release. Repository-facing claims should remain bound to protected source and the applicable immutable release, deployment, and verification evidence. | ||
|
|
||
| This file is a GitHub Pages source prerequisite. Its presence does not mean GitHub Pages is published; publication is complete only after repository settings are reconciled, deployment succeeds, and the live HTTPS site is verified. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,75 @@ | ||
| //! Repository contract for links published by the GitHub Pages landing source. | ||
|
|
||
| use std::fs; | ||
| use std::path::{Component, Path}; | ||
|
|
||
| const REPOSITORY_ROOT_README_URL: &str = "https://github.com/ContextualWisdomLab/wardnet#readme"; | ||
| const REPOSITORY_BLOB_PREFIX: &str = "https://github.com/ContextualWisdomLab/wardnet/blob/main/"; | ||
| const REPOSITORY_TREE_PREFIX: &str = "https://github.com/ContextualWisdomLab/wardnet/tree/main/"; | ||
|
|
||
| fn repository_target(target: &str) -> Option<(&str, bool)> { | ||
| if target == REPOSITORY_ROOT_README_URL { | ||
| Some(("README.md", false)) | ||
| } else if let Some(relative) = target.strip_prefix(REPOSITORY_BLOB_PREFIX) { | ||
| Some((relative, false)) | ||
| } else if let Some(relative) = target.strip_prefix(REPOSITORY_TREE_PREFIX) { | ||
| Some((relative, true)) | ||
| } else { | ||
| None | ||
| } | ||
| } | ||
|
|
||
| fn validated_repository_relative_path(relative: &str) -> &Path { | ||
| let path = Path::new(relative); | ||
| let stays_inside_repository = !path.is_absolute() | ||
| && path | ||
| .components() | ||
| .all(|component| matches!(component, Component::Normal(_) | Component::CurDir)); | ||
| assert!( | ||
| stays_inside_repository, | ||
| "Pages landing repository link must stay inside repository: {relative}" | ||
| ); | ||
| path | ||
| } | ||
|
|
||
| #[test] | ||
| fn repository_root_readme_target_is_checked() { | ||
| assert_eq!( | ||
| repository_target(REPOSITORY_ROOT_README_URL), | ||
| Some(("README.md", false)) | ||
| ); | ||
| } | ||
|
|
||
| #[test] | ||
| #[should_panic(expected = "must stay inside repository")] | ||
| fn repository_link_rejects_parent_escape() { | ||
| let _ = validated_repository_relative_path("../outside.md"); | ||
| } | ||
|
|
||
| #[test] | ||
| fn pages_landing_repository_links_resolve_in_source_tree() { | ||
| let repository = Path::new(env!("CARGO_MANIFEST_DIR")); | ||
| let landing = fs::read_to_string(repository.join("docs/index.md")) | ||
| .expect("docs/index.md must remain readable as the Pages landing source"); | ||
|
|
||
| for target in landing | ||
| .split("](") | ||
| .skip(1) | ||
| .filter_map(|candidate| candidate.split(')').next()) | ||
| { | ||
| if let Some((relative, is_directory)) = repository_target(target) { | ||
| let candidate = repository.join(validated_repository_relative_path(relative)); | ||
| if is_directory { | ||
| assert!( | ||
| candidate.is_dir(), | ||
| "Pages landing links to a missing repository directory: {relative}" | ||
| ); | ||
| } else { | ||
| assert!( | ||
| candidate.is_file(), | ||
| "Pages landing links to a missing repository file: {relative}" | ||
| ); | ||
| } | ||
| } | ||
| } | ||
| } |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.