-
Notifications
You must be signed in to change notification settings - Fork 0
Feat: Usage library #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
lohanidamodar
wants to merge
44
commits into
main
Choose a base branch
from
dev
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
44 commits
Select commit
Hold shift + click to select a range
9df09b8
Feat: Usage library
lohanidamodar cb6c26e
Update and fix tests
lohanidamodar 9c38514
Update tests
lohanidamodar 360120e
format
lohanidamodar f650422
improve tests
lohanidamodar e03ba50
format and fix codeql analysis
lohanidamodar 9de8878
update headers
lohanidamodar 5303bf3
support tenant
lohanidamodar 6b0bed7
Refactor and new return object
lohanidamodar 364d627
namespace and tenant index
lohanidamodar fad62e0
support namespace
lohanidamodar a599c07
fix clickhouse test and column definitions
lohanidamodar 8033532
fix database test
lohanidamodar 1e25195
fix duplicate setup
lohanidamodar ddbcbe1
Refactor duplicates
lohanidamodar dae64ee
cleanup
lohanidamodar 244aa00
fix codeql
lohanidamodar a84af65
feat: Refactor Usage class and introduce ClickHouse adapter
lohanidamodar 5ca8ac1
feat: Enhance Adapter with find and count methods, update setup logic
lohanidamodar 90c804b
feat: Refactor Database adapter to extend SQL and streamline setup logic
lohanidamodar da10c56
cleanup: Remove unused imports in ClickHouse and Database adapters
lohanidamodar 78ea8d7
feat: Add data validation methods for metrics in ClickHouse adapter
lohanidamodar abf8c14
feat: Introduce Metric class for schema definition and validation in …
lohanidamodar 86113b5
upgrade fetch
lohanidamodar aa60dd1
feat: Update ClickHouse and Database adapters to support incremental …
lohanidamodar e06f036
feat: Implement deterministic ID generation for metrics with normaliz…
lohanidamodar 760a66e
fix codeql
lohanidamodar c74eea7
feat: Enhance logBatch to aggregate metrics by deterministic ID and u…
lohanidamodar f04d279
feat: Add support for FINAL in SELECT queries in ClickHouse adapter a…
lohanidamodar 116880b
remove assert eventually
lohanidamodar 5643c4d
feat: Add tenant validation and override logic in ClickHouse adapter …
lohanidamodar 13e637b
fix: Correct tenant key usage in ClickHouse adapter and tests
lohanidamodar e799710
fix: Update ClickHouse and Database adapters to handle nullable times…
lohanidamodar 3661fd1
Fix timestamp for infinity
lohanidamodar 1689ed9
fix: Update usage of Query class in Adapter and Usage files
lohanidamodar 3d8adb2
fix check
lohanidamodar a89db31
fix: Enhance Query class with lessThanEqual and greaterThanEqual meth…
lohanidamodar b6c260d
fix: Update Database adapter to support lessThanEqual and greaterThan…
lohanidamodar 864d0cb
feat: add logCounter and logBatchCounter methods for usage metrics
lohanidamodar b14345a
refactor: consolidate ClickHouse batch tests into ClickHouseTest and …
lohanidamodar b5bf5f2
fix: improve type hinting and documentation for ClickHouse metrics ha…
lohanidamodar 20c7156
fix codeql with runtime safety
lohanidamodar 0eb17a1
format
lohanidamodar 888ada5
feat: add methods for namespace, tenant, and shared tables support in…
lohanidamodar File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| name: "CodeQL" | ||
|
|
||
| on: [ pull_request ] | ||
| jobs: | ||
| lint: | ||
| name: CodeQL | ||
| runs-on: ubuntu-latest | ||
|
|
||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v3 | ||
| with: | ||
| fetch-depth: 2 | ||
|
|
||
| - run: git checkout HEAD^2 | ||
|
|
||
| - name: Run CodeQL | ||
| run: | | ||
| docker run --rm -v $PWD:/app composer sh -c \ | ||
| "composer install --profile --ignore-platform-reqs && composer check" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| name: "Linter" | ||
|
|
||
| on: [ pull_request ] | ||
| jobs: | ||
| lint: | ||
| name: Linter | ||
| runs-on: ubuntu-latest | ||
|
|
||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v3 | ||
| with: | ||
| fetch-depth: 2 | ||
|
|
||
| - run: git checkout HEAD^2 | ||
|
|
||
| - name: Run Linter | ||
| run: | | ||
| docker run --rm -v $PWD:/app composer sh -c \ | ||
| "composer install --profile --ignore-platform-reqs && composer lint" | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| name: "Tests" | ||
|
|
||
| on: [ pull_request ] | ||
| jobs: | ||
| lint: | ||
| name: Tests | ||
| runs-on: ubuntu-latest | ||
|
|
||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v3 | ||
| with: | ||
| fetch-depth: 2 | ||
|
|
||
| - run: git checkout HEAD^2 | ||
|
|
||
| - name: Build | ||
| run: | | ||
| docker compose build | ||
| docker compose up -d --wait | ||
|
|
||
| - name: Run Tests | ||
| run: docker compose exec usage vendor/bin/phpunit --configuration phpunit.xml tests |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,76 @@ | ||
| # Contributor Covenant Code of Conduct | ||
|
|
||
| ## Our Pledge | ||
|
|
||
| In the interest of fostering an open and welcoming environment, we as | ||
| contributors and maintainers pledge to make participation in our project and | ||
| our community a harassment-free experience for everyone, regardless of age, body | ||
| size, disability, ethnicity, sex characteristics, gender identity, expression, | ||
| level of experience, education, socio-economic status, nationality, personal | ||
| appearance, race, religion, or sexual identity and orientation. | ||
|
|
||
| ## Our Standards | ||
|
|
||
| Examples of behavior that contributes to creating a positive environment | ||
| include: | ||
|
|
||
| * 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 | ||
|
|
||
| Examples of unacceptable behavior by participants include: | ||
|
|
||
| * The use of sexualized language or imagery and unwelcome sexual attention or | ||
| advances | ||
| * Trolling, insulting/derogatory comments, and personal or political attacks | ||
| * Public or private harassment | ||
| * Publishing others' private information, such as a physical or electronic | ||
| address, without explicit permission | ||
| * Other conduct which could reasonably be considered inappropriate in a | ||
| professional setting | ||
|
|
||
| ## Our Responsibilities | ||
|
|
||
| Project maintainers are responsible for clarifying the standards of acceptable | ||
| behavior and are expected to take appropriate and fair corrective action in | ||
| response to any instances of unacceptable behavior. | ||
|
|
||
| Project maintainers have the right and responsibility to remove, edit, or | ||
| reject comments, commits, code, wiki edits, issues, and other contributions | ||
| that are not aligned to this Code of Conduct, or to ban temporarily or | ||
| permanently any contributor for other behaviors that they deem inappropriate, | ||
| threatening, offensive, or harmful. | ||
|
|
||
| ## Scope | ||
|
|
||
| This Code of Conduct applies both within project spaces and in public spaces | ||
| when an individual is representing the project or its community. Examples of | ||
| representing a project or community include using an official project e-mail | ||
| address, posting via an official social media account, or acting as an appointed | ||
| representative at an online or offline event. Representation of a project may be | ||
| further defined and clarified by project maintainers. | ||
|
|
||
| ## Enforcement | ||
|
|
||
| Instances of abusive, harassing, or otherwise unacceptable behavior may be | ||
| reported by contacting the project team at team@appwrite.io. All | ||
| complaints will be reviewed and investigated and will result in a response that | ||
| is deemed necessary and appropriate to the circumstances. The project team is | ||
| obligated to maintain confidentiality with regard to the reporter of an incident. | ||
| Further details of specific enforcement policies may be posted separately. | ||
|
|
||
| Project maintainers who do not follow or enforce the Code of Conduct in good | ||
| faith may face temporary or permanent repercussions as determined by other | ||
| members of the project's leadership. | ||
|
|
||
| ## Attribution | ||
|
|
||
| This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, | ||
| available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html | ||
|
|
||
| [homepage]: https://www.contributor-covenant.org | ||
|
|
||
| For answers to common questions about this code of conduct, see | ||
| https://www.contributor-covenant.org/faq |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,101 @@ | ||
| # Contributing | ||
|
|
||
| We would ❤️ for you to contribute to Utopia-php and help make it better! We want contributing to Utopia-php to be fun, enjoyable, and educational for anyone and everyone. All contributions are welcome, including issues, new docs as well as updates and tweaks, blog posts, workshops, and more. | ||
|
|
||
| ## How to Start? | ||
|
|
||
| If you are worried or don't know where to start, check out our next section explaining what kind of help we could use and where can you get involved. You can reach out with questions to [Eldad Fux (@eldadfux)](https://twitter.com/eldadfux) or anyone from the [Appwrite team on Discord](https://discord.gg/GSeTUeA). You can also submit an issue, and a maintainer can guide you! | ||
|
|
||
| ## Code of Conduct | ||
|
|
||
| Help us keep Utopia-php open and inclusive. Please read and follow our [Code of Conduct](https://github.com/appwrite/appwrite/blob/master/CODE_OF_CONDUCT.md). | ||
|
|
||
| ## Submit a Pull Request 🚀 | ||
|
|
||
| Branch naming convention is as following | ||
|
|
||
| `TYPE-ISSUE_ID-DESCRIPTION` | ||
|
|
||
| example: | ||
|
|
||
| ``` | ||
| doc-548-submit-a-pull-request-section-to-contribution-guide | ||
| ``` | ||
|
|
||
| When `TYPE` can be: | ||
|
|
||
| - **feat** - is a new feature | ||
| - **doc** - documentation only changes | ||
| - **cicd** - changes related to CI/CD system | ||
| - **fix** - a bug fix | ||
| - **refactor** - code change that neither fixes a bug nor adds a feature | ||
|
|
||
| **All PRs must include a commit message with the changes description!** | ||
|
|
||
| For the initial start, fork the project and use git clone command to download the repository to your computer. A standard procedure for working on an issue would be to: | ||
|
|
||
| 1. `git pull`, before creating a new branch, pull the changes from upstream. Your master needs to be up to date. | ||
|
|
||
| ``` | ||
| $ git pull | ||
| ``` | ||
|
|
||
| 2. Create new branch from `master` like: `doc-548-submit-a-pull-request-section-to-contribution-guide`<br/> | ||
|
|
||
| ``` | ||
| $ git checkout -b [name_of_your_new_branch] | ||
| ``` | ||
|
|
||
| 3. Work - commit - repeat ( be sure to be in your branch ) | ||
|
|
||
| 4. Push changes to GitHub | ||
|
|
||
| ``` | ||
| $ git push origin [name_of_your_new_branch] | ||
| ``` | ||
|
|
||
| 5. Submit your changes for review | ||
| If you go to your repository on GitHub, you'll see a `Compare & pull request` button. Click on that button. | ||
| 6. Start a Pull Request | ||
| Now submit the pull request and click on `Create pull request`. | ||
| 7. Get a code review approval/reject | ||
| 8. After approval, merge your PR | ||
| 9. GitHub will automatically delete the branch after the merge is done. (they can still be restored). | ||
|
|
||
| ## Introducing New Features | ||
|
|
||
| We would 💖 you to contribute to Utopia-php, but we would also like to make sure Utopia-php is as great as possible and loyal to its vision and mission statement 🙏. | ||
|
|
||
| For us to find the right balance, please open an issue explaining your ideas before introducing a new pull request. | ||
|
|
||
| This will allow the Utopia-php community to have sufficient discussion about the new feature value and how it fits in the product roadmap and vision. | ||
|
|
||
| This is also important for the Utopia-php lead developers to be able to give technical input and different emphasis regarding the feature design and architecture. Some bigger features might need to go through our [RFC process](https://github.com/appwrite/rfc). | ||
|
|
||
| ## Other Ways to Help | ||
|
|
||
| Pull requests are great, but there are many other areas where you can help Utopia-php. | ||
|
|
||
| ### Blogging & Speaking | ||
|
|
||
| Blogging, speaking about, or creating tutorials about one of Utopia-php's many features is great way to contribute and help our project grow. | ||
|
|
||
| ### Presenting at Meetups | ||
|
|
||
| Presenting at meetups and conferences about your Utopia-php projects. Your unique challenges and successes in building things with Utopia-php can provide great speaking material. We'd love to review your talk abstract/CFP, so get in touch with us if you'd like some help! | ||
|
|
||
| ### Sending Feedbacks & Reporting Bugs | ||
|
|
||
| Sending feedback is a great way for us to understand your different use cases of Utopia-php better. If you had any issues, bugs, or want to share about your experience, feel free to do so on our GitHub issues page or at our [Discord channel](https://discord.gg/GSeTUeA). | ||
|
|
||
| ### Submitting New Ideas | ||
|
|
||
| If you think Utopia-php could use a new feature, please open an issue on our GitHub repository, stating as much information as you can think about your new idea and it's implications. We would also use this issue to gather more information, get more feedback from the community, and have a proper discussion about the new feature. | ||
|
|
||
| ### Improving Documentation | ||
|
|
||
| Submitting documentation updates, enhancements, designs, or bug fixes. Spelling or grammar fixes will be very much appreciated. | ||
|
|
||
| ### Helping Someone | ||
|
|
||
| Searching for Utopia-php, GitHub or StackOverflow and helping someone else who needs help. You can also help by teaching others how to contribute to Utopia-php's repo! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| FROM composer:2.0 as step0 | ||
|
|
||
| WORKDIR /src/ | ||
|
|
||
| COPY composer.lock /src/ | ||
| COPY composer.json /src/ | ||
|
|
||
| RUN composer install --ignore-platform-reqs --optimize-autoloader \ | ||
| --no-plugins --no-scripts --prefer-dist | ||
|
|
||
| FROM php:8.3.3-cli-alpine3.19 as final | ||
|
|
||
| LABEL maintainer="team@appwrite.io" | ||
|
|
||
| RUN docker-php-ext-install pdo_mysql | ||
|
|
||
| WORKDIR /code | ||
|
|
||
| COPY --from=step0 /src/vendor /code/vendor | ||
|
|
||
| # Add Source Code | ||
| COPY ./tests /code/tests | ||
| COPY ./src /code/src | ||
| COPY ./phpunit.xml /code/phpunit.xml | ||
|
|
||
| CMD [ "tail", "-f", "/dev/null" ] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| The MIT License (MIT) | ||
|
|
||
| Copyright (c) 2024 Appwrite Team | ||
|
|
||
| Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| this software and associated documentation files (the "Software"), to deal in | ||
| the Software without restriction, including without limitation the rights to | ||
| use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| the Software, and to permit persons to whom the Software is furnished to do so, | ||
| subject to the following conditions: | ||
|
|
||
| The above copyright notice and this permission notice shall be included in all | ||
| copies or substantial portions of the Software. | ||
|
|
||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Update checkout action and remove fragile
git checkout HEAD^2.actions/checkout@v3is outdated; v4 is the current major version.git checkout HEAD^2command assumes a merge commit structure and will fail on regular commits (which have no second parent). Modernactions/checkouthandles PR refs correctly without manual git operations.Proposed fix
steps: - name: Checkout repository - uses: actions/checkout@v3 - with: - fetch-depth: 2 - - - run: git checkout HEAD^2 + uses: actions/checkout@v4 - name: Run Linter📝 Committable suggestion
🧰 Tools
🪛 actionlint (1.7.10)
11-11: the runner of "actions/checkout@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
🤖 Prompt for AI Agents