Skip to content
@source-cooperative

Source Cooperative

Source Cooperative is a data publishing utility that allows trusted organizations and individuals to share data products using standard HTTP methods.

Source Cooperative: A Neutral, Non-Profit Data-Sharing Utility

Source Cooperative is a platform designed to facilitate data sharing and collaboration. It provides a robust infrastructure for managing repositories, user accounts, and data connections, enabling efficient and secure data exchange.

The project consists of two main components:

  1. A web application (source.coop) that serves as the user interface and API for managing repositories and accounts.
  2. A data proxy service (data.source.coop) that handles data access and storage operations.

Repository Structure

.
├── data.source.coop/
│   ├── Dockerfile
│   ├── scripts/
│   │   ├── build-push.sh
│   │   ├── deploy.sh
│   │   ├── run.sh
│   │   └── tag-release.sh
│   └── src/
│       ├── apis/
│       ├── backends/
│       ├── main.rs
│       └── utils/
└── source.coop/
    ├── cli/
    │   └── src/
    │       ├── commands/
    │       └── index.ts
    ├── scripts/
    │   ├── bucket_policy.json
    │   ├── db_start.sh
    │   └── db_stop.sh
    └── src/
        ├── api/
        ├── components/
        ├── lib/
        ├── pages/
        └── utils/

Key Files:

  • data.source.coop/Dockerfile: Defines the Docker image for the data proxy service.
  • source.coop/src/pages/api/: Contains API route handlers for the web application.
  • source.coop/src/components/: React components for the user interface.
  • source.coop/cli/src/index.ts: Entry point for the command-line interface.

Usage Instructions

For Usage instrcutions on below sections, please refer to correspoding readme file on source.coop and data.source.coop.

Installation

Running the Application

Configuration

Testing

Deployment

Data Flow

  1. User interacts with the web application (source.coop)
  2. Web application sends API requests to the backend (/api routes)
  3. Backend processes requests, interacting with DynamoDB for data storage
  4. For data access operations, the backend communicates with the data proxy service
  5. Data proxy service interacts with the configured data storage (S3, Azure, etc.)
  6. Results are returned to the web application and displayed to the user
User -> Web App -> API Routes -> DynamoDB
                -> Data Proxy -> Data Storage (S3, Azure)

Infrastructure

The project uses the following AWS resources:

  • DynamoDB:

    • accounts: Stores user and organization account information
    • repositories: Stores repository metadata
    • api-keys: Stores API keys for authentication
    • memberships: Stores membership information for accounts and repositories
    • data-connections: Stores data connection configurations
  • S3:

    • source-cooperative: Main bucket for storing repository data
  • ECS:

    • SourceCooperative-Prod cluster: Runs the data proxy service
  • ECR:

    • source-data-proxy: Stores Docker images for the data proxy service

Popular repositories Loading

  1. data.source.coop data.source.coop Public

    Source Cooperative Data Proxy

    Rust 13

  2. source.coop source.coop Public

    Source Cooperative Web Interface & API

    TypeScript 11

  3. viewers.source.coop viewers.source.coop Public

    Data Viewers for Source Cooperative

    TypeScript 5 2

  4. s3-manifest s3-manifest Public

    S3 Manifest Generator is a Rust-based command-line tool that creates a Parquet manifest file for objects in an S3 bucket or a specific prefix within a bucket.

    Rust 2

  5. theme theme Public

    JavaScript 1

  6. components components Public

    Source Cooperative React Components

    TypeScript 1

Repositories

Showing 10 of 10 repositories
  • data.source.coop Public

    Source Cooperative Data Proxy

    source-cooperative/data.source.coop’s past year of commit activity
    Rust 13 MIT 0 6 (1 issue needs help) 0 Updated Dec 26, 2024
  • .github Public
    source-cooperative/.github’s past year of commit activity
    0 0 0 0 Updated Dec 25, 2024
  • components Public

    Source Cooperative React Components

    source-cooperative/components’s past year of commit activity
    TypeScript 1 0 5 0 Updated Dec 20, 2024
  • source.coop Public

    Source Cooperative Web Interface & API

    source-cooperative/source.coop’s past year of commit activity
    TypeScript 11 MIT 0 6 (3 issues need help) 0 Updated Dec 20, 2024
  • theme Public
    source-cooperative/theme’s past year of commit activity
    JavaScript 1 0 0 0 Updated Nov 28, 2024
  • viewers.source.coop Public

    Data Viewers for Source Cooperative

    source-cooperative/viewers.source.coop’s past year of commit activity
    TypeScript 5 Apache-2.0 2 7 0 Updated Nov 13, 2024
  • api.docs.source.coop Public

    Source Cooperative API Documentation

    source-cooperative/api.docs.source.coop’s past year of commit activity
    HTML 1 0 0 0 Updated Oct 16, 2024
  • s3-manifest Public

    S3 Manifest Generator is a Rust-based command-line tool that creates a Parquet manifest file for objects in an S3 bucket or a specific prefix within a bucket.

    source-cooperative/s3-manifest’s past year of commit activity
    Rust 2 MIT 0 1 (1 issue needs help) 0 Updated Aug 20, 2024
  • docs.source.coop Public

    Docs and developer blog for Source Cooperative

    source-cooperative/docs.source.coop’s past year of commit activity
    SCSS 1 1 0 0 Updated Mar 12, 2024
  • governance Public

    Governance documents for Source Cooperative

    source-cooperative/governance’s past year of commit activity
    1 Apache-2.0 0 0 0 Updated Nov 2, 2023

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…