Repository navigation
Release candidate - #310
Merged
Merged
Conversation
…285) * Grab the Go IP Intelligence examples by their names in the Go repository * Grab the Go IP Intelligence examples by their names in the Go repository * Grab the Go IP Intelligence examples by their names in the Go repository * Grab the Go IP Intelligence examples by their names in the Go repository
…ice detection graph (#287)
…ation can be from the device (#293) Accurate means a location is correct. A location from an IP address can be correct and still only narrow the device down to an area, so the pages say imprecision and precise where they describe that. The property names, such as AccuracyRadiusMin, are unchanged.
* Plainer wording and small fixes across the documentation 434 changes on 137 pages from a full copy review of the documentation: plain statements in place of marketing phrases, US spelling, consistent names, and small grammar and punctuation fixes. No link target, anchor or code example changes. A few sentences that carried inline code or a link are shortened or removed, for example a note on the false positive control page about a change that is not planned. Accuracy questions and changes that need a decision are not included. * Headings in sentence case 267 headings change to sentence case, as the 51Degrees writing guide asks. Product and feature names keep their capitals, for example Device Detection, IP Intelligence, Reverse Geocoding, Human Confidence and Pipeline API. Documenting.md now asks for sentence case in place of Title Case. Only letter case changes, so anchors and links are unaffected.
…quests (#299) The preview repository's main branch has refused force pushes since the morning of 4 November, so no preview has been published since. The fallback after a failed push could never succeed, because the rebase had no committer identity, and because it sat inside an && list the step still passed and posted a link to a preview that was not there. Both workflows now push once and fail when the push is refused. The shared concurrency group already runs one push at a time. Cleanup now passes when a pull request has no preview, as happens when it closes before its preview is published, and publishing skips a pull request that has already closed, so no preview is left behind with nothing to remove it.
The search box at the top right of every documentation page called /api/search/, which no longer exists, and Enter went to /SearchResults/<q>, which now redirects to /search-results and drops the question. The box now starts hidden, and search51.js shows it only when GET /api/v1/sid/status answers ready: true. On pages that carry the 51degrees.com analytics script it asks once that script announces the cloud scripts have run, or after 12 seconds. A failed request, a response that is not OK, or no answer within 4 seconds leaves the box hidden, which is what happens on GitHub Pages where there is no assistant. Enter with at least 3 characters, once trimmed, stores the question under sidTypedQuestion in sessionStorage and opens /search-results?query=<question>. In the docs header the box grows into free space up to 30rem (480px), so a whole question fits. While hidden it keeps its space with visibility: hidden, so the header does not move when the box appears. The type-ahead results list and its markup go with the endpoint they called. The placeholder and label read "Ask a question", as the 51degrees.com assistant's own boxes do. HEADER-NOTES.md explains the hidden box.
…#295) The snippet every on-premise example page includes sent readers to the pricing page for the more capable data files. The Enterprise data file comes by contacting 51Degrees, so the snippet now says it has every property and links to the contact page. The Go IP Intelligence examples include example-require-datafile-ipi.txt, which did not exist, so their pages said nothing about the data file. The new snippet says how to download the free Lite file, which properties it gives, and where to ask for the Enterprise file.
The concurrent processing page and the version 4 upgrade page show C and C++ programs sharing a resource manager or an engine across threads, and said nothing about the results. Reading a value writes into the results, so each thread needs its own, which both pages now say.
…plans (#300) * Correct statements that no longer match the code, the service or the plans The plain wording pass held back 250 statements as questions about whether they were still true. Each was checked against the code in the language repositories, the cloud service's live answers, the pricing page, the Property Dictionary or the relevant specification. 210 needed correcting, on 86 pages. The other 40 are either right as they are or left for a decision. * Correct further statements found while checking the held ones Checking the held statements turned up 28 more faults on 31 pages, each confirmed against the code, the cloud service's live answers, the data files, the package registries or the relevant specification before it was changed. * Describe exactly how the random and hashed email match keys are made The hashed email key is SHA-256 of one byte holding the salt length, the salt, then the trimmed and lowercased email, with a salt of 2 to 64 bytes in URL-safe base64. A worked example was checked against the live service. The random key is a version 4 UUID in .NET byte order, new on every call. Each 51Did type now has its own stability rule.
Co-authored-by: James Rosewell <james@51degrees.com>
…rified by data team (#289) Co-authored-by: James Rosewell <james@51degrees.com>
Bulleted and numbered list items in documentation pages sat directly on top of each other, so a list of long items, such as Request inputs on the 51Did page, read as one block of text. Each list item after the first now has a top margin of size(-2), 0.69rem or about 11px, which is less than the 1rem after a paragraph so a list still reads as one group. The rule sits under .l-docs-index .g-docs__primary, so it reaches only lists in the page content. The side navigation is outside that element, the tabbed code snippets use buttons, and the Doxygen code fragments use div.line, so none of them change.
* Document 51degrees.com/json for support requests and scripts A new Services page explains what 51degrees.com/json returns for the request that asks: the IP address with its location and network, and the device, operating system and browser. It covers pasting the answer into a support request, calling it with curl or fetch from any website, the request limits and the redirect to the contact page over them, and what is sent to the cloud service. * The JSON page says it is throttled without giving the limits The page now says 51degrees.com/json is throttled to prevent abuse and that the throttling can change, rather than stating the number of requests, the window and the redirect, so the throttling can be changed without changing the documentation. * The JSON page gives the release years and says crawlers are refused 51degrees.com/json gives the release year of the device, operating system and browser beside each age, because an age of 0 means both released this month and could not be dated, and it refuses crawlers, curl included. The device table and the code section say so. The example answer is replaced with a fresh one once the change is live. * The JSON page opens with what it is for, support 51degrees.com/json is there so a customer can paste the details of their connection and device into a support ticket. The page now says so first, before what it returns. * The JSON page's example is a real answer from 51Degrees, and it names no other provider The example answer is now one recorded at 51Degrees on 11 November 2026 for Edge 157 on Windows 11, with only the IP address replaced, so the location fields are what the data returned. It no longer shows iscrawler, which the page no longer returns, and the text says the release years now come beside the release ages. The sentence pointing users of another IP data provider at a migration page is removed. * The JSON page says it needs a real web browser 51degrees.com/json only answers a real web browser. Curl and other command-line tools are treated as crawlers, and crawlers are now sent to the AI notice, which explains how to license the data, rather than refused. The throttling section says a crawler's request is redirected too, so code should check the response before using it. * The JSON example gives an example network name The registered name in the example answer is replaced by EXAMPLE-NETWORK, as the IP address is replaced by one reserved for documentation, and the sentence above the example says so. * The JSON page's fetch example handles a redirect, and its example location is an example A request that is throttled, or that comes from a crawler, is redirected to a page that sends no Access-Control-Allow-Origin header, so a call from another site fails before the response can be read. The example now catches that and checks response.redirected as well as response.ok. The example answer's town and coordinates are replaced by example values, as the IP address and network name already were, and the sentence above it says so. * The JSON page's sample answer carries the release years The sample was recorded before 51degrees.com/json gave releaseyear, platformreleaseyear and browserreleaseyear. It is now the live answer of 11 November 2026 for the most common Edge 157 on Windows browser string, sent without Client Hints, with the IP address, town, position and network name still replaced by examples. Its sentence says the browser string alone can't tell Windows 10 from Windows 11, and that the data can't yet date Edge 157, so its release year is 0. * The JSON page's sample is a real Windows 11 answer with its release years The sample is now the answer 51degrees.com/json gave a computer at 51Degrees running Edge 157 on Windows 11 on 11 November 2026, with its Client Hints, so the platform is Windows 11.0 (released 2021) rather than the 10.0 a browser string alone gives. Both other release years are 0, because the data can't yet date Edge 157 and a desktop doesn't say who made it, and the sentence above the sample says so. The IP address, town, position and network name stay replaced by examples. * The JSON page gives both reasons for a release year of 0 The table's note said a release year of 0 means the request did not carry enough to tell, while the sample's browserreleaseyear is 0 for Edge 157, a version the request did identify. The note now also says a release year is 0 where the data has no release date for a version it did identify, as the sentence above the sample already does. The sentence above the sample called the town and position examples, but Reading at 51.454, -0.978 is a real town and position. It now says they were replaced by a position in Reading, and that the network's registered name was replaced by an example.
Contributor
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Release candidate for the documentation:
rcintomain.What it brings
src/services/json.md), for https://51degrees.com/json, listed last on the Services index. A customer opens 51degrees.com/json in the browser that is giving them trouble and pastes the answer into a support request. The page shows an example answer, describes each key, explains calling it withfetch, and says it is free and throttled.Timing
A 51degrees.com blog post about the JSON page is scheduled for 11:00 UK on Thursday 12 November and links to it, at https://51degrees.com/documentation/_services__json.html. The page goes live after this merges into
mainand the Build Documentation run that follows finishes. The 51degrees.com release the page depends on is already live, because on 11 November https://51degrees.com/json answered with the release years the page describes.The last release from
rcintomainwas #301, merged on 6 November at 14:57 UTC.Checks
This repository has no build of its own on a pull request beyond the Preview Documentation build and the link checks, which run on this pull request. Both drafts above passed them on their own heads before merging into
rc.