Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
25f800a
feat(db): add migration for API keys and tearsheets tables
spcaeo Jan 25, 2026
438b0f7
feat(lib): add ApiKeys library for REST API authentication
spcaeo Jan 25, 2026
c0ebee5
feat(lib): add Tearsheets library for saved job lists
spcaeo Jan 25, 2026
6c1f21d
feat(lib): add ApiResponse helper for consistent JSON output
spcaeo Jan 25, 2026
2af186d
feat(api): add REST API controller module
spcaeo Jan 25, 2026
5fc8e2f
docs: add REST API and Tearsheets documentation
spcaeo Jan 25, 2026
5e4a922
docs: add pull request description template
spcaeo Jan 25, 2026
fc5f7c2
docs: add job_count response format to TEARSHEETS.md
spcaeo Jan 25, 2026
3b0e540
feat(settings): add web UI for API key management
spcaeo Jan 25, 2026
78f6bfe
fix(settings): integrate API Keys into Settings module
spcaeo Jan 25, 2026
454cb0f
refactor: remove redundant extension file (now integrated into Settin…
spcaeo Jan 25, 2026
5540119
docs: update PR description with complete implementation details
spcaeo Jan 25, 2026
bb43fa4
fix: resolve critical audit issues
spcaeo Jan 25, 2026
28f4517
fix: resolve compatibility issues found during local testing
spcaeo Jan 25, 2026
eb73e11
Backup before refactoring ApiUI.php (1634 lines -> modular structure)
spcaeo Jan 25, 2026
9e88653
refactor(api): modularize ApiUI.php (1634 -> 306 lines)
spcaeo Jan 25, 2026
c3e26d7
feat(oauth): add OAuth 2.0 database schema migration
spcaeo Jan 25, 2026
1f00b14
fix(oauth): add foreign key constraints and unique client_secret
spcaeo Jan 25, 2026
c7a09d6
feat(oauth): add OAuth 2.0 server library
spcaeo Jan 25, 2026
7fa092b
feat(oauth): add OAuth handler for API endpoints
spcaeo Jan 25, 2026
fb2a235
fix(oauth): address code quality review issues
spcaeo Jan 25, 2026
318d4f6
feat(oauth): integrate OAuth 2.0 into API router
spcaeo Jan 25, 2026
d5f26a1
fix(oauth): add rate limiting for OAuth tokens
spcaeo Jan 25, 2026
0ce2cd9
fix(oauth): update ApiRateLimiter to support OAuth identifiers
spcaeo Jan 25, 2026
f353356
feat(entities): add JobSubmission status and Placement table
spcaeo Jan 25, 2026
b5f7586
feat(entities): add JobSubmissions library
spcaeo Jan 25, 2026
a301a53
feat(entities): add Placements library
spcaeo Jan 25, 2026
8a2d995
feat(api): add Placement handler
spcaeo Jan 25, 2026
aec29ba
feat(api): register JobSubmission and Placement handlers
spcaeo Jan 25, 2026
77f9125
feat(api): add JobSubmission handler
spcaeo Jan 25, 2026
b914e9d
feat(db): add extended entities migration for Note, Appointment, Task
spcaeo Jan 26, 2026
8ea7c11
feat(lib): add Notes library with CRUD operations
spcaeo Jan 26, 2026
c7df771
feat(entities): add Note entity with API
spcaeo Jan 26, 2026
70ca415
feat(entities): add Appointment entity with API
spcaeo Jan 26, 2026
acff7af
feat(api): register Note, Appointment, and Task handlers
spcaeo Jan 26, 2026
ee3f321
feat(api): add query parameter for advanced filtering
spcaeo Jan 26, 2026
2d40c04
feat(api): add search schema to Meta handler
spcaeo Jan 26, 2026
45740d3
feat(api): add candidate associations to Tearsheet
spcaeo Jan 26, 2026
e6ad5ac
feat(api): add full CRUD to Contact handler
spcaeo Jan 26, 2026
faa7095
feat(webhooks): add webhook database tables
spcaeo Jan 26, 2026
74c9c1d
feat(webhooks): add WebhookSubscription library
spcaeo Jan 26, 2026
70cc372
feat(webhooks): add WebhookDispatcher
spcaeo Jan 26, 2026
40f31aa
feat(webhooks): add SubscriptionHandler API
spcaeo Jan 26, 2026
71c5d68
feat(webhooks): hook webhooks into entity operations
spcaeo Jan 26, 2026
cec1ffb
feat(webhooks): register SubscriptionHandler in API router
spcaeo Jan 26, 2026
d22433d
docs(api): update API reference with all new features
spcaeo Jan 26, 2026
0cef6a7
docs(gap-analysis): update with implemented features
spcaeo Jan 26, 2026
3a7d594
docs(audit): add comprehensive API audit plan
spcaeo Jan 26, 2026
00c7068
Add comprehensive API audit framework and fix code quality issues
spcaeo Jan 26, 2026
d0ea4fe
Add comprehensive API documentation for community
spcaeo Jan 26, 2026
dc23905
Add getAll() method to Companies and live API test script
spcaeo Jan 26, 2026
eb6d77a
Add contribution guidelines, bug fixes, and community templates
spcaeo Jan 26, 2026
67a39f0
docs: Remove proprietary product references
spcaeo Jan 26, 2026
35e81ce
refactor: Integrate migrations into Schema.php
spcaeo Jan 26, 2026
bf58029
Trigger the CI tests for PR 703
RussH Mar 31, 2026
1ee67e8
Merge branch 'master' into feature/rest-api-tearsheets
RussH Apr 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
name: Bug Report
about: Report a bug to help us improve
title: '[BUG] '
labels: bug
assignees: ''
---

## Describe the bug
A clear and concise description of what the bug is.

## Steps to reproduce
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error

## Expected behavior
A clear and concise description of what you expected to happen.

## Actual behavior
A clear and concise description of what actually happened.

## Screenshots
If applicable, add screenshots to help explain your problem.

## Environment
Please complete the following information:
- **OpenCATS version**: [e.g., 0.9.7]
- **PHP version**: [e.g., 7.4, 8.0, 8.1]
- **MySQL version**: [e.g., 5.7, 8.0]
- **Operating System**: [e.g., Ubuntu 22.04, Windows 11, macOS 13]
- **Browser**: [e.g., Chrome 120, Firefox 121, Safari 17]

## Additional context
Add any other context about the problem here.
19 changes: 19 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
name: Feature Request
about: Suggest an idea for OpenCATS
title: '[FEATURE] '
labels: enhancement
assignees: ''
---

## Is this related to a problem?
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

## Describe the solution you'd like
A clear and concise description of what you want to happen.

## Describe alternatives considered
A clear and concise description of any alternative solutions or features you've considered.

## Additional context
Add any other context or screenshots about the feature request here.
66 changes: 66 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Pull Request

## Description

### What does this PR do?
<!-- Provide a clear and concise description of what this pull request accomplishes -->


### Why is this change needed?
<!-- Explain the motivation behind this change. What problem does it solve? -->


## Type of Change

Please check all that apply:

- [ ] Bug fix (non-breaking change that fixes an issue)
- [ ] New feature (non-breaking change that adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
- [ ] Refactoring (code changes that neither fix a bug nor add a feature)

## Testing

### How was this tested?
<!-- Describe the tests you ran to verify your changes. Provide instructions so reviewers can reproduce. -->


### Test Configuration
- **PHP Version:**
- **Database:**
- **Operating System:**

## Checklist

Please check all that apply:

- [ ] My code follows the project's coding style and guidelines
- [ ] I have performed a self-review of my own code
- [ ] I have added comments to complex or hard-to-understand code
- [ ] I have updated the documentation accordingly
- [ ] My changes generate no new warnings
- [ ] I have added or updated tests that prove my fix is effective or my feature works
- [ ] All new and existing tests pass locally

## Screenshots

<!-- If applicable, add screenshots to help explain your changes -->
<!-- Delete this section if not applicable -->

| Before | After |
|--------|-------|
| | |

## Related Issues

<!-- Link any related issues here using the format below -->
<!-- Use "Fixes #123" to automatically close the issue when this PR is merged -->
<!-- Use "Relates to #123" for issues that are related but not fixed by this PR -->

Fixes #

## Additional Notes

<!-- Add any additional notes or context about the pull request here -->
<!-- Delete this section if not needed -->
94 changes: 94 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# Contributor Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a positive experience for everyone.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
* Being patient with newcomers learning the project

Examples of unacceptable behavior:

* Trolling, insulting or derogatory comments, and personal attacks
* Public or private unwelcome conduct
* Publishing others' private information without permission
* Other conduct which could reasonably be considered inappropriate

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, or harmful.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.

## Enforcement

Instances of unacceptable behavior may be reported to the community leaders
responsible for enforcement at **community@opencats.org**.

All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these guidelines in determining consequences:

### 1. Correction

**Impact**: Minor issues or first-time occurrences.

**Consequence**: A private, written warning with clarity around the nature of
the violation. A public apology may be requested.

### 2. Warning

**Impact**: A violation through a single incident or series of actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved for a specified period of time.

### 3. Temporary Ban

**Impact**: A serious violation of community standards.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time.

### 4. Permanent Ban

**Impact**: Demonstrating a pattern of violation of community standards.

**Consequence**: A permanent ban from any sort of public interaction within
the community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].

[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html

For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][faq].

[faq]: https://www.contributor-covenant.org/faq
Loading
Loading