• Content Count

  • Joined

  • Last visited

About jen_at_floyd

  • Rank
    Advanced Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. At our studio we can have many different concurrent connections at the same time -- from 100 to 150. I've noticed that at peak times, the responsiveness of the site suffers a lot. However, even when not at peak times, realtime features like inbox notifications do not work consistently. Many of our artists have resorted to browser extensions that refresh their Ftrack page every 5 minutes or so in order to stay on top of their notifications. Of course, all of this extra refreshing also increases server load, so it would be better to come up with a different solution. Is there some sort of chart or recommendation about server specs based on the number of concurrent users?
  2. Currently solving this by just passing a URL parameter to the widget so that it knows what environment it's in. So widgets in an action will be specified as, for example. Still, it would be cool to get that info from Ftrack itself by having it pass data to the widget somehow.
  3. This is something folks on my team have complained about also. Would be great if the bookmark also saved the view.
  4. The View list at our studio is getting quite long. Particularly the Shared Views, but I have seen some very long personal View lists as well. It would be great if we could arrange views into folders or groups. To get around this and to help with organization, we've adopted a norm of using a per-department prefix for views. For example: Harmony - Needs Assets Harmony - Ready for Comp Tweens - Missing Imports Tweens - No EFX Paint - Reuses These prefixes are basically serving the same function as folders, but folders would make the list considerably shorter.
  5. I was following the instructions for configuring Sentry for error monitoring, but when I restarted the server I kept getting "ValueError: Invalid Sentry DSN" in my logs and the server refused to start. It turns out that in the Client Keys section of my Sentry project, I need to hit the "Show deprecated DSN" link in order to show the DSN that includes the secret. Apparently newer Sentry clients no longer require having the secret in the URL, which is why Sentry lists it as deprecated. It would be useful to specify in the instructions that the deprecated DSN is required in order to avoid confusion.
  6. It's my understanding that using the following code should always return the same metadata entity: const metadata = await session.ensure( 'Metadata', {parent_id: "7bd2c20a-f7a1-11ea-8466-005056829324", key: "builds", parent_type: "Breakdown"} ); If the entity did not exist before, `session.ensure` would create it, and if it did exist it would simply return the existing entity. Instead, if the entity already exists this will throw a Duplicate Entry error.
  7. As an additional bit of information, attempting to update the `parent_type` key with `session.update` has no effect. Metadata created via the Python API, e.g. `breakdown['metadata']['builds'] = "foo"`, has the correct `parent_type`.
  8. If I do something like this: const metadataResult = await session.create( 'Metadata', {parent_id: "7bd2c20a-f7a1-11ea-8466-005056829324", key: "builds", parent_type: "Breakdown", value: "foo"} ); ...the contents of `metadataResult` will be: { action: "create", data: { __entity_type__: "Metadata", key: "builds", parent_id: "7bd2c20a-f7a1-11ea-8466-005056829324", parent_type: "Milestone", value: "foo" } } Notice how the `parent_type` key is listed as `Milestone` when it should be `Breakdown`. For further context, `Breakdown` is a custom object created via the Objects interface and it has the 'Status' box checked.
  9. Please send me an invite!
  10. Recently I was attempting to create a Folder object via the JavaScript API and encountered this error: Permission denied: not allowed to 'create' 'Task'. Missing the required 'Create objects (sequence,shot,task)' permission. I was providing the `name`, `parent_id`, `object_type_id` during my attempt, and the given error was very strange to me because my user should have administrator permissions for the project I was modifying. After a while I realized that I needed to also provide the `project_id` so that the API could figure out whether I had the appropriate permissions to make this change. Still, if the `project_id` is required to determine permissions, it would have been more useful if the error message specifically called that out instead of sending me down a rabbit hole of checking my permissions and API keys.
  11. Say I have an Ftrack widget hosted at I can set this URL for a dashboard widget and also for an action widget. Is there some API that could help a widget distinguish whether it is being displayed inside of a dashboard or an action?
  12. We have a custom version of `ftrack-python-api` to use in-house because of a bug in the `websocket_client` package. I thought I would mention it here to see if it can be resolved so we don't have to maintain our own fork. To summarize, we are using `ftrack-python-api` inside of a Deadline plugin so that Deadline renders are published automatically to Ftrack. However, when using the package we encountered persistent `SSLError: [SSL: CERTIFICATE_VERIFY_FAILED]` errors. We tracked down the root of the error to this line in `websocket_client` where the package defaults to SSL version 2.3 if no SSL version is provided in the options. As summarized in this table, SSL versions 2 and 3 are insecure and are disabled by default in many libraries. This is why we still couldn't get the `ftrack-python-api` package to work even if we enabled SSL 2 and 3 on the Ftrack server. The crypto client libraries themselves do not support these protocols anymore by default. In order to quickly fix this issue on our end, we opted for passing the `ssl_version` option when the EventHub WebSocket connection is being created. Our code changes this line in `ftrack-python-api/source/ftrack_api/event/` to: self._connection = websocket.create_connection(url, timeout=60, sslopt={"ssl_version": ssl.PROTOCOL_TLS})
  13. The documentation shows how to retrieve the authenticated widget URL, but I can't find any guidance on how to actually use these widgets. Is there some way to retrieve the current user selection?
  14. It would be nice if there was an option to set this off by default for all users!
  15. Also, is this checkbox new? I don't remember seeing other versions' notes on the version that I'm looking at.