# Plugin System {#plugin-system}


Ever Gauzy supports a plugin architecture for extending functionality.


## Plugin Structure {#plugin-structure}


```
packages/plugins/
├── plugin-integration-github/     # GitHub integration
├── plugin-integration-upwork/     # Upwork integration
├── plugin-integration-hubstaff/   # HubStaff integration
├── plugin-integration-jira/       # Jira integration
├── plugin-integration-wakatime/   # Wakatime integration
├── plugin-job-search/             # Job search
├── plugin-job-matching/           # AI job matching
├── plugin-knowledge-base/         # KB module
├── plugin-changelog/              # Changelog tracking
└── plugin-product-reviews/        # Product reviews
```


## Creating a Plugin {#creating-a-plugin}



### 1. Create Module {#1-create-module}


```typescript
import { Module } from "@nestjs/common";

@Module({
  imports: [],
  providers: [CustomPluginService],
  controllers: [CustomPluginController],
  exports: [CustomPluginService],
})
export class CustomPluginModule {}
```


### 2. Register Plugin {#2-register-plugin}


```typescript
// In PluginModule or AppModule
@Module({
  imports: [
    // ... core modules
    CustomPluginModule,
  ],
})
export class AppModule {}
```


### 3. Add Entities {#3-add-entities}


```typescript
@MultiORMEntity("custom_plugin_data")
export class CustomPluginData extends TenantOrganizationBaseEntity {
  @MultiORMColumn()
  name: string;

  @MultiORMColumn({ nullable: true })
  value: string;
}
```


### 4. Register Entity {#4-register-entity}


Add your entity to the plugin's module:

```typescript
TypeOrmModule.forFeature([CustomPluginData]);
MikroOrmModule.forFeature([CustomPluginData]);
```


## Plugin Guidelines {#plugin-guidelines}


- ✅ Extend `TenantOrganizationBaseEntity` for tenant scoping
- ✅ Use Multi-ORM decorators
- ✅ Define API contracts in `@gauzy/contracts`
- ✅ Follow existing service/controller patterns
- ❌ Don't modify core entities directly
- ❌ Don't bypass tenant filtering


## Related Pages {#related-pages}


- [Architecture Overview](https://sourcey-gauzy.pages.dev/architecture/overview/index.md)
- [Multi-ORM Entities](https://sourcey-gauzy.pages.dev/database/multi-orm-entities/index.md)
- [Custom Integrations](https://sourcey-gauzy.pages.dev/integrations/custom-integrations/index.md)
