How to get the UUID for a dotCloud application? - uuid

some PaaS providers have an APPLICATION_UUID env variable which is obviously unique (at least across their platform).
Is there anything similar for DotCloud? I'm not finding anything like that in environment.json

There isn't a UUID, but if you are trying to tell different instances from each other, you can use the dotcloud configuration values from the environment.json file:
DOTCLOUD_PROJECT : which is the name you have given the dotcloud application
DOTCLOUD_SERVICE_NAME : which is the name you give each service (typically www, or data, etc)
DOTCLOUD_SERVICE_ID : the instance number of a particular instance, starting at 0
If you concatenate the 3, it would create a unique identifier across all of your dotcloud applications, services, and instances.

There isn't anything like that exposed externally. What do you need it for, maybe I can suggest an alternative?

Related

Where to store credentials and other secrets for Apache Flink SQL?

I'm doing a PoC for Flink SQL, and I'm wondering what the proper way is to deal with credentials, for example when accessing databases and Kafka. It obviously works when I include them in the query, but sprinkling credentials all through the query isn't great.
Can I refer to a secret contained in a mounted file? Or at least an environment variable?
Is there a ${ENV} or something?
For example, I would like to supply the credentials from elsewhere:
CREATE CATALOG analytics WITH (
'type'='jdbc',
'base-url'='jdbc:postgresql://some-postgres:5432/',
'default-database'='analytics',
'username'='someuser',
'password'='somepassword'
);
Similar when creating Kafka tables.
I'm suppose that I can include an UDF that can do that, but before I go down that road I'd like to know if there is something obvious I am missing.
You can always pass your credentials as arguments to your program. You can make a properties file to define whatever you want and pass it to your Flink program.
val username = ParameterTool.fromArgs(args).getRequired("username")
Credentials can be stored in flink-conf.yaml, and accessed as configuration parameters. Note that any configuration setting containing one of these strings
"password", "secret", "fs.azure.account.key", "apikey"
will have its value obscured in the logs.
You also have the option of defining tables in one of the catalogs supported by Flink SQL.

Systems that Access AD Attributes

I have been assigned a task to export the AD Attributes than find out what systems are using these attributes. I have not had much luck in scripting or a tool that can provide just that. Is this feasible and if so how? I have already exported attributes. Just need to find what systems are using them.
This isn't possible with any reasonable accuracy, especially if "using" isn't defined for you.
The event logs on the domain controllers will tell you where login events are coming from, but only by IP. That doesn't tell you which application is authenticating. You would have to do monitoring on that computer and see which application is making the connection. But then the logs would be cluttered with connections made by Windows itself, or Exchange (if you use Exchange for email). It it would be very difficult to identify what is coming from an 3rd-party application rather than Windows itself.
Also, applications can request more information than they need. It's very easy when programming with LDAP to request every attribute for an object, even if you only intend to use one. For example, take this C# code:
var de = new DirectoryEntry("LDAP://example.com");
Console.WriteLine(de.Properties["name"].Value);
That only "uses" the name attribute. But because of the way LDAP works, it actually requests every non-constructed attribute that has a value. (there is a way to specifically ask for only one attribute, but you have to know that and use that)
So even if you could find logs saying that "this IP requested all of these attributes", and then figure out which application made that request, that doesn't mean it "used" all of those attributes.

Get AD Site from LDAP Property

In a domain with AD Sites and Services configured is it possible to get the Site of a computer from LDAP? Is it stored as an attribute?
Unless this has changed over the last couple of years outside of my knowledge, there is not. Historically this was never done as AD site knowledge was ephemeral...the assumption was that computers move around so storing where they are is silly. Plus there was no global need for the knowledge.
You could of course add this. By this i mean, you could do something like, extend the schema with a new attribute for this and set a start-up script on your domain-joined machines to write this (if it has changed since they last wrote) to the directory. Obviously you'll want to test this well to ensure it doesn't create more problems than it solves...
On the Win32 point of view you've got the DsAddressToSiteNamesEx API. I don't know how to find it using pure LDAP.

Reusing service proxies

I have a set of webservices that I connect to using Silverlight Client. I use proxies generated by "Add service reference" or SLSVCUTIL.exe tool to connect to this service. So far, I have only used one single service. Now I want to use another service on the same server.
The problem is that, first service generated set of proxy classes for me, and second service will reuse the same set of classes (plus extra services/classes), e.g.
CustomerService.SaveCustomer(Customer customer);
OrderService.CheckCustomerLevel(Customer customer);
The problem is when I add reference to the second service, I can not reuse the same namespace for the second one (VS error), and when I use a different namespace, the generated classes, although are essentially the same, reside in different namespace, hence different and I end up with two Customer classes in two different namespaces.
Anyway around this? I just neeed to have two set of services, reusing the Customer class. I have already tried "reuse types in assembly / all assemblies" check mark when generating proxy classes, but it seems to have no effect.
any help is greatly appreciated.
I've run into this problem before, and the only solution I could come up with was to combine both web services into a single web service. This seems to be a limitation of the Add Service References/SLSvcUtil way of doing things.
If you're using Silverlight 4, you could conceivably try Silverlight/.NET assembly sharing to get around this (though I haven't tried it myself). In other words, compile the assembly that contains your data transfer objects in Silverlight, and then share it with the .NET/WCF back-end. That way, if you choose "Reuse types in assemblies", it would (in theory) actually re-use the existing Silverlight types for both service references.

Best way to be done? Subdomains and MySQL

I'm asking your opinions about my next project..
I'm planning to make website which offers services where all users would be have own subdomain (user.mydomain.com) and own website.
First I was thinking to really make real subdomain, generating automatically website code into their folder, creating own database etc..
Question #1: When I need some information from all subdomains databases in my main page (mydomain.com), how can I fetch those?
Would it be better way just use one database and dynamic code what all users are using but then re-write address like it would be subdomain (mydomain.com?user=myuser -> myuser.mydomain.com)
If someone have experience with something like what I was planning, would be nice to have tips and tricks do it right! :)
Thanks!
It will be alot of less code to maintain in you have one common codebase for all users, that just reads the domain name and uses that information.
Imagine that you discover an error in the code that was generated for one of the subdomains.
Either you would have one place to correct, or you would have 1 place + the number of users to correct.
You'll probably want all of the subdomains to point to the same codebase and treat the subdomain as an argument that is pulled out and identifies which instance of this application it is. You'll need a table in your db that will store information about each instance and then user accounts, user data, etc will all be tied back to a specific instance.

Resources