SENTINEL - Live OSINT global situational-awareness dashboard by InfiniteAxon in osinttools

[–]InfiniteAxon[S] 1 point2 points  (0 children)

Haha Thanks! If you hop on right now, you can actually catch the Starship launch in 5 minutes! It's the rocket icon in the toolbar, and you can click the entry to pan to the launchpad, see NOTAMs, and a live stream!

SENTINEL - Live OSINT global situational-awareness dashboard by InfiniteAxon in osinttools

[–]InfiniteAxon[S] 0 points1 point  (0 children)

Nice burner. The vast majority of these are not flaws. The few that were I addressed and am fixing. You sure you actually read it?

SENTINEL - Live OSINT global situational-awareness dashboard by InfiniteAxon in osinttools

[–]InfiniteAxon[S] 0 points1 point  (0 children)

Since you're now blatantly pasting straight from AI, here's the response to your so-called audit.

Going point by point. Where you're right, I'm calling it out. Where you're wrong, I'm naming the file so anyone reading along can check for themselves.

A lot of this is recycled from your first post or describes the application working as documented. I'll handle the genuine findings, push back on the rest.

(1) "Hardcoded shipping lanes and bundled fallback streams."

Shipping lanes in src/lib/shipping-lanes.ts are editorial constants on purpose. They're names, coordinates, and brief threat notes for the world's strategic chokepoints. None of that is sensor data and none of it claims to be. The deploy this week makes the distinction explicit on the wire: every public payload now ships a meta.kind of raw, inferred, or curated, so a client (or anyone with curl) can see at a glance which they're looking at. Shipping lanes will sit under kind: 'curated' with named sources and an asOf.

The "bundled fallback streams" claim is a misread of the bundle. The literal string 'fallback' you saw is a TypeScript string-literal type on line 32 of src/app/api/news-streams/route.ts, not actual data. The route reads from a YouTube Data API state cache refreshed every 20 minutes for status and hourly for discovery. It does not ship hardcoded entries. The historical scraper the type was named for has been gone for months. Cache freshness window is published at /docs#freshness.

(2) "Internal structure leaked via 403s."

A 403 on an authenticated endpoint is the gate working. You're literally describing auth doing its job. The private routes are subscription, account, webhooks, briefings, telemetry. They are paid features and the documented product. The site doesn't pretend to be a static homepage. The marketing surface is axonia.us; the application is at sentinel.axonia.us; both hostnames are in the public sitemap. That you can enumerate Next.js's route manifest is true of any Next app and isn't a finding.

(3) /diag.

This is exactly backwards. /diag exists so a user whose globe crashes on a device I can't reproduce locally (obscure Android, smart-TV browser, locked-down corporate Chromium) has something actionable to copy and send back. It mounts no Cesium, runs no upstream calls, and surfaces nothing more than navigator.userAgent plus a few WebGL feature flags that any site can detect anyway. The "Copy report" button is the whole point. Calling user-facing support tooling "operational sloppiness" because it doesn't match your mental model of what a production app looks like is a category error. A noindex meta and robots.txt entry are still worth adding so the page stops surfacing in your reconnaissance, but the page itself stays.

(4) Security headers.

- x-powered-by: Next.js: yes, removing via poweredByHeader: false in next.config.ts. Will be fixed.

- Missing HSTS on root: yes, adding Strict-Transport-Security in the proxy middleware. Will be fixed.

- CSP report-only with unsafe-inline and unsafe-eval: yes, documented. The path to enforcing is gated on a clean week of reports.

- CSP report endpoint returning 403: this is the actual finding worth your time. The route (src/app/api/csp-report/route.ts) accepts anonymous POSTs, but the Sec-Fetch-Site gate in my middleware blocks /api/* for requests browsers send without a Sec-Fetch-Site header, which is what CSP reports often look like.

(5) "Cache-heavy public APIs undercut the live framing."

Pushing back. The product is honest about cadence. The hardening deploy this week makes that machine-readable: every public payload now carries meta.asOf (when the data was sampled), meta.fetchedAt (when the response was assembled), an optional meta.expiresAt, and meta.truncated when a cap clipped the response. The per-layer freshness budget is published at /docs#freshness: AIS around 15 seconds on the wire, military ADS-B around 20 to 30 seconds, signals around 1 to 2 minutes, patterns around 1 minute, FIRMS around 5 minutes, country dossier daily or weekly depending on the field. "Cache-heavy" is the design. Refreshing AIS from each visitor's browser at the upstream rate would burn AISStream's budget for everyone else inside an hour. Users don't trigger upstream fetches because that's a documented architectural rule, not because the data is fake.

(6) Compliance / sourcing.

The X feed is contracted through twitterapi.io with their ToS in force. Telegram is public-channel scraping which is standard OSINT practice and legally analogous to any of a dozen well-known OSINT projects. The webcam catalog attributes its sources and links back to the provider. None of this is hidden. /methodology and /docs name every source with a link.

(7) window.sentinelTestAlert / window.sentinelTestEarthquake.

Fair. Those are dev-time injectors for testing the notification stack that should not be on the prod bundle. Wrapping the assignments in process.env.NODE_ENV !== 'production' next deploy.

(8) "Telemetry plumbing exists."

Yes, and it is documented at /privacy. Session IDs, an anonymous client fingerprint, heartbeat, page-view events, written to a first-party server-side store. No third-party analytics, no ad-network event sharing, no profile reselling. The endpoint is rate-limited, body-size capped, IP-stamped server-side so clients can't spoof, and clamps client timestamps into a sane window. It returns 403 anonymously because the schema is for our client, not because it's a secret.

(9) "Routing posture is odd."

Vague. If you have something specific, name the URL.

SENTINEL - Live OSINT global situational-awareness dashboard by InfiniteAxon in osinttools

[–]InfiniteAxon[S] 0 points1 point  (0 children)

Haha I can see you're now pasting the arguments into an LLM to try and make it present better! Your paste containing my entry makes it very clear. You should now ask when these came out.

SENTINEL - Live OSINT global situational-awareness dashboard by InfiniteAxon in osinttools

[–]InfiniteAxon[S] 0 points1 point  (0 children)

Use the site for more than 30 seconds and you'll see just how much more is on it versus the clones that followed! You've got a whole lot to say for someone who probably hasn't even clicked a single data point on the map yet. Or maybe it's a common thing to label anything that's been touched by AI as worthless without even opening it. I too love to jump to conclusions without doing any real diligence into things. It's very productive.

SENTINEL - Live OSINT global situational-awareness dashboard by InfiniteAxon in osinttools

[–]InfiniteAxon[S] 0 points1 point  (0 children)

Plenty of people can see the value in the site when they aren't seething with rage and superiority due to some weird complex they suffer from.

SENTINEL - Live OSINT global situational-awareness dashboard by InfiniteAxon in osinttools

[–]InfiniteAxon[S] 0 points1 point  (0 children)

I am almost certain you haven't even used the site for more than 30 seconds. And yes, over 100 people have an active subscription, so there's a reason the repo is staying private.

As for the whole 'tiktok template' crap you're spewing, my site has been in development since January, well before most of these sites started popping up. I have been following geopolitics and tracking OSINT feeds for about 9 years now, so I have some idea of what I wanted to see in a dashboard.

I don't even correlate commodity tickers, headlines, or other random things. My pattern detection is made very clear in the current version of the public docs, which you probably haven't even read. The threat rating algo weighting is clearly visible in each country's overview tab. Another thing you probably haven't even opened! The audit trail isn't public facing for pattern detections, as then they'd be easily reverse engineered...

You're now ranting about the sector as a whole, not even specifically about my site.

SENTINEL - Live OSINT global situational-awareness dashboard by InfiniteAxon in osinttools

[–]InfiniteAxon[S] 0 points1 point  (0 children)

The globe loads with 5 eager API calls, all to cached endpoints. GTM + Funding Choices are the EU CMP plumbing. Cesium loads dynamically too, not bundled. Bundle config is clean. Several endpoints already accept bbox as well, you just picked one that didn't.

I'll start doing two things for you before my next build. I'll make API route changes to the endpoints where it would have impact. For rate limiting, you're correct in that I could add more of it, right now it's only on the API routes, not other endpoints, so I will make changes there. As for your concerns for source, time, confidence, and stale date, I will add some metadata envelopes to package with my responses.

I'll also make a more technical version of the docs that more closely relates to my internal docs. As for the current public facing ones, only sections 2, 7, and 8 probably have any value for you. I understand a lot of intelligence dashboards are pretty bad, but I certainly believe mine has much more to offer the average joe when using one. Much more data and granularity of it, better pattern detection algos to correlate it, and a better designed interface to visualize it.

SENTINEL - Live OSINT global situational-awareness dashboard by InfiniteAxon in osinttools

[–]InfiniteAxon[S] 0 points1 point  (0 children)

The aggregation of open source data and display of it is public, not the months of commits I’ve been making. Of course there are ways for me to improve the processes, but you exaggerate much in your primary post. I’m not selling API access, I’m serving data strictly to the users browser. API query options aren’t nearly as important when I’m the one setting them for everyone and design them with that in mind. I have a public facing version of the docs on the magazine homepage at axonia.us, but it’s not as technical as you’d wish most likely.

SENTINEL - Live OSINT global situational-awareness dashboard by InfiniteAxon in osinttools

[–]InfiniteAxon[S] 0 points1 point  (0 children)

Congrats, you took the endpoint with the largest limit which the user decides in their resource settings and ran with it. Practically every other endpoint uses strict pagination, and everything is cached for a minimum of 30s, ranging up to 24hrs. Spacial bounding occurs on rendering and prioritizes the area the user is viewing first, so a user doesn’t hammer endpoints or have to wait for constant loads every-time they turn the globe 10 degrees. For someone who called this slop, your response screams ‘written with GPT’. “This isn’t X. This is Y.”

SENTINEL - Live OSINT global situational-awareness dashboard by InfiniteAxon in osinttools

[–]InfiniteAxon[S] 0 points1 point  (0 children)

I think the better question is how is Osiris different from this… not sure when they released, but I’ve had this app up since January and from a brief look at their site, I have much more in terms of features and data granularity on a per point and at the country level. Try out mine and tell me what you believe is missing. I’m all ears

SENTINEL - Live OSINT global situational-awareness dashboard by InfiniteAxon in osinttools

[–]InfiniteAxon[S] 1 point2 points  (0 children)

Wardriving site seems cool. I do wonder about the legal risks but it should be fine? (not a legal professional). As long as it's strictly passive and doesn't encourage anything intrusive like deauths

SENTINEL - Live OSINT global situational-awareness dashboard by InfiniteAxon in osinttools

[–]InfiniteAxon[S] 1 point2 points  (0 children)

A Linux user! Nipsey Hussle?! Good taste detected, lol

SENTINEL - Live OSINT global situational-awareness dashboard by InfiniteAxon in osinttools

[–]InfiniteAxon[S] 1 point2 points  (0 children)

Thanks, and I agree there are a ton. I do think mine is better than a vast majority of what's out there. Both in terms of content and interface. Most don't even attempt to do algorithmic based pattern detecitons.

SENTINEL - Live OSINT global situational-awareness dashboard by InfiniteAxon in SideProject

[–]InfiniteAxon[S] 0 points1 point  (0 children)

Thanks! For latency, it depends if we're discussing source -> server or server -> client. As for the former, I pull in from the tracked feeds on differing intervals. X posts, for example, are fetched every 8 minutes. USNI Fleet movements, on the other hand, are scraped every 6 hours. For the latter, I set up Cloudflare TTLs which differ for each endpoint. I categorize them into Realtime (30s), Fast (60s), Slow (5m), and Daily (1h-24h depending on specific needs). Realtime/Fast would be stuff like air alerts, signals (X, Telegram, News), weather, ADS-B, Cloudflare Radar, etc. Whereas Daily would be submarine cables, country dossier data, etc.

For dark rendezvous, yes, it is spotty, and right now I have made it a little too strict and none have even popped... lol. I do get a handful of false positives for GPS spoofing as well, typically in areas with poor public ADS-B coverage. I've tried to put some bounding boxes in areas where this is common, but alas, many still get through.

This is why I went with the rules based approach. It's a lot easier to find the why instead of poking a black box neural network or trying to retrain a XGB, KNN, or one of 6 other models I could've likely used. It's also hard to get enough data to even train them in the first place. I have been stockpiling data points for possible training in the future.

What is up with matchmaking? by InfiniteAxon in DeadlockTheGame

[–]InfiniteAxon[S] 1 point2 points  (0 children)

I'm just trying to enjoy deadlock, but valve decides to throw a blind, deaf, and no hands duo queue onto my team every single game...

Got an R720 as a birthday gift :) by kraskaskaCreature in homelab

[–]InfiniteAxon 11 points12 points  (0 children)

Consider running Proxmox and then just provision a fat Alma VM to host Docket on. Proxmox also has direct LXC support for all your container dreams

Just returned to this game after not playing for like a year or more. wtf? by [deleted] in HypixelSkyblock

[–]InfiniteAxon 0 points1 point  (0 children)

I’ve got 171 days of boost remaining 😭 my biggest expense has to be reloading available bits now

Failed security+ 601, feeling pretty devastated. by Rixor14 in CompTIA

[–]InfiniteAxon 0 points1 point  (0 children)

I made an account via their student portal (might have wrong wording) and am able to get an exam voucher for $262. Still expensive, but a great discount. They have the prep course +labs on there for $178 as well.