PageSourceSearch

https://gravelai.com/assets/RawDataCompliance-De3gMSMV.js

js gravelai.com collected 2026-10-05 07:20:29 UTC 7,427 bytes, 1 lines download raw bytes

1import{j as e,m as r}from"./vendor-motion-citCm7-q.js";import{L as n}from"./vendor-react-DmFz3mBK.js";import{R as l}from"./RawDataSubnav-65jlEx5C.js";import{u as o}from"./index-CPUZQMI5.js";import{u as c}from"./useToolSchema-DJ9S6sY6.js";import{f as s,u as d,G as m,V as x,Y as a,z as p,A as u}from"./vendor-icons-77V4Q2o-.js";import"./vendor-query-Dlig3omR.js";const h=[{icon:d,title:"Full source audit trail per record",body:"Every product record in Gravel's datasets is tied to a specific retailer source URL + snapshot date + Gravel processing pipeline ID. Any metric downstream can be traced back to the source page + date it was captured. Enterprise procurement + internal audit teams can verify per-record provenance."},{icon:m,title:"GDPR + CCPA + UK GDPR aware sourcing",body:"Gravel's data collection covers only publicly-listed retailer product catalogues + brand product pages. No personal data, no consumer PII, no scraping of authenticated user content. GDPR + CCPA + UK GDPR-compliant sourcing methodology documented + shared under NDA for enterprise procurement review."},{icon:x,title:"MFDS + NMPA regulatory context",body:"Korean MFDS (Ministry of Food + Drug Safety) + Chinese NMPA (National Medical Products Administration) filing metadata linked where publicly available — supports regulatory compliance research + market entry due diligence for R&D + Regulatory Affairs teams."},{icon:a,title:"INCI accuracy + reformulation tracking",body:"INCI ingredient lists parsed with our proprietary chemistry taxonomy — trade-name resolution, common misspellings normalised, ingredient function tagged. Reformulation detection compares monthly snapshots + flags per-SKU ingredient changes. Reduces internal QA burden for R&D + Regulatory teams."},{icon:s,title:"Zero-scraping-noise guarantee",body:"Unlike generic web scraping services (Bright Data, Zyte, ScraperAPI), Gravel's output is human-audited + beauty-domain-cleaned before delivery. No malformed HTML, no bot-blocked partial data, no missing INCI lists. What you receive is fit-for-training, not raw scrape exhaust."},{icon:p,title:"Enterprise data delivery security",body:"Snowflake Secure Data Share, KMS-encrypted S3 sync, HMAC-signed webhook payloads, OAuth 2.0 API access. SOC 2 controls documented under NDA. All delivery methods support row-level access controls + audit logging. VPC-peered options for enterprise deployments."}];function v(){return o({canonicalPath:"/raw-data/compliance",title:"Compliance + Trust — Beauty Data Sourcing + Audit Trail | Gravel Raw Data",description:"Gravel Raw Data compliance — full source audit trail per record, GDPR/CCPA/UK GDPR-aware sourcing, MFDS/NMPA regulatory context, INCI accuracy, zero-scraping-noise guarantee, SOC 2 delivery security."}),c([{name:"Home",item:"https://gravelai.com/"},{name:"Raw Data Service",item:"https://gravelai.com/raw-data"},{name:"Compliance",item:"https://gravelai.com/raw-data/compliance"}]),e.jsxs("div",{className:"min-h-screen bg-white",children:[e.jsx(l,{}),e.jsx("section",{className:"py-16 border-b border-gray-100",children:e.jsx("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 text-center",children:e.jsxs(r.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.6},children:[e.jsxs("span",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-[#7ECFB3]/10 text-[#1a9a7a] text-sm font-semibold mb-5 border border-[#7ECFB3]/20",children:[e.jsx(s,{className:"w-3.5 h-3.5"})," Compliance + Trust"]}),e.jsx("h1",{className:"text-4xl lg:text-5xl font-bold text-[#1a1a2e] mb-4 leading-tight",children:"Beauty Data You Can Defend in an Audit"}),e.jsx("p",{className:"text-lg text-gray-500 max-w-2xl mx-auto",children:"Every Gravel Raw Data record is source-linked, taxonomy-audited, and delivered with enterprise security controls. Built for beauty teams whose internal procurement, legal + ESG teams require defensible sourcing."})]})})}),e.jsx("section",{className:"py-16",children:e.jsx("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsx("div",{className:"grid md:grid-cols-2 gap-6",children:h.map((t,i)=>e.jsxs(r.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:i*.05},className:"bg-white rounded-2xl border-2 border-gray-100 p-7 hover:border-[#7ECFB3] transition-all",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-11 h-11 rounded-xl bg-[#7ECFB3]/10 mb-5",children:e.jsx(t.icon,{className:"w-5 h-5 text-[#1a9a7a]"})}),e.jsx("h3",{className:"text-lg font-bold text-[#1a1a2e] mb-3",children:t.title}),e.jsx("p",{className:"text-gray-600 text-sm leading-relaxed",children:t.body})]},t.title))})})}),e.jsx("section",{className:"py-16 bg-gray-50 border-y border-gray-100",children:e.jsx("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsxs(r.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},children:[e.jsx("h2",{className:"text-2xl font-bold text-[#1a1a2e] mb-6",children:"Documents available under NDA"}),e.jsxs("div",{className:"space-y-3 text-gray-600 text-sm leading-relaxed",children:[e.jsx("p",{children:"Enterprise procurement + legal teams typically request the following as part of vendor onboarding. Available under mutual NDA — request via demo booking:"}),e.jsxs("ul",{className:"space-y-2 mt-4",children:[e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(a,{className:"w-4 h-4 text-[#1a9a7a] mt-0.5 flex-shrink-0"})," ",e.jsx("span",{children:"Data Processing Agreement (DPA) template — GDPR / CCPA / UK GDPR aligned."})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(a,{className:"w-4 h-4 text-[#1a9a7a] mt-0.5 flex-shrink-0"})," ",e.jsx("span",{children:"Sourcing methodology + robots.txt compliance statement."})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(a,{className:"w-4 h-4 text-[#1a9a7a] mt-0.5 flex-shrink-0"})," ",e.jsx("span",{children:"SOC 2 controls documentation (in progress; timeline shared under NDA)."})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(a,{className:"w-4 h-4 text-[#1a9a7a] mt-0.5 flex-shrink-0"})," ",e.jsx("span",{children:"Data schema + versioning policy."})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(a,{className:"w-4 h-4 text-[#1a9a7a] mt-0.5 flex-shrink-0"})," ",e.jsx("span",{children:"Incident response + data quality SLA."})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(a,{className:"w-4 h-4 text-[#1a9a7a] mt-0.5 flex-shrink-0"})," ",e.jsx("span",{children:"Vendor security questionnaire responses (CAIQ / SIG-format on request)."})]})]})]})]})})}),e.jsx("section",{className:"py-20 bg-[#1a1a2e]",children:e.jsxs("div",{className:"max-w-3xl mx-auto px-4 text-center",children:[e.jsx("h2",{className:"text-3xl font-bold text-white mb-5",children:"Need our compliance documentation?"}),e.jsx("p",{className:"text-gray-400 mb-8",children:"Book a demo — we'll walk your procurement + legal team through Gravel's sourcing, security + governance stack."}),e.jsxs(n,{to:"/BookDemo",className:"inline-flex items-center px-10 py-4 rounded-full bg-gradient-to-r from-[#7ECFB3] to-[#8B8FD8] text-white font-semibold hover:shadow-2xl hover:scale-105 transition-all",children:["Book a Demo ",e.jsx(u,{className:"ml-2 w-5 h-5"})]})]})})]})}export{v as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.