# digitalrealty — Digital Realty facilities | | | |---|---| | Config | `config/connectors/digitalrealty.yaml` | | Parser | `apps/worker/src/connectors/operators1/digitalrealty.ts` → `digitalrealty_facility_v1` | | Kind / priority | operator / 1 | | License / attribution | Publicly accessible operator pages; factual data only; © Digital Realty Trust, Inc. | | Cadence | facility pages weekly · newsroom daily · index monthly · sitemap weekly | ## What is crawled - Sitemap `https://www.digitalrealty.com/en-sitemap.xml` only (the root index lists 6 locale mirrors — de/fr/es/ko/zh/it — of the same facilities). - Facility pages `/data-centers///` (259), metro pages `/data-centers//` and region pages → `index`. - Press releases `/about/newsroom/press-releases//` (503) → `newsroom` (GenericConnector news fallback; no RSS exists — `/rss.xml`, `/feed`, `/about/newsroom/rss.xml` are 404). - robots.txt disallows `/taxonomy/`, `/node/` only. ## Access Open site; bot UA at L1 works (0 credits). `maxLevel: 4` kept for resilience, `maxCreditsPerRun: 40`. ## Fields (method) The page is Next.js; `__NEXT_DATA__.props.pageProps.data` is the Drupal node (`content_type: "location"`): - `code` ← `field_site_code_location` (IAD12, FRA1, JB1+JB3); `name` ← `h1.hero-title` ("Northern Virginia IAD12"). - `address`/`city`/`regionName`/`postalCode` ← `field_address_location` parsed (NA "…, Ashburn, VA 20147"; EU "…, 60314 Frankfurt am Main, Germany" / "…, Vienna, 1210, Austria"). City falls back to `metro` when the address has no city (except market names like "Northern Virginia"). - `countryIso2` ← `country` ("USA", "Germany"); fallback address, then intro/description text (BOG1 has `country: "Bogota"` — junk in the source). - `lat`/`lng` ← `field_latitude` / `field_longitude` → `exact`. - `buildingSqm` ← `field_total_building_size_in_m2` (or ft² × 0.0929). - `pue` ← `field_design_pue`; `certifications` ← `field_certifications_compliance[].name` + `field_certifications_sustainabil[].name`; `cloudProviders` ← `field_available_clouds[].name` ("(Physical)" suffix stripped). - `renewableClaim` ← `field_carbon_free_energy` / `field_renewable_energy` percentages, phrased "45% carbon-free energy; 5% renewable energy (operator-reported)". - `description` ← `field_meta_tags.description` + "UPS redundancy: 2N. Cooling redundancy: N+1." - **Not used:** `field_utility_power_capacity` — units are inconsistent across pages (16000 for IAD12 vs 120 for FRA1), so no MW is emitted rather than guessing. - Key `digitalrealty:`; `externalIds.digitalrealty_node`, `digitalrealty_site_code`. ## Verification (2026-09-11) - Discovery: 826 URLs → `facility_pages=259`, `newsroom=502`, `index=65`. - `--url` IAD12: 43881 Devin Shafron Drive (Bldg B), Ashburn, VA 20147, US, geo 39.00203/-77.48344, 13,900 m², PUE 1.56, 7 certifications incl. LEED Gold — matches the live page. - `--url` FRA1: Hanauer Landstrasse 302, 60314 Frankfurt am Main, DE, geo 50.11951/8.73549, 1,100 m², clouds Azure/Google/IBM/Oracle. - Sweep of 8 spread pages (PAR13, BOG1, CT1, FRA14, JB1+JB3, MIA10, SFO10, VIE2): 8/8 valid, all with coordinates + building size. Newsroom sample 4/4 valid news events. Credits: 0. ## Gaps / TODO - BOG1: country still null (source says "Bogota"; intro text has no country name) — ingest can resolve from coordinates. - No MW per facility (see utility field note).