# n8n-nodes-openproject-complete

This is a comprehensive n8n community node that provides complete integration with the OpenProject API, covering all 14 major resources for full project management and collaboration capabilities.

## 🚀 Complete API Coverage

Unlike other OpenProject nodes, this implementation provides **complete coverage** of the OpenProject API v3 specification with **14 major resources**:

**Core Project Management:**
- Projects, Work Packages, Users, Time Entries

**Collaboration & Content:**
- Groups, Documents, Attachments, Meetings

**Advanced Features:**
- Activities, File Links, Categories, Budgets, Custom Fields, Work Schedules

**Special Operations:**
- Group member management, File upload/download, Emoji reactions, Work schedule management

## Installation

Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

### npm

```bash
npm install n8n-nodes-openproject-complete
```

### Manual installation

1. Clone or download this repository
2. Run `npm run build` to compile the TypeScript code
3. Run `npm link` in the project directory
4. In your n8n installation directory, run `npm link n8n-nodes-openproject-complete`
5. Restart n8n

## Credentials

This node requires OpenProject API credentials. You can create these in your OpenProject user settings:

1. Go to your OpenProject instance
2. Navigate to your user profile → API
3. Generate an API key
4. Use the API key along with your OpenProject instance URL in the credential configuration

### Supported Authentication Methods

- **API Key**: Use your OpenProject API key (recommended)
- **Session**: Use username and password for session-based authentication

## Operations

### Projects
- **List**: Get all projects with optional filtering
- **Get**: Retrieve a specific project by ID
- **Create**: Create a new project
- **Update**: Update an existing project
- **Delete**: Delete a project

### Work Packages
- **List**: Get all work packages with optional filtering
- **Get**: Retrieve a specific work package by ID
- **Create**: Create a new work package
- **Update**: Update an existing work package
- **Delete**: Delete a work package

### Users
- **List**: Get all users with optional filtering
- **Get**: Retrieve a specific user by ID
- **Create**: Create a new user
- **Update**: Update an existing user
- **Delete**: Delete a user

### Time Entries
- **List**: Get all time entries with optional filtering
- **Get**: Retrieve a specific time entry by ID
- **Create**: Create a new time entry
- **Update**: Update an existing time entry
- **Delete**: Delete a time entry

## Example Usage

### Creating a Work Package

1. Set domain to "Work Packages"
2. Set resource to "Work Packages"
3. Set operation to "Create"
4. Fill in the required fields:
   - Subject: "New feature implementation"
   - Project ID: "1"
5. Optionally add additional fields like description, assignee, due date, etc.

### Listing Projects

1. Set domain to "Projects"
2. Set resource to "Projects"
3. Set operation to "List"
4. Optionally set filters in additional fields

## Resources

- [OpenProject API Documentation](https://www.openproject.org/docs/api/introduction/)
- [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)

## Version history

### 1.0.0
- Initial release
- Support for Projects, Work Packages, Users, and Time Entries
- API Key and Session authentication
- Full CRUD operations for all supported resources

## License

[MIT](LICENSE.md)