Skip to main content

Crate gatekpr_patterns

Crate gatekpr_patterns 

Source
Expand description

Shopify App Approver - Pattern Matching Library

This crate provides a centralized pattern registry and pre-built pattern sets for validating Shopify apps against approval requirements.

§Overview

The crate is organized into:

  • registry: Core pattern registry with compile-once regex management
  • api: Patterns for GraphQL/REST API detection and deprecated endpoints
  • security: Patterns for security vulnerabilities and hardcoded secrets
  • webhooks: Patterns for GDPR webhook compliance
  • billing: Patterns for Shopify Billing API and third-party payment detection

§Example

use gatekpr_patterns::{
    api::check_api_usage,
    security::find_security_issues,
    webhooks::check_gdpr_webhooks,
    billing::check_billing_compliance,
};

let code = r#"
    const client = new AdminGraphqlClient();
    const result = await client.query({ data: gql`query { shop { name } }` });
"#;

let api_status = check_api_usage(code);
assert!(api_status.uses_graphql);

let security = find_security_issues(code);
assert!(!security.has_issues());

§Pattern Sets

Each domain module provides:

  • A Lazy<PatternRegistry> with pre-compiled patterns
  • Pattern key constants for easy reference
  • Helper functions for common checks
  • Status structs with compliance evaluation

Re-exports§

pub use api::check_api_usage;
pub use api::ApiUsageStatus;
pub use api::DEPRECATED_KEYS;
pub use api::GRAPHQL_KEYS;
pub use api::REST_KEYS;
pub use billing::check_billing_compliance;
pub use billing::BillingStatus;
pub use billing::SHOPIFY_BILLING_KEYS;
pub use billing::THIRD_PARTY_PAYMENT_KEYS;
pub use registry::PatternError;
pub use registry::PatternMatch;
pub use registry::PatternRegistry;
pub use registry::PatternSet;
pub use registry::Result;
pub use security::find_security_issues;
pub use security::SecretMatch;
pub use security::SecurityIssues;
pub use security::DANGEROUS_FUNCTION_KEYS;
pub use security::HARDCODED_SECRET_KEYS;
pub use security::HTTP_URL_KEYS;
pub use webhooks::check_gdpr_webhooks;
pub use webhooks::GdprWebhookStatus;
pub use webhooks::GDPR_WEBHOOK_KEYS;
pub use webhooks::WEBHOOK_SECURITY_KEYS;

Modules§

api
API-related patterns for Shopify API usage detection
billing
Billing-related patterns for Shopify Billing API compliance
registry
Pattern registry for managing compiled regex patterns
security
Security-related patterns for vulnerability detection
webhooks
Webhook-related patterns for Shopify validation

Structs§

ComplianceReport
Comprehensive compliance report

Functions§

check_all_compliance
Run all compliance checks at once