https://github.com/bluerobotics/blueplm-ext-google-drive
A google drive extension for BluePLM
https://github.com/bluerobotics/blueplm-ext-google-drive
Last synced: 5 months ago
JSON representation
A google drive extension for BluePLM
- Host: GitHub
- URL: https://github.com/bluerobotics/blueplm-ext-google-drive
- Owner: bluerobotics
- License: mit
- Created: 2026-01-08T19:33:41.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-01-09T01:32:56.000Z (5 months ago)
- Last Synced: 2026-01-12T17:22:03.595Z (5 months ago)
- Language: TypeScript
- Size: 46.9 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Google Drive Extension for BluePLM
Sync files with Google Drive for backup and collaboration. Browse, edit, and manage your Google Drive files directly within BluePLM.
## Features
- **OAuth 2.0 Authentication** — Securely connect your Google account
- **File Browser** — Browse and navigate your Google Drive files
- **Bidirectional Sync** — Keep local and Drive files in sync
- **Configurable Sync** — Set intervals, direction, and exclusion patterns
## Installation
Install from the BluePLM Extension Store:
1. Open BluePLM → Settings → Extensions
2. Search for "Google Drive"
3. Click **Install**
## Configuration
After installation, navigate to **Settings → Extensions → Google Drive** to:
1. Connect your Google account
2. Configure sync interval (1–60 minutes)
3. Set sync direction (bidirectional, upload-only, download-only)
4. Add file exclusion patterns
## Development
### Prerequisites
- Node.js 18+
- npm 9+
### Setup
```bash
npm install
```
### Build
```bash
npm run build
```
### Package
Creates a `.bpx` file for distribution:
```bash
npm run package
```
### Type Check
```bash
npm run typecheck
```
## Releasing
This extension uses GitHub Actions for automated releases. When you push a tag, it automatically:
1. Runs type checking
2. Builds the extension
3. Packages it as a `.bpx` file
4. Creates a GitHub Release with the package attached
5. Extracts release notes from `CHANGELOG.md`
### Creating a Release
1. **Update the version** in both `package.json` and `extension.json`:
```json
"version": "1.0.0"
```
2. **Update `CHANGELOG.md`** with release notes:
```markdown
## [1.0.0] - 2025-01-15
### Added
- New feature description
### Fixed
- Bug fix description
```
3. **Commit the changes**:
```bash
git add .
git commit -m "Release v1.0.0"
```
4. **Create and push a tag**:
```bash
git tag v1.0.0
git push origin main --tags
```
The GitHub Action will automatically create a release with the `.bpx` package attached.
### Pre-release Versions
Tags containing `-alpha`, `-beta`, or `-rc` are automatically marked as pre-releases:
```bash
git tag v1.0.0-beta.1
git push origin main --tags
```
## Project Structure
```
├── client/ # Client-side code (runs in Extension Host)
│ ├── index.ts # Entry point with activate/deactivate
│ └── components/ # React UI components
├── server/ # Server-side handlers (runs in API sandbox)
│ ├── connect.ts # OAuth initiation
│ ├── oauth-callback.ts
│ ├── status.ts # Connection status
│ ├── sync.ts # File synchronization
│ └── disconnect.ts
├── types/ # TypeScript type definitions
├── extension.json # Extension manifest
└── package.json
```
## License
MIT — see [LICENSE](LICENSE)