<!-- Thank you for your contribution! Please review
https://microsoft.github.io/autogen/docs/Contribute before opening a
pull request. -->
<!-- Please add a reviewer to the assignee section when you create a PR.
If you don't have the access to it, we will shortly find a reviewer and
assign them to your PR. -->
## Why are these changes needed?
https://github.com/user-attachments/assets/b649053b-c377-40c7-aa51-ee64af766fc2
<img width="100%" alt="image"
src="https://github.com/user-attachments/assets/03ba1df5-c9a2-4734-b6a2-0eb97ec0b0e0"
/>
## Authentication
This PR implements an experimental authentication feature to enable
personalized experiences (multiple users). Currently, only GitHub
authentication is supported. You can extend the base authentication
class to add support for other authentication methods.
By default authenticatio is disabled and only enabled when you pass in
the `--auth-config` argument when running the application.
### Enable GitHub Authentication
To enable GitHub authentication, create a `auth.yaml` file in your app
directory:
```yaml
type: github
jwt_secret: "your-secret-key"
token_expiry_minutes: 60
github:
client_id: "your-github-client-id"
client_secret: "your-github-client-secret"
callback_url: "http://localhost:8081/api/auth/callback"
scopes: ["user:email"]
```
Please see the documentation on [GitHub
OAuth](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/authenticating-to-the-rest-api-with-an-oauth-app)
for more details on obtaining the `client_id` and `client_secret`.
To pass in this configuration you can use the `--auth-config` argument
when running the application:
```bash
autogenstudio ui --auth-config /path/to/auth.yaml
```
Or set the environment variable:
```bash
export AUTOGENSTUDIO_AUTH_CONFIG="/path/to/auth.yaml"
```
```{note}
- Authentication is currently experimental and may change in future releases
- User data is stored in your configured database
- When enabled, all API endpoints require authentication except for the authentication endpoints
- WebSocket connections require the token to be passed as a query parameter (`?token=your-jwt-token`)
```
## Related issue number
<!-- For example: "Closes #1234" -->
Closes#4350
## Checks
- [ ] I've included any doc changes needed for
<https://microsoft.github.io/autogen/>. See
<https://github.com/microsoft/autogen/blob/main/CONTRIBUTING.md> to
build and test documentation locally.
- [ ] I've added tests (if relevant) corresponding to the changes
introduced in this PR.
- [ ] I've made sure all auto checks have passed.
---------
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Fix issue here in this discussion -
https://github.com/microsoft/autogen/discussions/4208#discussioncomment-12394408
<!-- Thank you for your contribution! Please review
https://microsoft.github.io/autogen/docs/Contribute before opening a
pull request. -->
<!-- Please add a reviewer to the assignee section when you create a PR.
If you don't have the access to it, we will shortly find a reviewer and
assign them to your PR. -->
## Why are these changes needed?
Fix bug in AGS UI where frontend crashes because the default team config
is null
- update /teams endpoint to always return a default team if none is
found for the user
- update UI to check for team before rendering
- also update run_id type to be autoincrement int (similar to team id)
instead of uuid. This helps side step the migration failed errors
related to UUID type when using an sqlite backend
<!-- Please give a short summary of the change and the problem this
solves. -->
## Related issue number
<!-- For example: "Closes #1234" -->
## Checks
- [ ] I've included any doc changes needed for
<https://microsoft.github.io/autogen/>. See
<https://github.com/microsoft/autogen/blob/main/CONTRIBUTING.md> to
build and test documentation locally.
- [ ] I've added tests (if relevant) corresponding to the changes
introduced in this PR.
- [ ] I've made sure all auto checks have passed.
---------
Co-authored-by: Ryan Sweet <rysweet@microsoft.com>
<!-- Thank you for your contribution! Please review
https://microsoft.github.io/autogen/docs/Contribute before opening a
pull request. -->
<!-- Please add a reviewer to the assignee section when you create a PR.
If you don't have the access to it, we will shortly find a reviewer and
assign them to your PR. -->
## Why are these changes needed?
> Hey Victor, this is maybe a bug, but when a session is delete, runs
and messages for that session are not deleted, any reason why to keep
them?
@husseinmozannar
The main fix is to add a pragma that ensures SQL lite enforces foreign
key constraints.
Also needed to update error messages for autoupgrade of databases. Also
adds a test for cascade deletes and for parts of teammanager
With this fix,
- Messages get deleted when the run is deleted
- Runs get deleted when sessiosn are deleted
- Sessions get deleted when a team is deleted
<!-- Please give a short summary of the change and the problem this
solves. -->
## Related issue number
<!-- For example: "Closes #1234" -->
## Checks
- [ ] I've included any doc changes needed for
<https://microsoft.github.io/autogen/>. See
<https://github.com/microsoft/autogen/blob/main/CONTRIBUTING.md> to
build and test documentation locally.
- [ ] I've added tests (if relevant) corresponding to the changes
introduced in this PR.
- [ ] I've made sure all auto checks have passed.
<!-- Thank you for your contribution! Please review
https://microsoft.github.io/autogen/docs/Contribute before opening a
pull request. -->
<!-- Please add a reviewer to the assignee section when you create a PR.
If you don't have the access to it, we will shortly find a reviewer and
assign them to your PR. -->
## Why are these changes needed?
This PR updates AGS to use the declarative config serialization native
to AgentChat.
The effect? You can build your teams/artifacts directly in python, run
`team.dump_component()` and immediately run it in AGS.
Some change details:
- Removes ComponentFactory. Instead TeamManager just loads team specs
directly using `Team.load_component`.
- Some fixes to the UI to simplify drag and drop experience.
- Improve layout of nodes...
<!-- Please give a short summary of the change and the problem this
solves. -->
## Related issue number
<!-- For example: "Closes #1234" -->
Closes#4439Closes#5172
## Checks
- [ ] I've included any doc changes needed for
https://microsoft.github.io/autogen/. See
https://microsoft.github.io/autogen/docs/Contribute#documentation to
build and test documentation locally.
- [ ] I've added tests (if relevant) corresponding to the changes
introduced in this PR.
- [ ] I've made sure all auto checks have passed.
cc @EItanya @nour-bouzid
* fix import issue related to agentchat update #4245
* update uv lock file
* fix db auto_upgrade logic issue.
* im prove msg rendering issue
* Support termination condition combination. Closes#4325
* fix db instantiation bug
* update yarn.lock, closes#4260#4262
* remove deps for now with vulnerabilities found by dependabot #4262
* update db tests
* add ability to load sessions from db ..
* format updates, add format checks to ags
* format check fixes
* linting and ruff check fixes
* make tests for ags non-parrallel to avoid db race conditions.
* format updates
* fix concurrency issue
* minor ui tweaks, move run start to websocket
* lint fixes
* update uv.lock
* Update python/packages/autogen-studio/autogenstudio/datamodel/types.py
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
* Update python/packages/autogen-studio/autogenstudio/teammanager.py
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
* reuse user proxy from agentchat
* ui tweaks
---------
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
Co-authored-by: Hussein Mozannar <hmozannar@microsoft.com>
* add skeleton worflow manager
* add test notebook
* update test nb
* add sample team spec
* refactor requirements to agentchat and ext
* add base provider to return agentchat agents from json spec
* initial api refactor, update dbmanager
* api refactor
* refactor tests
* ags api tutorial update
* ui refactor
* general refactor
* minor refactor updates
* backend api refaactor
* ui refactor and update
* implement v1 for streaming connection with ui updates
* backend refactor
* ui refactor
* minor ui tweak
* minor refactor and tweaks
* general refactor
* update tests
* sync uv.lock with main
* uv lock update