Comments (8)
I honestly don't know if that information should be secret or not. Anyhow I see the current approach having two advantages:
- I don't have to explain anyone what I'm doing with your data (in fact I have no access), because the project is yours, the credentials are yours, etc. No need to check or explain.
- I don't have to pay your bill. If my project is shared with the world, I'm pretty sure all API calls are billed to me, and I honestly don't wanna do that.
Makes sense?
from gmailctl.
The first makes sense at least from an appearance-of-proprietary perspective, but if I'm worried about it I can always replace your credentials file with my own. I don't know if this worry actually makes sense from a security perspective, because I don't know what data you have access to just from owning the product.
For the second, I'm surprised I can't find anybody else worrying about that for client-side applications. The free-tier limits seem high enough that I doubt you'd run into issues as long as everybody uses the application as intended, and you can decrease the per-user quotas to prevent hitting your per-application usage limits even with deliberate abuse.
from gmailctl.
Since I’m sure that 2. isn’t supposed to be a problem, I’ve asked this SO question in case the answer is more than “adjust the per-user quota and hope that nobody puts in the effort to DOS your project”.
from gmailctl.
The first makes sense at least from an appearance-of-proprietary perspective, but if I'm worried about it I can always replace your credentials file with my own. I don't know if this worry actually makes sense from a security perspective, because I don't know what data you have access to just from owning the product.
You're right on this.
For the second, I'm surprised I can't find anybody else worrying about that for client-side applications. The free-tier limits seem high enough that I doubt you'd run into issues as long as everybody uses the application as intended, and you can decrease the per-user quotas to prevent hitting your per-application usage limits even with deliberate abuse.
The problem is that I don't have a backend where I can store the credentials. All of that is in the client, so I can't prevent anyone from grabbing that and creating their own applications and using my quota. Not having a backend is also a feature for me, since I have nothing to maintain and worry about.
from gmailctl.
That makes sense, but if you limit the per-user quota to 5 quota units per second (enough to on average create or delete one filter per second, but with the 100-second burstiness allowed that would actually allow creation/deletion of 100 filters at a time. This would make it very difficult to actually burn all your quota, but not impossible.
from gmailctl.
The data in question – the OAUTH token – is password-equivalent for anything in scope, which means at minimum access to the filters. (I have not looked to see what else it may be requesting, I'm doing my due diligence before getting started here.)
It absolutely makes sense to ensure it is protected as well as the, eg, ssh config / keys, which is to demand some reasonable permissions, etc, for it. Documentation should match.
I offer nothing on the question of who would own the GCP project or whatever at this time.
obDisclaimer:
This comment is just me, not speaking for my employer. I have no meaningful knowledge of the systems in question beyond what any random developer would.
from gmailctl.
There are two types of tokens we're discussing. There's the user-specific kind, which should definitely be protected and gives access like you say, and the app-specific kind, which doesn't allow access to any particular Google account by itself.
The steps recommended for creating a project get you app-specific credentials, which you then use for user-specific credentials.
from gmailctl.
This issue is stale because it has been open for 30 days without activity.
This will be closed in 7 days, unless you add the 'lifecycle/keep-alive' label or comment.
from gmailctl.
Related Issues (20)
- Is there a particular reason why isEscaped / isRaw cannot be used for cc / bcc? HOT 3
- VSCode Support HOT 2
- gmailctl should not try to create "INBOX" label HOT 6
- Tests fail with realistic inputs HOT 2
- Cant figure it out HOT 1
- Option for `gmailctl download` to "download" a local XML file HOT 2
- Add option to apply all parent labels if `gmailctl` is managing labels HOT 4
- `gmailctl` should interpret `Some/Label/Name` as a nested label HOT 3
- Consider editing repository setings to remove "Packages" section HOT 1
- Progress indicators HOT 4
- Token has been expired or revoked HOT 6
- Following flow for sorting mails possible? HOT 3
- Potential GMail bug causes exporting to XML not working with category action rules, workaround needed HOT 2
- Support diffing with colordiff/delta/etc HOT 4
- Why does gmailctl split this kind of "or" filter into separate rules? HOT 19
- Support `deliveredto` rule HOT 3
- Could libsonnet helper files be situated next to the tmp file for `gmailctl edit` to avoid import path errors? HOT 4
- Is it possible to programatically edit filters with gmailctl? HOT 2
- Expose a public API HOT 2
- automatic quoting of addresses with plus sign should not quote addresses that are already quoted HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gmailctl.